Groovy devs,
I am looking into these issues: 
https://github.com/groovy/groovy-eclipse/issues/714  
https://github.com/grails/grails-testing-support/issues/31

When grails.testing.services.ServiceUnitTest is compiled, it produces the 
following class files in the build directory:
- ServiceUnitTest.class
- ServiceUnitTest$Trait$FieldHelper.class
- ServiceUnitTest$Trait$Helper.class
- ServiceUnitTest$Trait$Helper$_mockArtefact_closure1.class
- ServiceUnitTest$Trait$Helper$_mockArtefact_closure1$_closure2.class

However, the javap output of the class tells a different story with regards to 
inner types:
    SourceFile: "ServiceUnitTest.groovy"
    InnerClasses:
         public static abstract #19= #18 of #2; //Helper=class 
grails/testing/services/ServiceUnitTest$Trait$Helper of class 
grails/testing/services/ServiceUnitTest
         public static #22= #21 of #2; //FieldHelper=class 
grails/testing/services/ServiceUnitTest$Trait$FieldHelper of class 
grails/testing/services/ServiceUnitTest
         static #25= #24 of #2; //1=class 
grails/testing/services/ServiceUnitTest$Trait$FieldHelper$1 of class 
grails/testing/services/ServiceUnitTest

It is this last type -- ServiceUnitTest$Trait$FieldHelper$1 -- that cannot be 
resolved.  Can someone familiar with traits compilation say if this class 
belongs in the bytecode and therefore should also be one of the output class 
files?  Or if this is an errant entry in the class file?  When the Compiler/IDE 
tries to resolve the type, it of course gets an error since it is missing.

Eric M.

Reply via email to