You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Alexey Afanasiev (JIRA)" <ji...@apache.org> on 2018/06/07 09:47:00 UTC

[jira] [Created] (GROOVY-8637) @NamedVariant processing error

Alexey Afanasiev created GROOVY-8637:
----------------------------------------

             Summary: @NamedVariant processing error
                 Key: GROOVY-8637
                 URL: https://issues.apache.org/jira/browse/GROOVY-8637
             Project: Groovy
          Issue Type: Bug
          Components: Compiler
            Reporter: Alexey Afanasiev


Example about @NamedVariant from http://groovy-lang.org/releasenotes/groovy-2.5.html works perfectly well as far as all @NamedDelegate type are compiling in the same compilation unit.


{code:java}
class Animal {
    String type, name
}

@ToString(includeNames=true)
class Color {
    Integer r, g, b
}

@NamedVariant
String foo(String s1, @NamedParam String s2,
           @NamedDelegate Color shade,
           @NamedDelegate Animal pet) {
    "$s1 $s2 ${pet.type?.toUpperCase()}:$pet.name $shade"
}

{code}
So in this example if you have Animal an Color classes compiled beforehand and passed to the compiler with classpath, you will receive 'Error during @NamedVariant processing. Duplicate property 'metaClass' found.' 

NamedVariantASTTransformation treats 'setMetaClass' method as set method of some property with ''metaClass' name. Obviously these names are clashed at compile time.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)