Eric Milles created GROOVY-11400: ------------------------------------ Summary: STC: closure parameter metadata after re-assignment of variable Key: GROOVY-11400 URL: https://issues.apache.org/jira/browse/GROOVY-11400 Project: Groovy Issue Type: Bug Components: Static Type Checker Reporter: Eric Milles Assignee: Eric Milles
Consider the following: {code:groovy} @groovy.transform.TypeChecked void test() { def c = { p = 'foo' -> return p } assert c('bar') == 'bar' assert c() == 'foo' c = { p, q = 'baz' -> '' + p + q } assert c('foo', 'bar') == 'foobar' assert c('foo') == 'foobaz' c = { p, q = p.toString() -> '' + p + q } assert c('foo', 'bar') == 'foobar' assert c('foo') == 'foofoo' } test() {code} When "c" is assigned a new closure, the parameter metadata is not updated on the original variable. This results in errors for "c('foo','bar')" calls, which are not compatible with the original closure signature. GROOVY-10072, GROOVY-11394 -- This message was sent by Atlassian Jira (v8.20.10#820010)