Description
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.
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" }
But let's modify 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.
Attachments
Issue Links
- links to