You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (JIRA)" <ji...@apache.org> on 2019/06/09 18:43:00 UTC
[jira] [Created] (GROOVY-9168) Default Parameters: non-static inner
class constructor call in default value causes VerifyError at run-time
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)