Drop deprecated jsClass top level and extension functions
Introduce internal toplevel jsClass in js-ir source set instead. It is needed for JS-IR backend.
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
|
||||
// EXPECTED_REACHABLE_NODES: 1322
|
||||
package foo
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun box(): String {
|
||||
check(jsClass<A>(), A().jsClass)
|
||||
check(jsClass<B>(), B().jsClass)
|
||||
check(jsClass<O>(), O.jsClass)
|
||||
assertNotEquals(null, jsClass<I>())
|
||||
check(jsClass<E>(), E.X.jsClass)
|
||||
check(jsClass<E>(), E.Y.jsClass, shouldBeEqual = false)
|
||||
// TODO uncomment after KT-13338 is fixed
|
||||
// check(jsClass<E>(), E.Z.jsClass)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
|
||||
// EXPECTED_REACHABLE_NODES: 1328
|
||||
package foo
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun testWithInstance() {
|
||||
assertEquals("A", A().jsClass.name)
|
||||
assertEquals("B", B().jsClass.name)
|
||||
assertEquals("O", O.jsClass.name)
|
||||
assertEquals("E", E.X.jsClass.name)
|
||||
assertEquals("E\$Y", E.Y.jsClass.name)
|
||||
// TODO uncomment after KT-13338 is fixed
|
||||
// assertEquals("E", E.Z.jsClass.name)
|
||||
assertEquals("R", R().jsClass.name)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun testWithClassReference() {
|
||||
assertEquals("A", jsClass<A>().name)
|
||||
assertEquals("B", jsClass<B>().name)
|
||||
assertEquals("O", jsClass<O>().name)
|
||||
assertEquals("I", jsClass<I>().name)
|
||||
assertEquals("E", jsClass<E>().name)
|
||||
assertEquals("R", jsClass<R>().name)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
testWithInstance()
|
||||
testWithClassReference()
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
|
||||
// EXPECTED_REACHABLE_NODES: 1318
|
||||
package foo
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
inline fun <reified T : Any> foo(): JsClass<T> {
|
||||
val T = 1
|
||||
return jsClass<T>()
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun box(): String {
|
||||
check(jsClass<A>(), foo<A>())
|
||||
check(jsClass<B>(), foo<B>())
|
||||
check(jsClass<O>(), foo<O>())
|
||||
check(jsClass<E>(), foo<E>())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
|
||||
// EXPECTED_REACHABLE_NODES: 1320
|
||||
package foo
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
inline fun <reified T : Any> foo(): () -> JsClass<T> {
|
||||
val T = 1
|
||||
return { jsClass<T>() }
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun box(): String {
|
||||
check(jsClass<A>(), foo<A>()())
|
||||
check(jsClass<B>(), foo<B>()())
|
||||
check(jsClass<O>(), foo<O>()())
|
||||
check(jsClass<E>(), foo<E>()())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
|
||||
// EXPECTED_REACHABLE_NODES: 1331
|
||||
package foo
|
||||
|
||||
class undefined
|
||||
|
||||
class Outer {
|
||||
class Nested
|
||||
|
||||
inner class Inner
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun testWithInstance() {
|
||||
assertEquals("A", A().jsClass.simpleName)
|
||||
assertEquals("B", B().jsClass.simpleName)
|
||||
assertEquals("O", O.jsClass.simpleName)
|
||||
assertEquals("E", E.X.jsClass.simpleName)
|
||||
assertEquals("Y", E.Y.jsClass.simpleName)
|
||||
// TODO uncomment after KT-13338 is fixed
|
||||
// assertEquals("E", E.Z.jsClass.simpleName)
|
||||
assertEquals("undefined", undefined().jsClass.simpleName)
|
||||
assertEquals("Nested", Outer.Nested().jsClass.simpleName)
|
||||
assertEquals("Inner", Outer().Inner().jsClass.simpleName)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
fun testWithClassReference() {
|
||||
assertEquals("A", jsClass<A>().simpleName)
|
||||
assertEquals("B", jsClass<B>().simpleName)
|
||||
assertEquals("O", jsClass<O>().simpleName)
|
||||
assertEquals("I", jsClass<I>().simpleName)
|
||||
assertEquals("E", jsClass<E>().simpleName)
|
||||
assertEquals("undefined", jsClass<undefined>().simpleName)
|
||||
assertEquals("Nested", jsClass<Outer.Nested>().simpleName)
|
||||
assertEquals("Inner", jsClass<Outer.Inner>().simpleName)
|
||||
}
|
||||
|
||||
val JsClass<*>.simpleName: String
|
||||
get() {
|
||||
val dynClass: dynamic = this
|
||||
return dynClass.`$metadata$`.simpleName as? String ?: ""
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
testWithInstance()
|
||||
testWithClassReference()
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user