Prohibit super constructor call for 'expect' class

#KT-15490 Fixed
This commit is contained in:
Alexander Udalov
2017-09-19 15:05:28 +03:00
parent 8ae7343557
commit 2281ac842a
6 changed files with 35 additions and 3 deletions
@@ -4,12 +4,12 @@
expect enum class En<!EXPECTED_ENUM_CONSTRUCTOR!>(x: Int)<!> {
E1,
E2(42),
E2<!SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS!>(42)<!>,
;
<!EXPECTED_ENUM_CONSTRUCTOR!>constructor(s: String)<!>
}
expect enum class En2 {
E1<!NO_CONSTRUCTOR!>()<!>
E1<!SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS, NO_CONSTRUCTOR!>()<!>
}
@@ -8,10 +8,16 @@ interface J
expect class Foo : I, C, J
expect class Bar : C<!SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS, JS:SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS, JVM:SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS!>()<!>
// MODULE: m2-jvm(m1-common)
// FILE: jvm.kt
actual class Foo : I, C(), J
actual class <!ACTUAL_WITHOUT_EXPECT!>Bar<!>
// MODULE: m3-js(m1-common)
// FILE: js.kt
actual class Foo : I, J, C()
actual class Bar : C()
@@ -1,6 +1,13 @@
// -- Module: <m1-common> --
package
public final expect class Bar : C {
public constructor Bar()
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 open class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -31,6 +38,13 @@ public interface J {
// -- Module: <m2-jvm> --
package
public final actual class Bar {
public constructor Bar()
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 open class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -61,6 +75,13 @@ public interface J {
// -- Module: <m3-js> --
package
public final actual class Bar : C {
public constructor Bar()
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 open class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean