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 30ca32112fa..9cc7cb22fb6 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 @@ -24036,6 +24036,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguity.kt"); } + @Test + @TestMetadata("AssignOperatorAmbiguityExtension.kt") + public void testAssignOperatorAmbiguityExtension() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt"); + } + @Test @TestMetadata("AssignmentOperations.kt") public void testAssignmentOperations() 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 93e07689fa0..b326a94bc3f 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 @@ -24036,6 +24036,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguity.kt"); } + @Test + @TestMetadata("AssignOperatorAmbiguityExtension.kt") + public void testAssignOperatorAmbiguityExtension() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt"); + } + @Test @TestMetadata("AssignmentOperations.kt") public void testAssignmentOperations() 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 6ab77af182f..3e0d16a2679 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 @@ -24036,6 +24036,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguity.kt"); } + @Test + @TestMetadata("AssignOperatorAmbiguityExtension.kt") + public void testAssignOperatorAmbiguityExtension() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt"); + } + @Test @TestMetadata("AssignmentOperations.kt") public void testAssignmentOperations() 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 b9419cb86b0..84c9685afaa 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 @@ -24042,6 +24042,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguity.kt"); } + @Test + @TestMetadata("AssignOperatorAmbiguityExtension.kt") + public void testAssignOperatorAmbiguityExtension() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt"); + } + @Test @TestMetadata("AssignmentOperations.kt") public void testAssignmentOperations() throws Exception { diff --git a/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt b/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt new file mode 100644 index 00000000000..6eae00734b5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL +// ISSUE: KT-62138 +class HashMap( + private val defaultValue: V +) { + operator fun get(key: K): V = defaultValue + operator fun set(key: K, value: V) { } +} + +private class X + +private operator fun X?.plus(p: Int) = X() +private operator fun X?.plusAssign(p: Int) { } + +class C { + private val map = HashMap(defaultValue = X()) + + fun f(): Any? { + map[""] += 1 + return map[""] + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.txt b/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.txt new file mode 100644 index 00000000000..08556d1a116 --- /dev/null +++ b/compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.txt @@ -0,0 +1,30 @@ +package + +private operator fun X?.plus(/*0*/ p: kotlin.Int): X +private operator fun X?.plusAssign(/*0*/ p: kotlin.Int): kotlin.Unit + +public final class C { + public constructor C() + private final val map: HashMap + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final fun f(): kotlin.Any? + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class HashMap { + public constructor HashMap(/*0*/ defaultValue: V) + private final val defaultValue: V + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun get(/*0*/ key: K): V + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final operator fun set(/*0*/ key: K, /*1*/ value: V): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +private final class X { + public constructor X() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} 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 2d74daecf8f..76613b8a9ad 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 @@ -25888,6 +25888,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguity.kt"); } + @Test + @TestMetadata("AssignOperatorAmbiguityExtension.kt") + public void testAssignOperatorAmbiguityExtension() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorsOverloading/AssignOperatorAmbiguityExtension.kt"); + } + @Test @TestMetadata("AssignmentOperations.kt") public void testAssignmentOperations() throws Exception {