Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.6.0-alpha-1, 3.0.0-alpha-3, 2.5.2
-
None
-
None
-
groovc command line on linux
Description
The parser in 2.5, 2.6, 3.0 gives a MultipleCompilationErrorsException on code that compiled successfully in 2.4
Code that fails to compile on 2.6.0-alpha-1
class A { static String g() { } A() { this({g()}) // It is ok to create a closure that calls g() in a constructor, but not if it is being passed into this(). } A(a) { } }
compilation error message
$ groovyc test.groovy org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: test.groovy: 4: Can't access instance method 'g' before the class is constructed @ line 4, column 15. this({g()}) // It is ok to create a closure that calls g() in a constructor, but not if it is being passed into this(). ^ 1 error
My opinion is that groovy should allow users to call a static method inside a constructor before the instance has been fully constructed, but I'm not aware of the details of why this is disallowed in 2.6.0-alpha-1.
Attachments
Issue Links
- links to