From 32a87836c2902ea5d57792b2d907e7ba0f22abac Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Tue, 10 Oct 2023 17:37:45 +0200 Subject: [PATCH] [Test] Improve test of SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS diagnostic Add case where explicit primary constructor is present in expect, so that SUPERTYPE_INITIALIZED_WITHOUT_PRIMARY_CONSTRUCTOR is not reported. ^KT-59979 --- .../headerClass/superClass.fir.kt | 6 ++++++ .../multiplatform/headerClass/superClass.kt | 6 ++++++ .../multiplatform/headerClass/superClass.txt | 21 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt index 9e3692862e9..86abe6ecf67 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.fir.kt @@ -9,14 +9,20 @@ expect class Foo : I, C, J expect class Bar : C() +expect class WithExplicitPrimaryConstructor() : C() + // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt actual class Foo : I, C(), J actual class Bar +actual class WithExplicitPrimaryConstructor : C() + // MODULE: m3-js()()(m1-common) // FILE: js.kt actual class Foo : I, J, C() actual class Bar : C() + +actual class WithExplicitPrimaryConstructor : C() diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.kt index 9e29bc1b084..ca9a5c75c66 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.kt @@ -9,14 +9,20 @@ expect class Foo : I, C, J expect class Bar : C() +expect class WithExplicitPrimaryConstructor() : C() + // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt actual class Foo : I, C(), J actual class Bar +actual class WithExplicitPrimaryConstructor : C() + // MODULE: m3-js()()(m1-common) // FILE: js.kt actual class Foo : I, J, C() actual class Bar : C() + +actual class WithExplicitPrimaryConstructor : C() diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.txt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.txt index ced9e92edcb..05d3ffaa176 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.txt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/superClass.txt @@ -32,6 +32,13 @@ public interface J { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } +public final expect class WithExplicitPrimaryConstructor : C { + public constructor WithExplicitPrimaryConstructor() + 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 +} + // -- Module: -- package @@ -68,6 +75,13 @@ public interface J { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } +public final actual class WithExplicitPrimaryConstructor : C { + public constructor WithExplicitPrimaryConstructor() + 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 +} + // -- Module: -- package @@ -104,3 +118,10 @@ public interface J { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } +public final actual class WithExplicitPrimaryConstructor : C { + public constructor WithExplicitPrimaryConstructor() + 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 +} +