Christopher Smith created GROOVY-10758:
------------------------------------------

             Summary: Improve error message when using generic ClassNodes in 
ASTT
                 Key: GROOVY-10758
                 URL: https://issues.apache.org/jira/browse/GROOVY-10758
             Project: Groovy
          Issue Type: Improvement
          Components: Compiler
    Affects Versions: 4.0.5
            Reporter: Christopher Smith


When mistakenly using a shared instance of a {{ClassNode}} that has generics 
applied, the compiler (helpfully!) produces this error:

{code}
transform used a generics containing ClassNode 
com.example.Resource<com.example.FooAttributes> for the super class 
com.example.FooResource directly. You are not supposed to do this. Please 
create a new ClassNode referring to the old ClassNode and use the new ClassNode 
instead of the old one. Otherwise the compiler will create wrong descriptors 
and a potential NullPointerException in TypeResolver in the OpenJDK. If this is 
not your own doing, please report this bug to the writer of the transform.
{code}

However, there is no explanation of *how* to create the "new ClassNode", and [I 
couldn't find anything in the API that made the error go 
away|https://stackoverflow.com/questions/73749765/how-do-i-subclass-a-generic-base-class-in-a-groovy-ast-transformation].
 It would be helpful to ASTT neophytes if the error message specified the 
method call(s) suitable for this operation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to