From 65164e95b52f2812789648875e636808f4d94594 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 21 Nov 2014 16:36:59 +0300 Subject: [PATCH] Test for overrides involving dynamic types --- .../tests/dynamicTypes/overrides.kt | 21 +++++++++ .../tests/dynamicTypes/overrides.txt | 44 +++++++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 6 +++ 3 files changed, 71 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/dynamicTypes/overrides.kt create mode 100644 compiler/testData/diagnostics/tests/dynamicTypes/overrides.txt diff --git a/compiler/testData/diagnostics/tests/dynamicTypes/overrides.kt b/compiler/testData/diagnostics/tests/dynamicTypes/overrides.kt new file mode 100644 index 00000000000..9a4353157d4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/dynamicTypes/overrides.kt @@ -0,0 +1,21 @@ +// MODULE[js]: m1 +// FILE: k.kt + +trait P +trait R + +trait A { + fun foo(p: P): R + fun dynamic(p: dynamic): dynamic +} + +trait B : A { + override fun foo(p: dynamic): dynamic + override fun dynamic(p: P): R +} + +trait A1 { + fun foo(p: dynamic): dynamic +} + +trait C : A, A1 \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/dynamicTypes/overrides.txt b/compiler/testData/diagnostics/tests/dynamicTypes/overrides.txt new file mode 100644 index 00000000000..5ac77200423 --- /dev/null +++ b/compiler/testData/diagnostics/tests/dynamicTypes/overrides.txt @@ -0,0 +1,44 @@ +package + +internal trait A { + internal abstract fun dynamic(/*0*/ p: dynamic): dynamic + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal abstract fun foo(/*0*/ p: P): R + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal trait A1 { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal abstract fun foo(/*0*/ p: dynamic): dynamic + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal trait B : A { + internal abstract override /*1*/ fun dynamic(/*0*/ p: P): R + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal abstract override /*1*/ fun foo(/*0*/ p: dynamic): dynamic + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal trait C : A, A1 { + internal abstract override /*1*/ /*fake_override*/ fun dynamic(/*0*/ p: dynamic): dynamic + public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p: dynamic): dynamic + public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal trait P { + 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 +} + +internal trait R { + 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/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 6ed1bb5edd6..cbf8e2306eb 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -3800,6 +3800,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("overrides.kt") + public void testOverrides() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/overrides.kt"); + doTest(fileName); + } + @TestMetadata("smartCast.kt") public void testSmartCast() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/smartCast.kt");