KT-55822: Add diagnostics test showing that issue is fixed in K2
^KT-55822: Fixed Target versions: K2
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 4d65d18..93a7cc2 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
@@ -23437,6 +23437,12 @@
}
@Test
+ @TestMetadata("InheritingJavaClassWithRawTypeInOverrideSignature.kt")
+ public void testInheritingJavaClassWithRawTypeInOverrideSignature() throws Exception {
+ runTest("compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt");
+ }
+
+ @Test
@TestMetadata("InternalPotentialOverride.kt")
public void testInternalPotentialOverride() throws Exception {
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java
index b276398..aa4fde8 100644
--- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java
+++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java
@@ -23443,6 +23443,12 @@
}
@Test
+ @TestMetadata("InheritingJavaClassWithRawTypeInOverrideSignature.kt")
+ public void testInheritingJavaClassWithRawTypeInOverrideSignature() throws Exception {
+ runTest("compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt");
+ }
+
+ @Test
@TestMetadata("InternalPotentialOverride.kt")
public void testInternalPotentialOverride() throws Exception {
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java
index 2cc3b8c..9875914 100644
--- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java
+++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java
@@ -23437,6 +23437,12 @@
}
@Test
+ @TestMetadata("InheritingJavaClassWithRawTypeInOverrideSignature.kt")
+ public void testInheritingJavaClassWithRawTypeInOverrideSignature() throws Exception {
+ runTest("compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt");
+ }
+
+ @Test
@TestMetadata("InternalPotentialOverride.kt")
public void testInternalPotentialOverride() throws Exception {
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
diff --git a/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.fir.kt b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.fir.kt
new file mode 100644
index 0000000..8f52b1b
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.fir.kt
@@ -0,0 +1,20 @@
+// FILE: A.java
+import java.util.List;
+
+public interface A<T> {
+ void foo(List<T> list);
+}
+
+// FILE: B.java
+import java.util.List;
+
+public abstract class B implements A<String> {
+ @Override
+ public final void foo(List list) {}
+}
+
+// FILE: C.java
+public class C extends B implements A<String> {}
+
+// FILE: Main.kt
+class X : C() // false positive in K1, OK in K2
diff --git a/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt
new file mode 100644
index 0000000..1c06820
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt
@@ -0,0 +1,20 @@
+// FILE: A.java
+import java.util.List;
+
+public interface A<T> {
+ void foo(List<T> list);
+}
+
+// FILE: B.java
+import java.util.List;
+
+public abstract class B implements A<String> {
+ @Override
+ public final void foo(List list) {}
+}
+
+// FILE: C.java
+public class C extends B implements A<String> {}
+
+// FILE: Main.kt
+<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>X<!><!> : C() // false positive in K1, OK in K2
diff --git a/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.txt b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.txt
new file mode 100644
index 0000000..2111820
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.txt
@@ -0,0 +1,34 @@
+package
+
+public interface A</*0*/ T : kotlin.Any!> {
+ public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
+ public abstract fun foo(/*0*/ list: kotlin.collections.(Mutable)List<T!>!): kotlin.Unit
+ public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
+ public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
+}
+
+public abstract class B : A<kotlin.String!> {
+ public constructor B()
+ public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
+ @java.lang.Override public final override /*1*/ fun foo(/*0*/ list: kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!): kotlin.Unit
+ public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
+ public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
+}
+
+public open class C : B, A<kotlin.String!> {
+ public constructor C()
+ public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
+ @java.lang.Override public final override /*1*/ /*fake_override*/ fun foo(/*0*/ list: kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!): kotlin.Unit
+ public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ list: kotlin.collections.(Mutable)List<kotlin.String!>!): kotlin.Unit
+ public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
+ public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
+}
+
+public final class X : C {
+ public constructor X()
+ public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
+ @java.lang.Override public final override /*1*/ /*fake_override*/ fun foo(/*0*/ list: kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!): kotlin.Unit
+ public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ list: kotlin.collections.(Mutable)List<kotlin.String!>!): kotlin.Unit
+ 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 d4e2f1b..8817830 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
@@ -23443,6 +23443,12 @@
}
@Test
+ @TestMetadata("InheritingJavaClassWithRawTypeInOverrideSignature.kt")
+ public void testInheritingJavaClassWithRawTypeInOverrideSignature() throws Exception {
+ runTest("compiler/testData/diagnostics/tests/override/InheritingJavaClassWithRawTypeInOverrideSignature.kt");
+ }
+
+ @Test
@TestMetadata("InternalPotentialOverride.kt")
public void testInternalPotentialOverride() throws Exception {
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");