JS: prohibit private members of external classes (see KT-14029)

This commit is contained in:
Alexey Andreev
2016-11-28 16:26:50 +03:00
parent 212b9f37b3
commit cf8161507c
6 changed files with 124 additions and 4 deletions
@@ -0,0 +1,55 @@
// !DIAGNOSTICS: -NOTHING_TO_INLINE
// TODO: should we disable NOTHING_TO_INLINE in JS backend?
external class C {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
get
set
private inline fun inline_a(): Int = 23
private inline val inline_prop: Int
get() = 42
}
external object O {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
get
set
private inline fun inline_a(): Int = 23
private inline val inline_prop: Int
get() = 42
}
external class Outer {
class Inner {
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private fun a(): Int<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private val b: String<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var c: Float<!>
<!EXTERNAL_CLASS_PRIVATE_MEMBER!>private var d: Float<!>
get
set
private inline fun inline_a(): Int = 23
private inline val inline_prop: Int
get() = 42
}
}
@@ -0,0 +1,47 @@
package
public final class C {
public constructor C()
private final val b: kotlin.String
private final var c: kotlin.Float
private final var d: 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
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
private final inline fun inline_a(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object O {
private constructor O()
private final val b: kotlin.String
private final var c: kotlin.Float
private final var d: 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
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
private final inline fun inline_a(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Outer {
public constructor Outer()
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 Inner {
public constructor Inner()
private final val b: kotlin.String
private final var c: kotlin.Float
private final var d: 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
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
private final inline fun inline_a(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}