diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 29e5e2609ad..4e3b7ec5837 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -6612,6 +6612,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/propertiesOrderInPackage.kt"); } + @Test + @TestMetadata("reassignmentInCatch.kt") + public void testReassignmentInCatch() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt"); + } + @Test @TestMetadata("reassignmentInTryCatch.kt") public void testReassignmentInTryCatch() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 749d1ad90a4..a52ea545c2e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -6612,6 +6612,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/propertiesOrderInPackage.kt"); } + @Test + @TestMetadata("reassignmentInCatch.kt") + public void testReassignmentInCatch() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt"); + } + @Test @TestMetadata("reassignmentInTryCatch.kt") public void testReassignmentInTryCatch() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index ed70cb63225..e9a13e8ad9f 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -6612,6 +6612,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/propertiesOrderInPackage.kt"); } + @Test + @TestMetadata("reassignmentInCatch.kt") + public void testReassignmentInCatch() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt"); + } + @Test @TestMetadata("reassignmentInTryCatch.kt") public void testReassignmentInTryCatch() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 4328da1a76d..b9d56b93d2d 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -6618,6 +6618,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/propertiesOrderInPackage.kt"); } + @Test + @TestMetadata("reassignmentInCatch.kt") + public void testReassignmentInCatch() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt"); + } + @Test @TestMetadata("reassignmentInTryCatch.kt") public void testReassignmentInTryCatch() throws Exception { diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.fir.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.fir.kt new file mode 100644 index 00000000000..5cd83d2a82c --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.fir.kt @@ -0,0 +1,15 @@ +// ISSUE: KT-42995 + +fun test() { + val a: Int + try { + run { + a = 1 + a.inc() + throw Exception("hmm") + } + } catch (e: Exception) { + a = 2 + a.inc() + } +} diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt new file mode 100644 index 00000000000..f7eeee064a7 --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt @@ -0,0 +1,15 @@ +// ISSUE: KT-42995 + +fun test() { + val a: Int + try { + run { + a = 1 + a.inc() + throw Exception("hmm") + } + } catch (e: Exception) { + a = 2 + a.inc() + } +} 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 5372c77f3dd..8167d6ec406 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 @@ -6618,6 +6618,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/propertiesOrderInPackage.kt"); } + @Test + @TestMetadata("reassignmentInCatch.kt") + public void testReassignmentInCatch() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInCatch.kt"); + } + @Test @TestMetadata("reassignmentInTryCatch.kt") public void testReassignmentInTryCatch() throws Exception {