From d3721872b2b4dacbc296871e12ea35113e83d21d Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 8 Jun 2016 16:46:14 +0300 Subject: [PATCH] Tests for type alias diagnostics: type parameter bound violation in type alias constructor --- .../boundViolationInTypeAliasConstructor.kt | 17 ++++++++++++ .../boundViolationInTypeAliasConstructor.txt | 27 +++++++++++++++++++ .../checkers/DiagnosticsTestGenerated.java | 6 +++++ 3 files changed, 50 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.kt create mode 100644 compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.txt diff --git a/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.kt b/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.kt new file mode 100644 index 00000000000..0c8f9522de4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.kt @@ -0,0 +1,17 @@ +class Num(val x: T) + +typealias N = Num +typealias N2 = N + +val x1 = Num<String>("") +val x2 = N<String>("") +val x3 = N2<String>("") + +class TColl> + +typealias TC = TColl +typealias TC2 = TC + +val y1 = TCollAny>() +val y2 = TCAny>() +val y3 = TC2Any>() diff --git a/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.txt b/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.txt new file mode 100644 index 00000000000..8efe2a9c180 --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.txt @@ -0,0 +1,27 @@ +package + +public typealias N = Num +public typealias N2 = N +public typealias TC = TColl +public typealias TC2 = TC +public val x1: Num +public val x2: Num +public val x3: Num +public val y1: TColl +public val y2: TColl +public val y3: TColl + +public final class Num { + public constructor Num(/*0*/ x: T) + public final val x: T + 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 class TColl> { + public constructor TColl>() + 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/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index e3ae923d5ec..0e0f1ab72e0 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -19425,6 +19425,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/typealias"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("boundViolationInTypeAliasConstructor.kt") + public void testBoundViolationInTypeAliasConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/boundViolationInTypeAliasConstructor.kt"); + doTest(fileName); + } + @TestMetadata("boundsViolationInDeepTypeAliasExpansion.kt") public void testBoundsViolationInDeepTypeAliasExpansion() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/boundsViolationInDeepTypeAliasExpansion.kt");