[ https://issues.apache.org/jira/browse/GROOVY-9089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles resolved GROOVY-9089. --------------------------------- Fix Version/s: 3.0.0-beta-1 2.5.7 Resolution: Fixed This was resolved with changes linked to GROOVY-9063. Test case refactor for proof was recently merged as well. > STC: owner qualifier produces error for nested closures > ------------------------------------------------------- > > Key: GROOVY-9089 > URL: https://issues.apache.org/jira/browse/GROOVY-9089 > Project: Groovy > Issue Type: Bug > Affects Versions: 3.0.0-alpha-4, 2.5.6 > Reporter: Eric Milles > Priority: Major > Fix For: 2.5.7, 3.0.0-beta-1 > > > In the example script below, the use of the "owner" qualifier causes an > error. Replace with "delegate" and no error. Disable static compilation and > no error. > {code:groovy} > class C1 { > void m() { > print 'outer delegate' > } > } > class C2 { > void m() { > print 'inner delegate' > } > } > void outer(@DelegatesTo(value = C1) Closure block) { > block.delegate = new C1() > block() > } > void inner(@DelegatesTo(value = C2, strategy = Closure.DELEGATE_FIRST) > Closure block) { > block.delegate = new C2() > block() > } > @groovy.transform.CompileStatic // comment out and script prints "outer > delegate" as expected > void test() { > outer { > inner { > owner.m() // "Cannot find matching method Script#m(). Please check if > the declared type is right and if the method exists." > // replace "owner" with "delegate" and CompileStatic has no error and > prints "inner delegate" as expected > } > } > } > test() > {code} -- This message was sent by Atlassian Jira (v8.3.2#803003)