[ https://issues.apache.org/jira/browse/GROOVY-6429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16439328#comment-16439328 ]
Paul King commented on GROOVY-6429: ----------------------------------- After GROOVY-8523, test2 now works but test3 still doesn't compile. > flow typing detects unexpected error at if-else flow > ---------------------------------------------------- > > Key: GROOVY-6429 > URL: https://issues.apache.org/jira/browse/GROOVY-6429 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Affects Versions: 2.2.0-rc-2, 2.3.0, 2.4.0-beta-3 > Environment: MacOSX Marverics > Reporter: UEHARA Junji > Priority: Major > > In groovy 2.2.0-rc-3, this code: > {code} > class A{ > } > class B extends A{ > void foo(){} > } > @groovy.transform.TypeChecked > void test1(A x) { > if (x instanceof B) { > x.foo() > } > } > @groovy.transform.TypeChecked > void test2(A x) { > if (!(x instanceof B)) { > return > } > x.foo() > } > @groovy.transform.TypeChecked > void test3(A x) { > if (!(x instanceof B)) { > return > } > else { > x.foo() > } > } > @groovy.transform.TypeChecked > void test4(A x) { > if (!(x instanceof B)) { > return > } > assert x instanceof B > x.foo() > } > test1(new B()) > test2(new B()) > test3(new B()) > test4(new B()) > {code} > expects all OK. but test2 and test3 results in: > {quote} > % groovy a.groovy > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > /Users/uehaj/work/201311/comprehension_groovy/a.groovy: 19: [Static type > checking] - Cannot find matching method A#foo(). Please check if the declared > type is right and if the method exists. > @ line 19, column 5. > x.foo() > ^ > /Users/uehaj/work/201311/comprehension_groovy/a.groovy: 28: [Static type > checking] - Cannot find matching method A#foo(). Please check if the declared > type is right and if the method exists. > @ line 28, column 9. > x.foo() > ^ > 2 errors > {quote} -- This message was sent by Atlassian JIRA (v7.6.3#76005)