JS: rework diagnostics names. Prohibit external inner classes (see KT-14027)

This commit is contained in:
Alexey Andreev
2016-11-28 17:09:47 +03:00
parent cf8161507c
commit ecb498717a
13 changed files with 104 additions and 52 deletions
@@ -1,10 +1,10 @@
class A
<!WRONG_MODIFIER_TARGET!>external fun A.foo(): Unit = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external fun A.foo(): Unit<!> = noImpl
<!WRONG_MODIFIER_TARGET!>external var A.bar: String
<!WRONG_EXTERNAL_DECLARATION!>external var A.bar: String<!>
get() = noImpl
set(value) = noImpl<!>
set(value) = noImpl
<!WRONG_MODIFIER_TARGET!>external val A.baz: String
get() = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external val A.baz: String<!>
get() = noImpl
@@ -0,0 +1,9 @@
external class C {
inner class <!WRONG_EXTERNAL_DECLARATION!>Inner<!>
}
external enum class E {
X;
inner class <!WRONG_EXTERNAL_DECLARATION!>Inner<!>
}
@@ -0,0 +1,39 @@
package
public external final class C {
public constructor C()
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 inner class Inner {
public constructor Inner()
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 external final enum class E : kotlin.Enum<E> {
enum entry X
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
public final inner class Inner {
public constructor Inner()
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
}
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
public final /*synthesized*/ fun values(): kotlin.Array<E>
}
@@ -1,17 +1,22 @@
// !DIAGNOSTICS: -NOTHING_TO_INLINE
// TODO: should we disable NOTHING_TO_INLINE in JS backend?
// TODO: uncomment declarations in case we decide to implement KT-14031
external class C {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!WRONG_EXTERNAL_DECLARATION!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!WRONG_EXTERNAL_DECLARATION!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var d: Float<!>
get
set
var e: Float
get
<!WRONG_EXTERNAL_DECLARATION!>private set<!>
private inline fun inline_a(): Int = 23
private inline val inline_prop: Int
@@ -19,13 +24,13 @@ external class C {
}
external object O {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!WRONG_EXTERNAL_DECLARATION!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!WRONG_EXTERNAL_DECLARATION!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var d: Float<!>
get
set
@@ -37,13 +42,13 @@ external object O {
external class Outer {
class Inner {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!WRONG_EXTERNAL_DECLARATION!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!WRONG_EXTERNAL_DECLARATION!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
<!WRONG_EXTERNAL_DECLARATION!>private var d: Float<!>
get
set
@@ -52,4 +57,6 @@ external class Outer {
private inline val inline_prop: Int
get() = 42
}
private class <!WRONG_EXTERNAL_DECLARATION!>PrivateInner<!>
}
@@ -5,6 +5,7 @@ public final class C {
private final val b: kotlin.String
private final var c: kotlin.Float
private final var d: kotlin.Float
public final var e: kotlin.Float
private final val inline_prop: kotlin.Int
private final fun a(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -44,4 +45,11 @@ public final class Outer {
private final inline fun inline_a(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
private final class PrivateInner {
public constructor PrivateInner()
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,19 +1,19 @@
<!WRONG_MODIFIER_TARGET!>external annotation class A<!>
external annotation class <!WRONG_EXTERNAL_DECLARATION!>A<!>
val x: Int
<!WRONG_MODIFIER_TARGET!>external get() = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
class B
val B.x: Int
<!WRONG_MODIFIER_TARGET!>external get() = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
class C {
val a: Int
<!WRONG_MODIFIER_TARGET!>external get() = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
}
external class D {
val a: Int
<!WRONG_MODIFIER_TARGET!>external get() = noImpl<!>
<!WRONG_EXTERNAL_DECLARATION!>external get()<!> = noImpl
}