[jira] [Updated] (GROOVY-9343) Variable type is not updated in operator assignment

2019-12-19 Thread Daniil Ovchinnikov (Jira)


 [ 
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

2019-12-19 Thread Daniil Ovchinnikov (Jira)


 [ 
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)