Eric Milles created GROOVY-9168:
-----------------------------------

             Summary: Default Parameters: non-static inner class constructor 
call in default value causes VerifyError at run-time
                 Key: GROOVY-9168
                 URL: https://issues.apache.org/jira/browse/GROOVY-9168
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.5.7, 3.0.0-beta-1
            Reporter: Eric Milles


This is a variation of GROOVY-6777, GROOVY-6809 and GROOVY-7609.  A 
constructor's parameter may not presently be defaulted  by a value expression 
using a non-static inner class (including anon. inner).  This is likely caused 
by the uninitialized "this" reference that is supplied to the constructor of 
the non-static inner class.

{code:groovy}
// Error: Apparent variable 'this' was found in a static scope but doesn't 
refer to a local variable, static field or class.
class Outer {
  class Inner {} // make this static and all is well
  Outer(Inner inner = new Inner()) {
  }
}
new Outer()
{code}

{code:groovy}
class C {
  C(Runnable runner = new Runnable() { void run() {} }) {
    //                ^^^^^^^^^^^^^^ enclosing method not set and ...
    this.runner = runner
  }
  Runnable runner
}
new C().runner.run()
{code}




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

Reply via email to