From c34511af3741e12c83a75f43a61ab62c753df6d8 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 23 Nov 2023 16:16:14 +0200 Subject: [PATCH] [Test] Reproduce KT-63738 --- ...icCompilerTestFirTestdataTestGenerated.java | 6 ++++++ ...nosticCompilerFirTestDataTestGenerated.java | 6 ++++++ .../scopes/singleIntersectionOverride.fir.txt | 13 +++++++++++++ .../scopes/singleIntersectionOverride.kt | 18 ++++++++++++++++++ .../singleIntersectionOverride.overrides.txt | 6 ++++++ .../FirLightTreeDiagnosticsTestGenerated.java | 6 ++++++ .../runners/FirPsiDiagnosticTestGenerated.java | 6 ++++++ 7 files changed, 61 insertions(+) create mode 100644 compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.fir.txt create mode 100644 compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt create mode 100644 compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.overrides.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java index e336c07786b..459553cff85 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java @@ -4357,6 +4357,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag runTest("compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.kt"); } + @Test + @TestMetadata("singleIntersectionOverride.kt") + public void testSingleIntersectionOverride() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt"); + } + @Test @TestMetadata("specialFunctionInJava_1.kt") public void testSpecialFunctionInJava_1() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java index 1d48024ab39..8a9755eea1a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java @@ -4357,6 +4357,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated runTest("compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.kt"); } + @Test + @TestMetadata("singleIntersectionOverride.kt") + public void testSingleIntersectionOverride() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt"); + } + @Test @TestMetadata("specialFunctionInJava_1.kt") public void testSpecialFunctionInJava_1() throws Exception { diff --git a/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.fir.txt b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.fir.txt new file mode 100644 index 00000000000..cf791dfac86 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.fir.txt @@ -0,0 +1,13 @@ +FILE: singleIntersectionOverride.kt + public abstract interface A : R|kotlin/Any| { + public abstract fun foo(): R|E1| + + } + public abstract interface B : R|A| { + public abstract override fun foo(): R|E2| + + } + public abstract interface C : R|A| { + } + public abstract interface D : R|B|, R|C| { + } diff --git a/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt new file mode 100644 index 00000000000..79c7f76a0e9 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt @@ -0,0 +1,18 @@ +// ISSUE: KT-63738 +// SCOPE_DUMP: D:foo + +interface A { + fun foo(): E1 // (1) +} + +interface B : A { + override fun foo(): E2 // (2) +} + +interface C : A { + // substitution-override fun foo(): E3 // (3) +} + +interface D : B, C { + // substitution-override fun foo(): E4 // (4) +} diff --git a/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.overrides.txt b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.overrides.txt new file mode 100644 index 00000000000..3dbaa09f8a7 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.overrides.txt @@ -0,0 +1,6 @@ +D: + [SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Use site scope of /D [id: 0] + [Source]: public abstract override fun foo(): R|E2| from Use site scope of /B [id: 1] + [SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E2| from Substitution scope for [Use site scope of /A] for type B [id: 2] + [Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3] + diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java index 61f99dc0f49..3ed37566ac6 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java @@ -4357,6 +4357,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi runTest("compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.kt"); } + @Test + @TestMetadata("singleIntersectionOverride.kt") + public void testSingleIntersectionOverride() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt"); + } + @Test @TestMetadata("specialFunctionInJava_1.kt") public void testSpecialFunctionInJava_1() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java index 2f859e0e790..24584362566 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java @@ -4357,6 +4357,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest runTest("compiler/fir/analysis-tests/testData/resolve/scopes/publicJavaAndPrivateKotlinVar.kt"); } + @Test + @TestMetadata("singleIntersectionOverride.kt") + public void testSingleIntersectionOverride() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/scopes/singleIntersectionOverride.kt"); + } + @Test @TestMetadata("specialFunctionInJava_1.kt") public void testSpecialFunctionInJava_1() throws Exception {