From 0b31e5ad63e5913b3ffee088bfc53e4a15accfcb Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 8 Feb 2023 17:44:45 +0100 Subject: [PATCH] K2: reproduce & add test for KT-56511 --- ...osisCompilerTestFE10TestdataTestGenerated.java | 6 ++++++ ...htTreeOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ ...FirPsiOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../smartCastOnAlienPropertyFromInnerClass.fir.kt | 15 +++++++++++++++ .../smartCastOnAlienPropertyFromInnerClass.kt | 15 +++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++++ 6 files changed, 54 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.fir.kt create mode 100644 compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.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 3e76f09bdcf..002ed2df5c6 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 @@ -30180,6 +30180,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastAndArgumentApproximation.kt"); } + @Test + @TestMetadata("smartCastOnAlienPropertyFromInnerClass.kt") + public void testSmartCastOnAlienPropertyFromInnerClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt"); + } + @Test @TestMetadata("smartCastOnElvis.kt") public void testSmartCastOnElvis() 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 c8d5aa00206..361ac71ae5e 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 @@ -30180,6 +30180,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastAndArgumentApproximation.kt"); } + @Test + @TestMetadata("smartCastOnAlienPropertyFromInnerClass.kt") + public void testSmartCastOnAlienPropertyFromInnerClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt"); + } + @Test @TestMetadata("smartCastOnElvis.kt") public void testSmartCastOnElvis() 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 f5afaf68c33..4248f350a59 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 @@ -30276,6 +30276,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastAndArgumentApproximation.kt"); } + @Test + @TestMetadata("smartCastOnAlienPropertyFromInnerClass.kt") + public void testSmartCastOnAlienPropertyFromInnerClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt"); + } + @Test @TestMetadata("smartCastOnElvis.kt") public void testSmartCastOnElvis() throws Exception { diff --git a/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.fir.kt new file mode 100644 index 00000000000..dd177536d37 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.fir.kt @@ -0,0 +1,15 @@ +// MODULE: m1 +// FILE: A.kt + +open class Base(val x: Any) + +// MODULE: m2(m1) +// FILE: B.kt + +private class Derived : Base("123") { + fun foo() { + if (x is String) { + x.length + } + } +} diff --git a/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt b/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt new file mode 100644 index 00000000000..f637ee16803 --- /dev/null +++ b/compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt @@ -0,0 +1,15 @@ +// MODULE: m1 +// FILE: A.kt + +open class Base(val x: Any) + +// MODULE: m2(m1) +// FILE: B.kt + +private class Derived : Base("123") { + fun foo() { + if (x is String) { + x.length + } + } +} 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 5071743003d..ccd1cd0e892 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 @@ -30276,6 +30276,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastAndArgumentApproximation.kt"); } + @Test + @TestMetadata("smartCastOnAlienPropertyFromInnerClass.kt") + public void testSmartCastOnAlienPropertyFromInnerClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/smartCasts/smartCastOnAlienPropertyFromInnerClass.kt"); + } + @Test @TestMetadata("smartCastOnElvis.kt") public void testSmartCastOnElvis() throws Exception {