diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.kt new file mode 100644 index 00000000000..3d655de33a0 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.kt @@ -0,0 +1,12 @@ +fun bar(arg: Any?) = arg + +fun foo() { + var s: String? + s = null + try { + s = "Test" + } catch (ex: Exception) {} + bar(s) + if (s != null) { } + s.hashCode() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.txt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.txt new file mode 100644 index 00000000000..71d0d0f1e6a --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.txt @@ -0,0 +1,4 @@ +package + +public fun bar(/*0*/ arg: kotlin.Any?): kotlin.Any? +public fun foo(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.kt new file mode 100644 index 00000000000..c88165dda4a --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.kt @@ -0,0 +1,8 @@ +fun foo() { + var s: String? + s = "Test" + try { + s = null + } catch (ex: Exception) {} + s.hashCode() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.txt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.txt new file mode 100644 index 00000000000..65a6ac47e1f --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.txt @@ -0,0 +1,3 @@ +package + +public fun foo(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.kt new file mode 100644 index 00000000000..073a371397d --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.kt @@ -0,0 +1,14 @@ +fun bar() {} + +fun foo() { + var s: String? + s = "Test" + try { + s = null + } + catch (ex: Exception) {} + finally { + bar() + } + s.hashCode() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.txt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.txt new file mode 100644 index 00000000000..a34eb4a98fa --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.txt @@ -0,0 +1,4 @@ +package + +public fun bar(): kotlin.Unit +public fun foo(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.kt new file mode 100644 index 00000000000..78573861389 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.kt @@ -0,0 +1,8 @@ +fun foo() { + var s: String? + s = "Test" + try { + s = "Other" + } catch (ex: Exception) {} + s.hashCode() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.txt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.txt new file mode 100644 index 00000000000..65a6ac47e1f --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.txt @@ -0,0 +1,3 @@ +package + +public fun foo(): kotlin.Unit diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index e71fb2470b5..8688241539a 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -21168,6 +21168,30 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("setNotNullInTry.kt") + public void testSetNotNullInTry() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNotNullInTry.kt"); + doTest(fileName); + } + + @TestMetadata("setNullInTry.kt") + public void testSetNullInTry() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTry.kt"); + doTest(fileName); + } + + @TestMetadata("setNullInTryFinally.kt") + public void testSetNullInTryFinally() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/setNullInTryFinally.kt"); + doTest(fileName); + } + + @TestMetadata("setSameInTry.kt") + public void testSetSameInTry() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/setSameInTry.kt"); + doTest(fileName); + } + @TestMetadata("toFlexibleType.kt") public void testToFlexibleType() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/varnotnull/toFlexibleType.kt");