From 31eaa211b73befe809fac89aebb38f9496e21c79 Mon Sep 17 00:00:00 2001 From: pyos Date: Tue, 1 Nov 2022 12:44:28 +0100 Subject: [PATCH] Add test for KT-54744 --- ...CompilerTestFE10TestdataTestGenerated.java | 6 +++ ...irOldFrontendDiagnosticsTestGenerated.java | 6 +++ ...DiagnosticsWithLightTreeTestGenerated.java | 6 +++ .../variables/reassignedDependency.fir.kt | 40 +++++++++++++++++++ .../variables/reassignedDependency.kt | 40 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 +++ 6 files changed, 104 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.fir.kt create mode 100644 compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 7e935e77ad1..5a4ec7066a2 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -30607,6 +30607,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/smartCasts/variables/propertySubtypeInMemberCheck.kt"); } + @Test + @TestMetadata("reassignedDependency.kt") + public void testReassignedDependency() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt"); + } + @Test @TestMetadata("varAsUse.kt") public void testVarAsUse() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 75f482d05e0..c3ba4b2b9b2 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -30607,6 +30607,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/smartCasts/variables/propertySubtypeInMemberCheck.kt"); } + @Test + @TestMetadata("reassignedDependency.kt") + public void testReassignedDependency() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt"); + } + @Test @TestMetadata("varAsUse.kt") public void testVarAsUse() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 5220ef21f91..3845a419df9 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -30607,6 +30607,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/smartCasts/variables/propertySubtypeInMemberCheck.kt"); } + @Test + @TestMetadata("reassignedDependency.kt") + public void testReassignedDependency() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt"); + } + @Test @TestMetadata("varAsUse.kt") public void testVarAsUse() throws Exception { diff --git a/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.fir.kt new file mode 100644 index 00000000000..77dc0aac062 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.fir.kt @@ -0,0 +1,40 @@ +// SKIP_TXT + +class C(val x: String?) + +fun test1() { + var c = C("...") + val x = c.x + if (x == null) return + x.length // ok + c.x.length // ok + c = C(null) + x.length // ok + c.x.length // bad +} + +fun test2() { + var c = C("...") + val x = c.x + if (x == null) return + while (true) { + x.length // ok + c.x.length // bad + c = C(null) + x.length // ok + c.x.length // bad + } +} + +fun test3(p: Boolean) { + var c = C("...") + val x = c.x + if (x == null) return + x.length // ok + c.x.length // ok + if (p) { + c = C(null) + } + x.length // ok + c.x.length // bad +} diff --git a/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt b/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt new file mode 100644 index 00000000000..ac274808701 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt @@ -0,0 +1,40 @@ +// SKIP_TXT + +class C(val x: String?) + +fun test1() { + var c = C("...") + val x = c.x + if (x == null) return + x.length // ok + c.x.length // ok + c = C(null) + x.length // ok + c.x.length // bad +} + +fun test2() { + var c = C("...") + val x = c.x + if (x == null) return + while (true) { + x.length // ok + c.x.length // bad + c = C(null) + x.length // ok + c.x.length // bad + } +} + +fun test3(p: Boolean) { + var c = C("...") + val x = c.x + if (x == null) return + x.length // ok + c.x.length // ok + if (p) { + c = C(null) + } + x.length // ok + c.x.length // bad +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 45d09c45331..04593209433 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -30697,6 +30697,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/smartCasts/variables/propertySubtypeInMemberCheck.kt"); } + @Test + @TestMetadata("reassignedDependency.kt") + public void testReassignedDependency() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedDependency.kt"); + } + @Test @TestMetadata("varAsUse.kt") public void testVarAsUse() throws Exception {