[
https://issues.apache.org/jira/browse/GROOVY-7402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15873018#comment-15873018
]
Paul King commented on GROOVY-7402:
-----------------------------------
I checked Groovy 2.3.0, the first release to contain traits, and combining
@Immutable and traits (using the above example) resulted in the following error:
{code}
java.lang.ClassFormatError: Illegal class modifiers in class SomeTrait: 0x1419
{code}
The problem is the {{SomeTrait$Trait$Helper}} inner class within {{SomeTrait}}
is both abstract and final.
The proposed PR removes the NPE and changes the above error to:
{code}
Error during @Immutable processing: annotation found on inappropriate class
SomeTrait$Trait$Helper
{code}
I guess this could be improved a bit further but I think is an incremental
improvement over what we have had in the past.
> Compiler NPE Related To AST Transformations And Traits
> ------------------------------------------------------
>
> Key: GROOVY-7402
> URL: https://issues.apache.org/jira/browse/GROOVY-7402
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.4.3
> Reporter: Jeff Scott Brown
> Attachments: traitannotation.zip
>
>
> Related to https://github.com/grails/grails-core/issues/663.
> The attached traitannotation.zip includes the following:
> {code:title=src/main/groovy/demo/SomeTrait.groovy|borderStyle=solid}
> package demo
> import groovy.transform.*
> @Immutable
> trait SomeTrait {
> String name
> }
> {code}
> {code:title=src/main/groovy/demo/SomeClass.groovy|borderStyle=solid}
> package demo
> class SomeClass implements SomeTrait {}
> {code}
> Compilation raises an NPE:
> {noformat}
> $ ./gradlew clean cG
> :clean
> :compileJava UP-TO-DATE
> :compileGroovy FAILED
> FAILURE: Build failed with an exception.
> * What went wrong:
> Execution failed for task ':compileGroovy'.
> > BUG! exception in phase 'instruction selection' in source unit
> > '/Users/jeff/traitannotation/src/main/groovy/demo/SomeTrait.groovy'
> > unexpected NullpointerException
> * Try:
> Run with --stacktrace option to get the stack trace. Run with --info or
> --debug option to get more log output.
> BUILD FAILED
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)