From a35b3bfd1719df75c77208e9b49cb83a29c2a7f8 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 3 Jul 2023 14:14:49 +0300 Subject: [PATCH] [Test] Add test for KT-41198 and KT-59860 --- .../DiagnosticCompilerTestFE10TestdataTestGenerated.java | 6 ++++++ ...eversedDiagnosticCompilerFE10TestDataTestGenerated.java | 6 ++++++ .../FirLightTreeOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../runners/FirPsiOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../safeCallAfterVariableInitialization.fir.kt | 7 +++++++ .../safeCallAfterVariableInitialization.kt | 7 +++++++ .../kotlin/test/runners/DiagnosticTestGenerated.java | 6 ++++++ 7 files changed, 44 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.fir.kt create mode 100644 compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt 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 64dc19e541b..29e5e2609ad 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 @@ -6636,6 +6636,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @Test + @TestMetadata("safeCallAfterVariableInitialization.kt") + public void testSafeCallAfterVariableInitialization() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt"); + } + @Test @TestMetadata("scopeOfAnonymousInitializer.kt") public void testScopeOfAnonymousInitializer() 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 dedd3e2bab8..749d1ad90a4 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 @@ -6636,6 +6636,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @Test + @TestMetadata("safeCallAfterVariableInitialization.kt") + public void testSafeCallAfterVariableInitialization() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt"); + } + @Test @TestMetadata("scopeOfAnonymousInitializer.kt") public void testScopeOfAnonymousInitializer() 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 f3c93e688bf..ed70cb63225 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 @@ -6636,6 +6636,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @Test + @TestMetadata("safeCallAfterVariableInitialization.kt") + public void testSafeCallAfterVariableInitialization() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt"); + } + @Test @TestMetadata("scopeOfAnonymousInitializer.kt") public void testScopeOfAnonymousInitializer() 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 a0446c9390b..4328da1a76d 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 @@ -6642,6 +6642,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @Test + @TestMetadata("safeCallAfterVariableInitialization.kt") + public void testSafeCallAfterVariableInitialization() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt"); + } + @Test @TestMetadata("scopeOfAnonymousInitializer.kt") public void testScopeOfAnonymousInitializer() throws Exception { diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.fir.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.fir.kt new file mode 100644 index 00000000000..3dac965ae1a --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.fir.kt @@ -0,0 +1,7 @@ +// ISSUE: KT-41198, KT-59860 + +fun test() { + val b: Int + run { b = 1 }?.let {} + b.inc() +} diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt new file mode 100644 index 00000000000..41756e0fc55 --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt @@ -0,0 +1,7 @@ +// ISSUE: KT-41198, KT-59860 + +fun test() { + val b: Int + run { b = 1 }?.let {} + b.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 82b1fc8a11e..5372c77f3dd 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 @@ -6642,6 +6642,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/repeatUnitializedErrorOnlyForLocalVars.kt"); } + @Test + @TestMetadata("safeCallAfterVariableInitialization.kt") + public void testSafeCallAfterVariableInitialization() throws Exception { + runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/safeCallAfterVariableInitialization.kt"); + } + @Test @TestMetadata("scopeOfAnonymousInitializer.kt") public void testScopeOfAnonymousInitializer() throws Exception {