Daniil Ovchinnikov created GROOVY-8896:
------------------------------------------

             Summary: Cannot create instance of inner class with list literals
                 Key: GROOVY-8896
                 URL: https://issues.apache.org/jira/browse/GROOVY-8896
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.5.4
            Reporter: Daniil Ovchinnikov


{code:java}
import groovy.transform.*

class Outer {

  @ToString
  @TupleConstructor
  class Inner {
    def ff
  }

  void createStuff() {
    println new Inner(20)     // Outer$Inner(20) as expected
    println new Inner(ff: 20) // Outer$Inner(20) as expected

    Inner i1 = [22] // Could not find matching constructor for: 
Outer$Inner(Integer)
    println i1

    def i1_ = [23] as Inner // Could not find matching constructor for: 
Outer$Inner(Integer)
    println i1_

    Inner i2 = [ff: 33] // Could not find which method <init>() to invoke from 
this list:
 // public Outer$Inner#<init>(Outer)
 // public Outer$Inner#<init>(Outer, java.util.LinkedHashMap)
 // public Outer$Inner#<init>(Outer, java.lang.Object)
    println i2

    def i2_ = [ff: 33] as Inner // Error casting map to Outer$Inner, Reason: 
null
    println i2_
  }
}

new Outer().createStuff(){code}



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

Reply via email to