Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.5.14
-
None
Description
The following code fails to compile:
class Foo { String bar } @groovy.transformn.CompileStatic trait A { final Foo foo = new Foo().with { config(it) it } static void config(foo) { foo.bar = 'bar' } } class C implements A { } print new C().foo.bar
The error is:
src/test/groovy/bar/Foo.groovy: 14: [Static type checking] - Cannot find matching method bar.A#config(bar.Foo). Please check if the declared type is correct and if the method exists. @ line 14, column 9. config(it) ^ 1 error
If I change trait to class, it compiles successfully.
I think this has to do with the fact that trait cannot have constructors, and hence the context in which the code executes does not have the right imports?
Anyway, this was working fine before we upgraded to the latest Groovy 2.5.x version from 2.4.x.