JS: report errors on different external items:

* data classes
* val/var parameters of primary constructors
* enum entry with body
* anonymous `init {}` block in classes
This commit is contained in:
Alexey Andreev
2016-12-20 17:50:44 +03:00
parent 03682ee849
commit 79ba6a57d6
28 changed files with 179 additions and 28 deletions
@@ -0,0 +1,5 @@
external class A {
<!EXTERNAL_ANONYMOUS_INITIALIZER!>init {
noImpl
}<!>
}
@@ -0,0 +1,8 @@
package
public external final class A {
public constructor A()
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
}
@@ -0,0 +1,7 @@
external enum class E {
X,
Y <!EXTERNAL_ENUM_ENTRY_WITH_BODY!>{
fun foo()
}<!>,
Z <!EXTERNAL_ENUM_ENTRY_WITH_BODY!>{}<!>
}
@@ -0,0 +1,22 @@
package
public external final enum class E : kotlin.Enum<E> {
enum entry X
enum entry Y
enum entry Z
private constructor E()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
public final /*synthesized*/ fun values(): kotlin.Array<E>
}
@@ -0,0 +1 @@
external class C(x: Int, <!EXTERNAL_CLASS_CONSTRUCTOR_PROPERTY_PARAMETER!>val y: String<!>)
@@ -0,0 +1,9 @@
package
public external final class C {
public constructor C(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final val y: kotlin.String
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
}
@@ -1,4 +1,4 @@
external annotation class <!WRONG_EXTERNAL_DECLARATION!>A<!>
external annotation class <!WRONG_EXTERNAL_DECLARATION!>A(val x: Int)<!>
val x: Int
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
@@ -16,4 +16,6 @@ class C {
external class D {
val a: Int
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
}
}
external data class <!WRONG_EXTERNAL_DECLARATION!>E(val x: Int)<!>
@@ -4,7 +4,8 @@ public val x: kotlin.Int
public val B.x: kotlin.Int
public external final annotation class A : kotlin.Annotation {
public constructor A()
public constructor A(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
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
@@ -32,3 +33,13 @@ public external final class D {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public external final data class E {
public constructor E(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public final operator /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ...): E
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}