| // TARGET_BACKEND: JVM | |
| // FILE: varModifiedAfterCheck.kt | |
| fun implicitCheck(s: String) {} | |
| fun test1() { | |
| var a = J.foo() | |
| val b = a | |
| a = J.bar() | |
| if (b != null) { | |
| if (a != null) { | |
| throw AssertionError("a: $a") | |
| } | |
| } | |
| } | |
| fun test2() { | |
| var a = J.foo() | |
| val b = a | |
| if (b != null) { | |
| a = J.bar() | |
| if (a != null) { | |
| throw AssertionError("a: $a") | |
| } | |
| } | |
| } | |
| fun test3() { | |
| var a = J.foo() | |
| val b = a | |
| a = J.bar() | |
| implicitCheck(b) | |
| if (a != null) { | |
| throw AssertionError("a: $a") | |
| } | |
| } | |
| fun test4() { | |
| var a = J.foo() | |
| val b = a | |
| implicitCheck(b) | |
| a = J.bar() | |
| if (a != null) { | |
| throw AssertionError("a: $a") | |
| } | |
| } | |
| fun box(): String { | |
| test1() | |
| test2() | |
| test3() | |
| test4() | |
| return "OK" | |
| } | |
| // FILE: J.java | |
| public class J { | |
| public static String foo() { return ""; } | |
| public static String bar() { return null; } | |
| } |