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)