[Wasm] Move external RTT checkers to web.common and reuse in Wasm
#KT-56849
This commit is contained in:
committed by
Space Team
parent
d219d5380b
commit
cf3b293072
+8
@@ -0,0 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// DIAGNOSTICS: +UNCHECKED_CAST_TO_EXTERNAL_INTERFACE
|
||||
|
||||
external interface I
|
||||
|
||||
fun box(a: Any, b: Any): Pair<I, I?> {
|
||||
return Pair(<!UNCHECKED_CAST_TO_EXTERNAL_INTERFACE!>a as I<!>, <!UNCHECKED_CAST_TO_EXTERNAL_INTERFACE!>b as? I<!>)
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// FIR_IDENTICAL
|
||||
external interface I
|
||||
|
||||
fun box(a: Any, b: Any): Boolean {
|
||||
return <!CANNOT_CHECK_FOR_EXTERNAL_INTERFACE!>a is I<!> && <!CANNOT_CHECK_FOR_EXTERNAL_INTERFACE!>b !is I<!>
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline fun <reified T> foo(x: T) {
|
||||
println(x)
|
||||
}
|
||||
|
||||
external interface I
|
||||
|
||||
external class C : I
|
||||
|
||||
operator inline fun <reified T> C.plus(other: T) = this
|
||||
|
||||
fun bar() {
|
||||
foo(C())
|
||||
|
||||
val c: I = C()
|
||||
<!EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENT!>foo(c)<!>
|
||||
foo<<!EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENT!>I<!>>(C())
|
||||
|
||||
<!EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENT!>C() + c<!>
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
external interface I
|
||||
|
||||
typealias TA = I
|
||||
fun box() {
|
||||
println(<!EXTERNAL_INTERFACE_AS_CLASS_LITERAL!>I::class<!>)
|
||||
println(<!EXTERNAL_INTERFACE_AS_CLASS_LITERAL!>TA::class<!>)
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// FIR_IDENTICAL
|
||||
external interface I
|
||||
|
||||
external interface J
|
||||
|
||||
fun box(a: Any) = when (a) {
|
||||
<!CANNOT_CHECK_FOR_EXTERNAL_INTERFACE!>is I<!> -> 0
|
||||
<!CANNOT_CHECK_FOR_EXTERNAL_INTERFACE!>!is J<!> -> 1
|
||||
else -> 2
|
||||
}
|
||||
Reference in New Issue
Block a user