NamedVariant on constructor

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

NamedVariant on constructor

eric.milles

Tried this example and got cast exception converting Map to Integer.  Should the print statement at the end use the generated map constructor as expected?  (Note: I am compiling with indy variant; tried to use web console to try vanilla MOP...)


import groovy.transform.*

import groovy.transform.options.*


@ToString(includeNames=true)

class Color {

  final Integer r, g, b


  @NamedVariant @VisibilityOptions(Visibility.PUBLIC)

  private Color(Integer r, Integer g, Integer b) {

    this.r = r

    this.g = g

    this.b = b

  }


  public static final Color BLACK = new Color(0, 0, 0)

}


print(new Color(g:12, b:42, r:12)) // gives org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '{}' with class 'java.util.LinkedHashMap' to class 'java.lang.Integer'