[jira] [Updated] (GROOVY-9343) Variable type is not updated in operator assignment
[ https://issues.apache.org/jira/browse/GROOVY-9343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniil Ovchinnikov updated GROOVY-9343: --- Affects Version/s: 2.5.8 > Variable type is not updated in operator assignment > --- > > Key: GROOVY-9343 > URL: https://issues.apache.org/jira/browse/GROOVY-9343 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker >Affects Versions: 2.5.8 >Reporter: Daniil Ovchinnikov >Priority: Major > > {code} > class A { B plus(x) { new B() } } > class B { def foo() {42} } > @groovy.transform.CompileStatic > def cs() { > def var > var = new A() > var = var + 1 > var.foo() > } > assert cs() == 42 > @groovy.transform.CompileStatic > def cs2() { > def var > var = new A() > var += 1 > var.foo() // Cannot find matching method A#foo() > } > assert cs2() == 43 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GROOVY-9343) Variable type is not updated in operator assignment
[ https://issues.apache.org/jira/browse/GROOVY-9343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniil Ovchinnikov updated GROOVY-9343: --- Description: {code:java} class A { B plus(x) { new B() } } class B { def foo() {42} } @groovy.transform.CompileStatic def cs() { def var var = new A() var = var + 1 var.foo() } assert cs() == 42 @groovy.transform.CompileStatic def cs2() { def var var = new A() var += 1 var.foo() // Cannot find matching method A#foo() } assert cs2() == 42 {code} was: {code} class A { B plus(x) { new B() } } class B { def foo() {42} } @groovy.transform.CompileStatic def cs() { def var var = new A() var = var + 1 var.foo() } assert cs() == 42 @groovy.transform.CompileStatic def cs2() { def var var = new A() var += 1 var.foo() // Cannot find matching method A#foo() } assert cs2() == 43 {code} > Variable type is not updated in operator assignment > --- > > Key: GROOVY-9343 > URL: https://issues.apache.org/jira/browse/GROOVY-9343 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker >Affects Versions: 2.5.8 >Reporter: Daniil Ovchinnikov >Priority: Major > > {code:java} > class A { B plus(x) { new B() } } > class B { def foo() {42} } > @groovy.transform.CompileStatic > def cs() { > def var > var = new A() > var = var + 1 > var.foo() > } > assert cs() == 42 > @groovy.transform.CompileStatic > def cs2() { > def var > var = new A() > var += 1 > var.foo() // Cannot find matching method A#foo() > } > assert cs2() == 42 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)