diff --git a/compiler/testData/diagnostics/tests/generics/kt5508.kt b/compiler/testData/diagnostics/tests/generics/kt5508.kt new file mode 100644 index 00000000000..ff91db9e69b --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/kt5508.kt @@ -0,0 +1,14 @@ +// KT-5508 Stackoverflow in type substitution + +abstract class A { + public abstract fun Foo(x: T) + + public inner abstract class B : A>() { + public inner class C : B>() + { + override fun Foo(x: B>) { + throw UnsupportedOperationException() + } + } + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/kt5508.txt b/compiler/testData/diagnostics/tests/generics/kt5508.txt new file mode 100644 index 00000000000..9ae815c9587 --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/kt5508.txt @@ -0,0 +1,25 @@ +package + +public abstract class A { + public constructor A() + public abstract fun Foo(/*0*/ x: T): kotlin.Unit + 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 + + public abstract inner class B : A> { + public constructor B() + public abstract override /*1*/ /*fake_override*/ fun Foo(/*0*/ x: A.B): kotlin.Unit + 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 + + public final inner class C : A.B> { + public constructor C() + public open override /*1*/ fun Foo(/*0*/ x: A.B>): kotlin.Unit + 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/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 3184c8c62c0..8113e8add9d 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -6546,6 +6546,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("kt5508.kt") + public void testKt5508() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/kt5508.kt"); + doTest(fileName); + } + @TestMetadata("Projections.kt") public void testProjections() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/Projections.kt");