It's actually a block of code (an expression) that is passed in 'by-name'. Requiring it to be a method would make usage ugly:

    testFramework.runTests(output) {
      test1()
      test2()    
    }

    //vs

    testFramework.runTests(output) { () =>
      test1()
      test2()    
    }

This is a common pattern for wrapping blocks of code.