From 1832413a02ea54c88a5296e75b9bd73aeaa66185 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 24 Jul 2023 22:03:47 +0200 Subject: [PATCH] K2: reproduce KT-59748 --- ...CompilerTestFE10TestdataTestGenerated.java | 6 +++++ ...sticCompilerFE10TestDataTestGenerated.java | 6 +++++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 +++++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 +++++ .../listAssignmentInWhen.fir.kt | 12 ++++++++++ .../listAssignmentInWhen.fir.txt | 23 +++++++++++++++++++ .../testsWithStdLib/listAssignmentInWhen.kt | 12 ++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 +++++ 8 files changed, 77 insertions(+) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.txt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.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 4edf67e3206..aeeb382999d 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 @@ -36627,6 +36627,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/testsWithStdLib/labelClashesWithContextReceivers.kt"); } + @Test + @TestMetadata("listAssignmentInWhen.kt") + public void testListAssignmentInWhen() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt"); + } + @Test @TestMetadata("outstar.kt") public void testOutstar() 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 7b362e9e4eb..2db4f8dfda5 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 @@ -36627,6 +36627,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/testsWithStdLib/labelClashesWithContextReceivers.kt"); } + @Test + @TestMetadata("listAssignmentInWhen.kt") + public void testListAssignmentInWhen() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt"); + } + @Test @TestMetadata("outstar.kt") public void testOutstar() 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 ff045ff422f..cb7156dc510 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 @@ -36627,6 +36627,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/testsWithStdLib/labelClashesWithContextReceivers.kt"); } + @Test + @TestMetadata("listAssignmentInWhen.kt") + public void testListAssignmentInWhen() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt"); + } + @Test @TestMetadata("outstar.kt") public void testOutstar() 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 90a1c96eb8c..fbc62d160a0 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 @@ -36741,6 +36741,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/testsWithStdLib/labelClashesWithContextReceivers.kt"); } + @Test + @TestMetadata("listAssignmentInWhen.kt") + public void testListAssignmentInWhen() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt"); + } + @Test @TestMetadata("outstar.kt") public void testOutstar() throws Exception { diff --git a/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.kt new file mode 100644 index 00000000000..7f3ef54b052 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.kt @@ -0,0 +1,12 @@ +// ISSUE: KT-59748 +// FIR_DUMP + +fun foo(list: MutableList, condition: Boolean): Unit = when { + condition -> list[0] = "" + else -> Unit +} + +fun bar(list: MutableList, condition: Boolean): Unit = when { + condition -> list.set(0, "") + else -> Unit +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.txt b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.txt new file mode 100644 index 00000000000..4d682c1ed88 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.fir.txt @@ -0,0 +1,23 @@ +FILE: listAssignmentInWhen.fir.kt + public final fun foo(list: R|kotlin/collections/MutableList|, condition: R|kotlin/Boolean|): R|kotlin/Unit| { + ^foo when () { + R|/condition| -> { + R|/list|.R|SubstitutionOverride|(Int(0), String()) + } + else -> { + Q|kotlin/Unit| + } + } + + } + public final fun bar(list: R|kotlin/collections/MutableList|, condition: R|kotlin/Boolean|): R|kotlin/Unit| { + ^bar when () { + R|/condition| -> { + R|/list|.R|SubstitutionOverride|(Int(0), String()) + } + else -> { + Q|kotlin/Unit| + } + } + + } diff --git a/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt new file mode 100644 index 00000000000..ab449e1e166 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt @@ -0,0 +1,12 @@ +// ISSUE: KT-59748 +// FIR_DUMP + +fun foo(list: MutableList, condition: Boolean): Unit = when { + condition -> list[0] = "" + else -> Unit +} + +fun bar(list: MutableList, condition: Boolean): Unit = when { + condition -> list.set(0, "") + else -> Unit +} 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 fbe72979cae..15bdfb225bd 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 @@ -37745,6 +37745,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/labelClashesWithContextReceivers.kt"); } + @Test + @TestMetadata("listAssignmentInWhen.kt") + public void testListAssignmentInWhen() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/listAssignmentInWhen.kt"); + } + @Test @TestMetadata("outstar.kt") public void testOutstar() throws Exception {