From 49ec30735cc396247266f934f802a89e827847f7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 26 Jan 2024 10:33:59 +0100 Subject: [PATCH] K2: add a pair of KJ tests related to KT-64846 but w/out explicit override --- ...CompilerTestFE10TestdataTestGenerated.java | 12 ++++++++++ ...sticCompilerFE10TestDataTestGenerated.java | 12 ++++++++++ ...eeOldFrontendDiagnosticsTestGenerated.java | 12 ++++++++++ ...siOldFrontendDiagnosticsTestGenerated.java | 12 ++++++++++ ...harAtAndOverloadWithoutExplicitOverride.kt | 24 +++++++++++++++++++ ...rloadWithoutExplicitOverride.overrides.txt | 6 +++++ ...sAndOverloadWithoutExplicitOverride.fir.kt | 18 ++++++++++++++ ...dWithoutExplicitOverride.fir.overrides.txt | 13 ++++++++++ ...tainsAndOverloadWithoutExplicitOverride.kt | 18 ++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 12 ++++++++++ 10 files changed, 139 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.overrides.txt create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.overrides.txt create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.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 cc7044351eb..0c43d64966a 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 @@ -22525,6 +22525,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverload.kt"); } + @Test + @TestMetadata("charAtAndOverloadWithoutExplicitOverride.kt") + public void testCharAtAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("charBuffer.kt") public void testCharBuffer() throws Exception { @@ -22561,6 +22567,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverload.kt"); } + @Test + @TestMetadata("containsAndOverloadWithoutExplicitOverride.kt") + public void testContainsAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("getCharSequence.kt") public void testGetCharSequence() 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 49e98e31b23..be04bce334c 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 @@ -22525,6 +22525,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverload.kt"); } + @Test + @TestMetadata("charAtAndOverloadWithoutExplicitOverride.kt") + public void testCharAtAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("charBuffer.kt") public void testCharBuffer() throws Exception { @@ -22561,6 +22567,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverload.kt"); } + @Test + @TestMetadata("containsAndOverloadWithoutExplicitOverride.kt") + public void testContainsAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("getCharSequence.kt") public void testGetCharSequence() 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 1d48478e7bd..f1f9223ae73 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 @@ -22519,6 +22519,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverload.kt"); } + @Test + @TestMetadata("charAtAndOverloadWithoutExplicitOverride.kt") + public void testCharAtAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("charBuffer.kt") public void testCharBuffer() throws Exception { @@ -22555,6 +22561,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverload.kt"); } + @Test + @TestMetadata("containsAndOverloadWithoutExplicitOverride.kt") + public void testContainsAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("getCharSequence.kt") public void testGetCharSequence() 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 6f75823446e..9b5debc9053 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 @@ -22525,6 +22525,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverload.kt"); } + @Test + @TestMetadata("charAtAndOverloadWithoutExplicitOverride.kt") + public void testCharAtAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("charBuffer.kt") public void testCharBuffer() throws Exception { @@ -22561,6 +22567,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverload.kt"); } + @Test + @TestMetadata("containsAndOverloadWithoutExplicitOverride.kt") + public void testContainsAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("getCharSequence.kt") public void testGetCharSequence() throws Exception { diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt new file mode 100644 index 00000000000..d193514d7e1 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt @@ -0,0 +1,24 @@ +// FIR_IDENTICAL +// SCOPE_DUMP: KA:get + +// FILE: A.java +abstract public class A implements CharSequence { + public final int length() { + return 0; + } + + public char charAt(int index) { + return ' '; + } + + public char get(int index) { + return 'X'; + } +} + +// FILE: main.kt +abstract class KA : A() + +fun foo(a: A, ka: KA) { + ka.get(0) +} diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.overrides.txt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.overrides.txt new file mode 100644 index 00000000000..c9d491b884b --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.overrides.txt @@ -0,0 +1,6 @@ +KA: + [Enhancement]: public open operator fun get(index: R|kotlin/Int|): R|kotlin/Char| from Use site scope of /KA [id: 0] + [Enhancement]: public open operator fun get(index: R|kotlin/Int|): R|kotlin/Char| from Java enhancement scope for /A [id: 0] + [Enhancement]: /* hidden due to clash */ public open operator fun get(index: R|kotlin/Int|): R|kotlin/Char| from Use site scope of /KA [id: 0] + [Enhancement]: /* hidden due to clash */ public open operator fun get(index: R|kotlin/Int|): R|kotlin/Char| from Java enhancement scope for /A [id: 0] + [Library]: public abstract operator fun get(index: R|kotlin/Int|): R|kotlin/Char| from Use site scope of kotlin/CharSequence [id: 1] diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.kt new file mode 100644 index 00000000000..e77b6fdeee2 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.kt @@ -0,0 +1,18 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -PARAMETER_NAME_CHANGED_ON_OVERRIDE +// SCOPE_DUMP: KA:contains + +// FILE: A.java +abstract public class A implements java.util.Collection { + public boolean contains(Object x) {return false;} + public boolean contains(String x) {return false;} +} + +// FILE: main.kt +abstract class KA : A() + +fun foo(a: A, ka: KA) { + ka.contains("") + ka.contains(1) + "" in ka + 1 in ka +} diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.overrides.txt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.overrides.txt new file mode 100644 index 00000000000..7826ec5dde9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.fir.overrides.txt @@ -0,0 +1,13 @@ +KA: + [Enhancement]: public open operator fun contains(x: R|kotlin/String!|): R|kotlin/Boolean| from Use site scope of /KA [id: 0] + [Enhancement]: public open operator fun contains(x: R|kotlin/String!|): R|kotlin/Boolean| from Java enhancement scope for /A [id: 0] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|kotlin/String!|): R|kotlin/Boolean| from Substitution scope for [Use site scope of kotlin/collections/MutableCollection] for type A [id: 1] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Use site scope of kotlin/collections/MutableCollection [id: 2] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Substitution scope for [Use site scope of kotlin/collections/Collection] for type kotlin/collections/MutableCollection [id: 2] + [Library]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Use site scope of kotlin/collections/Collection [id: 3] + [Enhancement]: /* hidden due to clash */ public open operator fun contains(x: R|kotlin/String!|): R|kotlin/Boolean| from Use site scope of /KA [id: 0] + [Enhancement]: /* hidden due to clash */ public open operator fun contains(x: R|kotlin/String!|): R|kotlin/Boolean| from Java enhancement scope for /A [id: 0] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|kotlin/String!|): R|kotlin/Boolean| from Substitution scope for [Use site scope of kotlin/collections/MutableCollection] for type A [id: 1] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Use site scope of kotlin/collections/MutableCollection [id: 2] + [SubstitutionOverride(DeclarationSite)]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Substitution scope for [Use site scope of kotlin/collections/Collection] for type kotlin/collections/MutableCollection [id: 2] + [Library]: public abstract operator fun contains(element: R|E|): R|kotlin/Boolean| from Use site scope of kotlin/collections/Collection [id: 3] diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt new file mode 100644 index 00000000000..d8adec77a0c --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt @@ -0,0 +1,18 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -PARAMETER_NAME_CHANGED_ON_OVERRIDE +// SCOPE_DUMP: KA:contains + +// FILE: A.java +abstract public class A implements java.util.Collection { + public boolean contains(Object x) {return false;} + public boolean contains(String x) {return false;} +} + +// FILE: main.kt +abstract class KA : A() + +fun foo(a: A, ka: KA) { + ka.contains("") + ka.contains(1) + "" in ka + 1 in ka +} 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 8191a25a873..708d14911fa 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 @@ -22525,6 +22525,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverload.kt"); } + @Test + @TestMetadata("charAtAndOverloadWithoutExplicitOverride.kt") + public void testCharAtAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/charAtAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("charBuffer.kt") public void testCharBuffer() throws Exception { @@ -22561,6 +22567,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverload.kt"); } + @Test + @TestMetadata("containsAndOverloadWithoutExplicitOverride.kt") + public void testContainsAndOverloadWithoutExplicitOverride() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/containsAndOverloadWithoutExplicitOverride.kt"); + } + @Test @TestMetadata("getCharSequence.kt") public void testGetCharSequence() throws Exception {