[JS IR BE] Update test data
This commit is contained in:
committed by
Roman Artemev
parent
17d71f1e46
commit
6ac4fd2e5f
Vendored
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
// http://youtrack.jetbrains.com/issue/KT-5594
|
||||
// JS: compiler crashes
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1111
|
||||
package foo
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1115
|
||||
// http://youtrack.jetbrains.com/issue/KT-5320
|
||||
// KT-5320 Invalid JS code generated for typecast inside ternary operator
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
open class A
|
||||
open class B : A() // B
|
||||
open class C
|
||||
open class D : B() // B
|
||||
class E : D() // B
|
||||
class F : C()
|
||||
|
||||
val dyn: dynamic = js("({})")
|
||||
|
||||
fun nullToNull(aa: Any?) = aa as? B?
|
||||
fun notNullToNull(aa: Any) = aa as? B?
|
||||
fun nullToNotNull(aa: Any?) = aa as? B
|
||||
fun notNullToNotNull(aa: Any) = aa as? B
|
||||
|
||||
fun NBtoNB(bb: B?) = bb as? B?
|
||||
fun dtoNB(dd: dynamic) = dd as? B?
|
||||
|
||||
val an = Any()
|
||||
|
||||
val a = A()
|
||||
val b = B()
|
||||
val c = C()
|
||||
val d = D()
|
||||
val e = E()
|
||||
val f = F()
|
||||
|
||||
fun fff() {}
|
||||
|
||||
val func = ::fff
|
||||
val bool = true
|
||||
val num = 42
|
||||
val str = "String"
|
||||
|
||||
fun testClassCastN2N(): String { // ? as? ?
|
||||
assertEquals(null, nullToNull(null), "null as? B?")
|
||||
assertEquals(null, nullToNull(a), "A? as? B?")
|
||||
assertEquals(b, NBtoNB(b), "b? as? B?")
|
||||
assertEquals(null, NBtoNB(null), "null() as? B?")
|
||||
assertEquals(b, nullToNull(b), "B? as? B?")
|
||||
assertEquals(null, nullToNull(c), "C? as? B?")
|
||||
assertEquals(d, nullToNull(d), "D? as? B?")
|
||||
assertEquals(e, nullToNull(e), "E? as? B?")
|
||||
assertEquals(null, nullToNull(f), "F? as? B?")
|
||||
assertEquals(null, nullToNull(an), "Any? as? B?")
|
||||
assertEquals(null, dtoNB(null), "null dynamic as? B?")
|
||||
|
||||
assertEquals(null, nullToNull(func), "Function? is B?")
|
||||
assertEquals(null, nullToNull(bool), "Boolean? is B?")
|
||||
assertEquals(null, nullToNull(num), "Number? is B?")
|
||||
assertEquals(null, nullToNull(str), "String? is B?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun NBtoB(bb: B?) = bb as? B
|
||||
|
||||
fun testClassCastNN2N(): String { // ! as? ?
|
||||
assertEquals(null, notNullToNull(a), "A as? B?")
|
||||
assertEquals(b, NBtoB(b), "b as? B?")
|
||||
assertEquals(null, NBtoB(null), "null() as? B?")
|
||||
assertEquals(b, notNullToNull(b), "B as? B?")
|
||||
assertEquals(null, notNullToNull(c), "C as? B?")
|
||||
assertEquals(d, notNullToNull(d), "D as? B?")
|
||||
assertEquals(e, notNullToNull(e), "E as? B?")
|
||||
assertEquals(null, notNullToNull(f), "F as? B?")
|
||||
assertEquals(null, notNullToNull(an), "Any as? B?")
|
||||
assertEquals(null, dtoNB(dyn), "dynamic as? B?")
|
||||
|
||||
assertEquals(null, notNullToNull(func), "Function is B?")
|
||||
assertEquals(null, notNullToNull(bool), "Boolean is B?")
|
||||
assertEquals(null, notNullToNull(num), "Number is B?")
|
||||
assertEquals(null, notNullToNull(str), "String is B?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun BtoNB(bb: B) = bb as? B?
|
||||
|
||||
fun anyNToAnyNN(aa: Any?) = aa as? Any
|
||||
|
||||
fun dtoB(dd: dynamic) = dd as? B
|
||||
|
||||
fun testClassCastN2NN(): String { // ? as? !
|
||||
assertEquals(null, nullToNotNull(null), "null as? B")
|
||||
assertEquals(null, nullToNotNull(a), "A? as? B")
|
||||
assertEquals(b, BtoNB(b), "b as? B?")
|
||||
assertEquals(b, nullToNotNull(b), "B? as? B")
|
||||
assertEquals(null, nullToNotNull(c), "C? as? B")
|
||||
assertEquals(d, nullToNotNull(d), "D? as? B")
|
||||
assertEquals(e, nullToNotNull(e), "E? as? B")
|
||||
assertEquals(null, nullToNotNull(f), "F? as? B")
|
||||
assertEquals(null, nullToNotNull(Any()), "Any? as? B")
|
||||
assertEquals(null, dtoB(null), "null dynamic as? B")
|
||||
assertEquals(an, anyNToAnyNN(an), "Any? as? Any")
|
||||
assertEquals(null, anyNToAnyNN(null), "null any as? Any")
|
||||
|
||||
assertEquals(null, nullToNotNull(func), "Function? is B")
|
||||
assertEquals(null, nullToNotNull(bool), "Boolean? is B")
|
||||
assertEquals(null, nullToNotNull(num), "Number? is B")
|
||||
assertEquals(null, nullToNotNull(str), "String? is B")
|
||||
|
||||
assertEquals(func, anyNToAnyNN(func), "Function? is Any")
|
||||
assertEquals(bool, anyNToAnyNN(bool), "Boolean? is Any")
|
||||
assertEquals(num, anyNToAnyNN(num), "Number? is Any")
|
||||
assertEquals(str, anyNToAnyNN(str), "String? is Any")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testClassCastNN2NN(): String { // ! as? !
|
||||
assertEquals(null, notNullToNotNull(a), "A as? B")
|
||||
assertEquals(b, notNullToNotNull(b), "B as? B")
|
||||
assertEquals(null, notNullToNotNull(c), "C as? B")
|
||||
assertEquals(d, notNullToNotNull(d), "D as? B")
|
||||
assertEquals(e, notNullToNotNull(e), "E as? B")
|
||||
assertEquals(null, notNullToNotNull(f), "F as? B")
|
||||
assertEquals(null, notNullToNotNull(an), "Any as? B")
|
||||
assertEquals(null, dtoB(dyn), "dynamic as? B")
|
||||
|
||||
assertEquals(null, notNullToNotNull(func), "Function is II")
|
||||
assertEquals(null, notNullToNotNull(bool), "Boolean is II")
|
||||
assertEquals(null, notNullToNotNull(num), "Number is II")
|
||||
assertEquals(null, notNullToNotNull(str), "String is II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testClassCast() {
|
||||
assertEquals("OK", testClassCastN2N())
|
||||
assertEquals("OK", testClassCastN2NN())
|
||||
assertEquals("OK", testClassCastNN2N())
|
||||
assertEquals("OK", testClassCastNN2NN())
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
testClassCast()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,423 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
interface IA
|
||||
interface IB : IA // B
|
||||
interface IC : IA, IB // B, C
|
||||
interface ID : IB // B
|
||||
interface IE // E
|
||||
interface IF : IB, IE // B, E
|
||||
interface IG : ID // B
|
||||
interface IH
|
||||
interface II : IH // I
|
||||
interface IJ : IF, II // B, E, I
|
||||
interface IK : IC // B, C
|
||||
interface IL: IK, IF, IJ // B, C, E, I
|
||||
|
||||
|
||||
open class A //
|
||||
open class AIA: A(), IA //
|
||||
open class AIB: A(), IB // B
|
||||
open class AIE: A(), IE // E
|
||||
open class AIF: A(), IF // B, E
|
||||
open class AIJ: A(), IJ // B, E, I
|
||||
open class BAIA: AIA(), IC // B, C
|
||||
open class BAIAIF: BAIA(), IF // B, C, E
|
||||
open class BAIAIJ: BAIA(), IJ // B, C, E, I
|
||||
open class C //
|
||||
open class CIB: C(), IB // B
|
||||
open class D: BAIAIF(), IG // B, C, E
|
||||
open class E: A(), IF // B, E
|
||||
open class F: AIB(), IK // B, C
|
||||
open class G: E(), IL, IE // B, C, E, I
|
||||
|
||||
val an = Any()
|
||||
val a = A()
|
||||
val aia = AIA()
|
||||
val aib = AIB()
|
||||
val aie = AIE()
|
||||
val aif = AIF()
|
||||
val aij = AIJ()
|
||||
val baia = BAIA()
|
||||
val baiaif = BAIAIF()
|
||||
val baiaij = BAIAIJ()
|
||||
val c = C()
|
||||
val cib = CIB()
|
||||
val d = D()
|
||||
val e = E()
|
||||
val f = F()
|
||||
val g = G()
|
||||
|
||||
var dyn = js("({})")
|
||||
|
||||
fun dToNB(dd: dynamic) = dd as? IB?
|
||||
fun dToB(dd: dynamic) = dd as? IB
|
||||
|
||||
fun NBtoB(bb: IB?) = bb as? IB
|
||||
fun BtoNB(bb: IB) = bb as? IB?
|
||||
|
||||
fun nullToNullB(aa: Any?) = aa as? IB?
|
||||
fun notNullToNullB(aa: Any) = aa as? IB?
|
||||
fun nullToNotNullB(aa: Any?) = aa as? IB
|
||||
fun notNullToNotNullB(aa: Any) = aa as? IB
|
||||
|
||||
fun nullToNullC(aa: Any?) = aa as? IC?
|
||||
fun notNullToNullC(aa: Any) = aa as? IC?
|
||||
fun nullToNotNullC(aa: Any?) = aa as? IC
|
||||
fun notNullToNotNullC(aa: Any) = aa as? IC
|
||||
|
||||
fun nullToNullE(aa: Any?) = aa as? IE?
|
||||
fun notNullToNullE(aa: Any) = aa as? IE?
|
||||
fun nullToNotNullE(aa: Any?) = aa as? IE
|
||||
fun notNullToNotNullE(aa: Any) = aa as? IE
|
||||
|
||||
fun nullToNullI(aa: Any?) = aa as? II?
|
||||
fun notNullToNullI(aa: Any) = aa as? II?
|
||||
fun nullToNotNullI(aa: Any?) = aa as? II
|
||||
fun notNullToNotNullI(aa: Any) = aa as? II
|
||||
|
||||
fun testInterfaceCastN2N(): String {
|
||||
assertEquals(null, nullToNullB(null), "null as? IB?")
|
||||
assertEquals(null, nullToNullB(a), "A? as? IB?")
|
||||
assertEquals(null, nullToNullB(aia), "AIA? as? IB?")
|
||||
assertEquals(aib, nullToNullB(aib), "AIB? as? IB?")
|
||||
assertEquals(null, nullToNullB(aie), "AIE? as? IB?")
|
||||
assertEquals(aif, nullToNullB(aif), "AIF? as? IB?")
|
||||
assertEquals(aij, nullToNullB(aij), "AIJ? as? IB?")
|
||||
assertEquals(baia, nullToNullB(baia), "BAIA? as? IB?")
|
||||
assertEquals(baiaif, nullToNullB(baiaif), "BAIAIF? as? IB?")
|
||||
assertEquals(baiaij, nullToNullB(baiaij), "BAIAIJ? as? IB?")
|
||||
assertEquals(null, nullToNullB(c), "C? as? IB?")
|
||||
assertEquals(cib, nullToNullB(cib), "CIB? as? IB?")
|
||||
assertEquals(d, nullToNullB(d), "D? as? IB?")
|
||||
assertEquals(e, nullToNullB(e), "E? as? IB?")
|
||||
assertEquals(f, nullToNullB(f), "F? as? IB?")
|
||||
assertEquals(g, nullToNullB(g), "G? as? IB?")
|
||||
assertEquals(null, nullToNullB(an), "Any? as? IB?")
|
||||
|
||||
assertEquals(null, nullToNullC(null), "null as? IC?")
|
||||
assertEquals(null, nullToNullC(a), "A? as? IC?")
|
||||
assertEquals(null, nullToNullC(aia), "AIA? as? IC?")
|
||||
assertEquals(null, nullToNullC(aib), "AIB? as? IC?")
|
||||
assertEquals(null, nullToNullC(aie), "AIE? as? IC?")
|
||||
assertEquals(null, nullToNullC(aif), "AIF? as? IC?")
|
||||
assertEquals(null, nullToNullC(aij), "AIJ? as? IC?")
|
||||
assertEquals(baia, nullToNullC(baia), "BAIA? as? IC?")
|
||||
assertEquals(baiaif, nullToNullC(baiaif), "BAIAIF? as? IC?")
|
||||
assertEquals(baiaij, nullToNullC(baiaij), "BAIAIJ? as? IC?")
|
||||
assertEquals(null, nullToNullC(c), "C? as? IC?")
|
||||
assertEquals(null, nullToNullC(cib), "CIB? as? IC?")
|
||||
assertEquals(d, nullToNullC(d), "D? as? IC?")
|
||||
assertEquals(null, nullToNullC(e), "E? as? IC?")
|
||||
assertEquals(f, nullToNullC(f), "F? as? IC?")
|
||||
assertEquals(g, nullToNullC(g), "G? as? IC?")
|
||||
assertEquals(null, nullToNullC(an), "Any? as? IC?")
|
||||
|
||||
assertEquals(null, nullToNullE(null), "null as? IE?")
|
||||
assertEquals(null, nullToNullE(a), "A? as? IE?")
|
||||
assertEquals(null, nullToNullE(aia), "AIA? as? IE?")
|
||||
assertEquals(null, nullToNullE(aib), "AIB? as? IE?")
|
||||
assertEquals(aie, nullToNullE(aie), "AIE? as? IE?")
|
||||
assertEquals(aif, nullToNullE(aif), "AIF? as? IE?")
|
||||
assertEquals(aij, nullToNullE(aij), "AIJ? as? IE?")
|
||||
assertEquals(null, nullToNullE(baia), "BAIA? as? IE?")
|
||||
assertEquals(baiaif, nullToNullE(baiaif), "BAIAIF? as? IE?")
|
||||
assertEquals(baiaij, nullToNullE(baiaij), "BAIAIJ? as? IE?")
|
||||
assertEquals(null, nullToNullE(c), "C? as? IE?")
|
||||
assertEquals(null, nullToNullE(cib), "CIB? as? IE?")
|
||||
assertEquals(d, nullToNullE(d), "D? as? IE?")
|
||||
assertEquals(e, nullToNullE(e), "E? as? IE?")
|
||||
assertEquals(null, nullToNullE(f), "F? as? IE?")
|
||||
assertEquals(g, nullToNullE(g), "G? as? IE?")
|
||||
assertEquals(null, nullToNullE(an), "Any? as? IE?")
|
||||
|
||||
assertEquals(null, nullToNullI(null), "null as? II?")
|
||||
assertEquals(null, nullToNullI(a), "A? as? II?")
|
||||
assertEquals(null, nullToNullI(aia), "AIA? as? II?")
|
||||
assertEquals(null, nullToNullI(aib), "AIB? as? II?")
|
||||
assertEquals(null, nullToNullI(aie), "AIE? as? II?")
|
||||
assertEquals(null, nullToNullI(aif), "AIF? as? II?")
|
||||
assertEquals(aij, nullToNullI(aij), "AIJ? as? II?")
|
||||
assertEquals(null, nullToNullI(baia), "BAIA? as? II?")
|
||||
assertEquals(null, nullToNullI(baiaif), "BAIAIF? as? II?")
|
||||
assertEquals(baiaij, nullToNullI(baiaij), "BAIAIJ? as? II?")
|
||||
assertEquals(null, nullToNullI(c), "C? as? II?")
|
||||
assertEquals(null, nullToNullI(cib), "CIB? as? II?")
|
||||
assertEquals(null, nullToNullI(d), "D? as? II?")
|
||||
assertEquals(null, nullToNullI(e), "E? as? II?")
|
||||
assertEquals(null, nullToNullI(f), "F? as? II?")
|
||||
assertEquals(g, nullToNullI(g), "G? as? II?")
|
||||
assertEquals(null, nullToNullI(an), "Any? as? II?")
|
||||
|
||||
assertEquals(null, dToNB(null), "null dynamic as? IB?")
|
||||
|
||||
assertEquals(null, nullToNullI({}), "Function? as? II?")
|
||||
assertEquals(null, nullToNullI(true), "Boolean? as? II?")
|
||||
assertEquals(null, nullToNullI(42), "Number? as? II?")
|
||||
assertEquals(null, nullToNullI("String"), "String? as? II?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastN2NN(): String {
|
||||
|
||||
assertEquals(null, nullToNotNullB(null), "null as? IB")
|
||||
assertEquals(null, nullToNotNullB(a), "A? as? IB")
|
||||
assertEquals(null, nullToNotNullB(aia), "AIA? as? IB")
|
||||
assertEquals(aib, nullToNotNullB(aib), "AIB? as? IB")
|
||||
assertEquals(null, nullToNotNullB(aie), "AIE? as? IB")
|
||||
assertEquals(aif, nullToNotNullB(aif), "AIF? as? IB")
|
||||
assertEquals(aij, nullToNotNullB(aij), "AIJ? as? IB")
|
||||
assertEquals(baia, nullToNotNullB(baia), "BAIA? as? IB")
|
||||
assertEquals(baiaif, nullToNotNullB(baiaif), "BAIAIF? as? IB")
|
||||
assertEquals(baiaij, nullToNotNullB(baiaij), "BAIAIJ? as? IB")
|
||||
assertEquals(null, nullToNotNullB(c), "C? as? IB")
|
||||
assertEquals(cib, nullToNotNullB(cib), "CIB? as? IB")
|
||||
assertEquals(d, nullToNotNullB(d), "D? as? IB")
|
||||
assertEquals(e, nullToNotNullB(e), "E? as? IB")
|
||||
assertEquals(f, nullToNotNullB(f), "F? as? IB")
|
||||
assertEquals(g, nullToNotNullB(g), "G? as? IB")
|
||||
assertEquals(null, nullToNotNullB(an), "Any? as? IB")
|
||||
|
||||
assertEquals(null, nullToNotNullC(null), "null as? IC")
|
||||
assertEquals(null, nullToNotNullC(a), "A? as? IC")
|
||||
assertEquals(null, nullToNotNullC(aia), "AIA? as? IC")
|
||||
assertEquals(null, nullToNotNullC(aib), "AIB? as? IC")
|
||||
assertEquals(null, nullToNotNullC(aie), "AIE? as? IC")
|
||||
assertEquals(null, nullToNotNullC(aif), "AIF? as? IC")
|
||||
assertEquals(null, nullToNotNullC(aij), "AIJ? as? IC")
|
||||
assertEquals(baia, nullToNotNullC(baia), "BAIA? as? IC")
|
||||
assertEquals(baiaif, nullToNotNullC(baiaif), "BAIAIF? as? IC")
|
||||
assertEquals(baiaij, nullToNotNullC(baiaij), "BAIAIJ? as? IC")
|
||||
assertEquals(null, nullToNotNullC(c), "C? as? IC")
|
||||
assertEquals(null, nullToNotNullC(cib), "CIB? as? IC")
|
||||
assertEquals(d, nullToNotNullC(d), "D? as? IC")
|
||||
assertEquals(null, nullToNotNullC(e), "E? as? IC")
|
||||
assertEquals(f, nullToNotNullC(f), "F? as? IC")
|
||||
assertEquals(g, nullToNotNullC(g), "G? as? IC")
|
||||
assertEquals(null, nullToNotNullC(an), "Any? as? IC")
|
||||
|
||||
assertEquals(null, nullToNotNullE(null), "null as? IE")
|
||||
assertEquals(null, nullToNotNullE(a), "A? as? IE")
|
||||
assertEquals(null, nullToNotNullE(aia), "AIA? as? IE")
|
||||
assertEquals(null, nullToNotNullE(aib), "AIB? as? IE")
|
||||
assertEquals(aie, nullToNotNullE(aie), "AIE? as? IE")
|
||||
assertEquals(aif, nullToNotNullE(aif), "AIF? as? IE")
|
||||
assertEquals(aij, nullToNotNullE(aij), "AIJ? as? IE")
|
||||
assertEquals(null, nullToNotNullE(baia), "BAIA? as? IE")
|
||||
assertEquals(baiaif, nullToNotNullE(baiaif), "BAIAIF? as? IE")
|
||||
assertEquals(baiaij, nullToNotNullE(baiaij), "BAIAIJ? as? IE")
|
||||
assertEquals(null, nullToNotNullE(c), "C? as? IE")
|
||||
assertEquals(null, nullToNotNullE(cib), "CIB? as? IE")
|
||||
assertEquals(d, nullToNotNullE(d), "D? as? IE")
|
||||
assertEquals(e, nullToNotNullE(e), "E? as? IE")
|
||||
assertEquals(null, nullToNotNullE(f), "F? as? IE")
|
||||
assertEquals(g, nullToNotNullE(g), "G? as? IE")
|
||||
assertEquals(null, nullToNotNullE(an), "Any? as? IE")
|
||||
|
||||
assertEquals(null, nullToNotNullI(null), "null as? II")
|
||||
assertEquals(null, nullToNotNullI(a), "A? as? II")
|
||||
assertEquals(null, nullToNotNullI(aia), "AIA? as? II")
|
||||
assertEquals(null, nullToNotNullI(aib), "AIB? as? II")
|
||||
assertEquals(null, nullToNotNullI(aie), "AIE? as? II")
|
||||
assertEquals(null, nullToNotNullI(aif), "AIF? as? II")
|
||||
assertEquals(aij, nullToNotNullI(aij), "AIJ? as? II")
|
||||
assertEquals(null, nullToNotNullI(baia), "BAIA? as? II")
|
||||
assertEquals(null, nullToNotNullI(baiaif), "BAIAIF? as? II")
|
||||
assertEquals(baiaij, nullToNotNullI(baiaij), "BAIAIJ? as? II")
|
||||
assertEquals(null, nullToNotNullI(c), "C? as? II")
|
||||
assertEquals(null, nullToNotNullI(cib), "CIB? as? II")
|
||||
assertEquals(null, nullToNotNullI(d), "D? as? II")
|
||||
assertEquals(null, nullToNotNullI(e), "E? as? II")
|
||||
assertEquals(null, nullToNotNullI(f), "F? as? II")
|
||||
assertEquals(g, nullToNotNullI(g), "G? as? II")
|
||||
assertEquals(null, nullToNotNullI(an), "Any? as? II")
|
||||
|
||||
assertEquals(null, dToB(null), "null dynamic as? IB")
|
||||
|
||||
assertEquals(aib, NBtoB(aib), "IB()? as? IB")
|
||||
assertEquals(null, NBtoB(null), "null IB as? IB")
|
||||
|
||||
assertEquals(null, nullToNotNullI({}), "Function? as? II")
|
||||
assertEquals(null, nullToNotNullI(true), "Boolean? as? II")
|
||||
assertEquals(null, nullToNotNullI(42), "Number? as? II")
|
||||
assertEquals(null, nullToNotNullI("String"), "String? as? II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastNN2N(): String {
|
||||
assertEquals(null, notNullToNullB(a), "A as? IB?")
|
||||
assertEquals(null, notNullToNullB(aia), "AIA as? IB?")
|
||||
assertEquals(aib, notNullToNullB(aib), "AIB as? IB?")
|
||||
assertEquals(null, notNullToNullB(aie), "AIE as? IB?")
|
||||
assertEquals(aif, notNullToNullB(aif), "AIF as? IB?")
|
||||
assertEquals(aij, notNullToNullB(aij), "AIJ as? IB?")
|
||||
assertEquals(baia, notNullToNullB(baia), "BAIA as? IB?")
|
||||
assertEquals(baiaif, notNullToNullB(baiaif), "BAIAIF as? IB?")
|
||||
assertEquals(baiaij, notNullToNullB(baiaij), "BAIAIJ as? IB?")
|
||||
assertEquals(null, notNullToNullB(c), "C as? IB?")
|
||||
assertEquals(cib, notNullToNullB(cib), "CIB as? IB?")
|
||||
assertEquals(d, notNullToNullB(d), "D as? IB?")
|
||||
assertEquals(e, notNullToNullB(e), "E as? IB?")
|
||||
assertEquals(f, notNullToNullB(f), "F as? IB?")
|
||||
assertEquals(g, notNullToNullB(g), "G as? IB?")
|
||||
assertEquals(null, notNullToNullB(an), "Any as? IB?")
|
||||
|
||||
assertEquals(null, notNullToNullC(a), "A as? IC?")
|
||||
assertEquals(null, notNullToNullC(aia), "AIA as? IC?")
|
||||
assertEquals(null, notNullToNullC(aib), "AIB as? IC?")
|
||||
assertEquals(null, notNullToNullC(aie), "AIE as? IC?")
|
||||
assertEquals(null, notNullToNullC(aif), "AIF as? IC?")
|
||||
assertEquals(null, notNullToNullC(aij), "AIJ as? IC?")
|
||||
assertEquals(baia, notNullToNullC(baia), "BAIA as? IC?")
|
||||
assertEquals(baiaif, notNullToNullC(baiaif), "BAIAIF as? IC?")
|
||||
assertEquals(baiaij, notNullToNullC(baiaij), "BAIAIJ as? IC?")
|
||||
assertEquals(null, notNullToNullC(c), "C as? IC?")
|
||||
assertEquals(null, notNullToNullC(cib), "CIB as? IC?")
|
||||
assertEquals(d, notNullToNullC(d), "D as? IC?")
|
||||
assertEquals(null, notNullToNullC(e), "E as? IC?")
|
||||
assertEquals(f, notNullToNullC(f), "F as? IC?")
|
||||
assertEquals(g, notNullToNullC(g), "G as? IC?")
|
||||
assertEquals(null, notNullToNullC(an), "Any as? IC?")
|
||||
|
||||
assertEquals(null, notNullToNullE(a), "A as? IE?")
|
||||
assertEquals(null, notNullToNullE(aia), "AIA as? IE?")
|
||||
assertEquals(null, notNullToNullE(aib), "AIB as? IE?")
|
||||
assertEquals(aie, notNullToNullE(aie), "AIE as? IE?")
|
||||
assertEquals(aif, notNullToNullE(aif), "AIF as? IE?")
|
||||
assertEquals(aij, notNullToNullE(aij), "AIJ as? IE?")
|
||||
assertEquals(null, notNullToNullE(baia), "BAIA as? IE?")
|
||||
assertEquals(baiaif, notNullToNullE(baiaif), "BAIAIF as? IE?")
|
||||
assertEquals(baiaij, notNullToNullE(baiaij), "BAIAIJ as? IE?")
|
||||
assertEquals(null, notNullToNullE(c), "C as? IE?")
|
||||
assertEquals(null, notNullToNullE(cib), "CIB as? IE?")
|
||||
assertEquals(d, notNullToNullE(d), "D as? IE?")
|
||||
assertEquals(e, notNullToNullE(e), "E as? IE?")
|
||||
assertEquals(null, notNullToNullE(f), "F as? IE?")
|
||||
assertEquals(g, notNullToNullE(g), "G as? IE?")
|
||||
assertEquals(null, notNullToNullE(an), "Any as? IE?")
|
||||
|
||||
assertEquals(null, notNullToNullI(a), "A as? II?")
|
||||
assertEquals(null, notNullToNullI(aia), "AIA as? II?")
|
||||
assertEquals(null, notNullToNullI(aib), "AIB as? II?")
|
||||
assertEquals(null, notNullToNullI(aie), "AIE as? II?")
|
||||
assertEquals(null, notNullToNullI(aif), "AIF as? II?")
|
||||
assertEquals(aij, notNullToNullI(aij), "AIJ as? II?")
|
||||
assertEquals(null, notNullToNullI(baia), "BAIA as? II?")
|
||||
assertEquals(null, notNullToNullI(baiaif), "BAIAIF as? II?")
|
||||
assertEquals(baiaij, notNullToNullI(baiaij), "BAIAIJ as? II?")
|
||||
assertEquals(null, notNullToNullI(c), "C as? II?")
|
||||
assertEquals(null, notNullToNullI(cib), "CIB as? II?")
|
||||
assertEquals(null, notNullToNullI(d), "D as? II?")
|
||||
assertEquals(null, notNullToNullI(e), "E as? II?")
|
||||
assertEquals(null, notNullToNullI(f), "F as? II?")
|
||||
assertEquals(g, notNullToNullI(g), "G as? II?")
|
||||
assertEquals(null, notNullToNullI(an), "Any as? II?")
|
||||
|
||||
assertEquals(null, dToNB(dyn), "dynamic as? IB?")
|
||||
assertEquals(baiaij, dToNB(baiaij), "BAIAIJ dynamic as? IB?")
|
||||
|
||||
assertEquals(aib, BtoNB(aib), "IB() as? IB?")
|
||||
|
||||
assertEquals(null, notNullToNullI({}), "Function as? II?")
|
||||
assertEquals(null, notNullToNullI(true), "Boolean as? II?")
|
||||
assertEquals(null, notNullToNullI(42), "Number as? II?")
|
||||
assertEquals(null, notNullToNullI("String"), "String as? II?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastNN2NN(): String {
|
||||
assertEquals(null, notNullToNotNullB(a), "A as? IB")
|
||||
assertEquals(null, notNullToNotNullB(aia), "AIA as? IB")
|
||||
assertEquals(aib, notNullToNotNullB(aib), "AIB as? IB")
|
||||
assertEquals(null, notNullToNotNullB(aie), "AIE as? IB")
|
||||
assertEquals(aif, notNullToNotNullB(aif), "AIF as? IB")
|
||||
assertEquals(aij, notNullToNotNullB(aij), "AIJ as? IB")
|
||||
assertEquals(baia, notNullToNotNullB(baia), "BAIA as? IB")
|
||||
assertEquals(baiaif, notNullToNotNullB(baiaif), "BAIAIF as? IB")
|
||||
assertEquals(baiaij, notNullToNotNullB(baiaij), "BAIAIJ as? IB")
|
||||
assertEquals(null, notNullToNotNullB(c), "C as? IB")
|
||||
assertEquals(cib, notNullToNotNullB(cib), "CIB as? IB")
|
||||
assertEquals(d, notNullToNotNullB(d), "D as? IB")
|
||||
assertEquals(e, notNullToNotNullB(e), "E as? IB")
|
||||
assertEquals(f, notNullToNotNullB(f), "F as? IB")
|
||||
assertEquals(g, notNullToNotNullB(g), "G as? IB")
|
||||
assertEquals(null, notNullToNotNullB(an), "Any as? IB")
|
||||
|
||||
assertEquals(null, notNullToNotNullC(a), "A as? IC")
|
||||
assertEquals(null, notNullToNotNullC(aia), "AIA as? IC")
|
||||
assertEquals(null, notNullToNotNullC(aib), "AIB as? IC")
|
||||
assertEquals(null, notNullToNotNullC(aie), "AIE as? IC")
|
||||
assertEquals(null, notNullToNotNullC(aif), "AIF as? IC")
|
||||
assertEquals(null, notNullToNotNullC(aij), "AIJ as? IC")
|
||||
assertEquals(baia, notNullToNotNullC(baia), "BAIA as? IC")
|
||||
assertEquals(baiaif, notNullToNotNullC(baiaif), "BAIAIF as? IC")
|
||||
assertEquals(baiaij, notNullToNotNullC(baiaij), "BAIAIJ as? IC")
|
||||
assertEquals(null, notNullToNotNullC(c), "C as? IC")
|
||||
assertEquals(null, notNullToNotNullC(cib), "CIB as? IC")
|
||||
assertEquals(d, notNullToNotNullC(d), "D as? IC")
|
||||
assertEquals(null, notNullToNotNullC(e), "E as? IC")
|
||||
assertEquals(f, notNullToNotNullC(f), "F as? IC")
|
||||
assertEquals(g, notNullToNotNullC(g), "G as? IC")
|
||||
assertEquals(null, notNullToNotNullC(an), "Any as? IC")
|
||||
|
||||
assertEquals(null, notNullToNotNullE(a), "A as? IE")
|
||||
assertEquals(null, notNullToNotNullE(aia), "AIA as? IE")
|
||||
assertEquals(null, notNullToNotNullE(aib), "AIB as? IE")
|
||||
assertEquals(aie, notNullToNotNullE(aie), "AIE as? IE")
|
||||
assertEquals(aif, notNullToNotNullE(aif), "AIF as? IE")
|
||||
assertEquals(aij, notNullToNotNullE(aij), "AIJ as? IE")
|
||||
assertEquals(null, notNullToNotNullE(baia), "BAIA as? IE")
|
||||
assertEquals(baiaif, notNullToNotNullE(baiaif), "BAIAIF as? IE")
|
||||
assertEquals(baiaij, notNullToNotNullE(baiaij), "BAIAIJ as? IE")
|
||||
assertEquals(null, notNullToNotNullE(c), "C as? IE")
|
||||
assertEquals(null, notNullToNotNullE(cib), "CIB as? IE")
|
||||
assertEquals(d, notNullToNotNullE(d), "D as? IE")
|
||||
assertEquals(e, notNullToNotNullE(e), "E as? IE")
|
||||
assertEquals(null, notNullToNotNullE(f), "F as? IE")
|
||||
assertEquals(g, notNullToNotNullE(g), "G as? IE")
|
||||
assertEquals(null, notNullToNotNullE(an), "Any as? IE")
|
||||
|
||||
assertEquals(null, notNullToNotNullI(a), "A as? II")
|
||||
assertEquals(null, notNullToNotNullI(aia), "AIA as? II")
|
||||
assertEquals(null, notNullToNotNullI(aib), "AIB as? II")
|
||||
assertEquals(null, notNullToNotNullI(aie), "AIE as? II")
|
||||
assertEquals(null, notNullToNotNullI(aif), "AIF as? II")
|
||||
assertEquals(aij, notNullToNotNullI(aij), "AIJ as? II")
|
||||
assertEquals(null, notNullToNotNullI(baia), "BAIA as? II")
|
||||
assertEquals(null, notNullToNotNullI(baiaif), "BAIAIF as? II")
|
||||
assertEquals(baiaij, notNullToNotNullI(baiaij), "BAIAIJ as? II")
|
||||
assertEquals(null, notNullToNotNullI(c), "C as? II")
|
||||
assertEquals(null, notNullToNotNullI(cib), "CIB as? II")
|
||||
assertEquals(null, notNullToNotNullI(d), "D as? II")
|
||||
assertEquals(null, notNullToNotNullI(e), "E as? II")
|
||||
assertEquals(null, notNullToNotNullI(f), "F as? II")
|
||||
assertEquals(g, notNullToNotNullI(g), "G as? II")
|
||||
assertEquals(null, notNullToNotNullI(an), "Any as? II")
|
||||
|
||||
assertEquals(null, dToB(dyn), "dynamic as? IB")
|
||||
assertEquals(baiaij, dToB(baiaij), "BAIAIJ dynamic as? IB")
|
||||
|
||||
assertEquals(null, notNullToNotNullI({}), "Function as? II")
|
||||
assertEquals(null, notNullToNotNullI(true), "Boolean as? II")
|
||||
assertEquals(null, notNullToNotNullI(42), "Number as? II")
|
||||
assertEquals(null, notNullToNotNullI("String"), "String as? II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCast() {
|
||||
assertEquals("OK", testInterfaceCastN2N())
|
||||
assertEquals("OK", testInterfaceCastN2NN())
|
||||
assertEquals("OK", testInterfaceCastNN2N())
|
||||
assertEquals("OK", testInterfaceCastNN2NN())
|
||||
}
|
||||
|
||||
|
||||
fun box(): String {
|
||||
testInterfaceCast()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
open class A
|
||||
|
||||
open class B : A()
|
||||
|
||||
open class C
|
||||
|
||||
open class D : B()
|
||||
|
||||
class E : D()
|
||||
|
||||
class F : C()
|
||||
|
||||
val dyn: dynamic = js("({})")
|
||||
|
||||
fun nullToNull(a: Any?) = a is B?
|
||||
fun notNullToNull(a: Any) = a is B?
|
||||
fun nullToNotNull(a: Any?) = a is B
|
||||
fun notNullToNotNull(a: Any) = a is B
|
||||
|
||||
fun NBtoNB(b: B?) = b is B?
|
||||
fun dtoNB(d: dynamic) = d is B?
|
||||
|
||||
fun testClassCastN2N(): String { // ? is ?
|
||||
assertEquals(true, nullToNull(null), "null is B?")
|
||||
assertEquals(false, nullToNull(A()), "A? is B?")
|
||||
assertEquals(true, NBtoNB(B()), "B()? is B?")
|
||||
assertEquals(true, NBtoNB(null), "null() is B?")
|
||||
assertEquals(true, nullToNull(B()), "B? is B?")
|
||||
assertEquals(false, nullToNull(C()), "C? is B?")
|
||||
assertEquals(true, nullToNull(D()), "D? is B?")
|
||||
assertEquals(true, nullToNull(E()), "E? is B?")
|
||||
assertEquals(false, nullToNull(F()), "F? is B?")
|
||||
assertEquals(false, nullToNull(Any()), "Any? is B?")
|
||||
assertEquals(true, dtoNB(null), "null dynamic is B?")
|
||||
|
||||
assertEquals(false, nullToNull({}), "Function? is B?")
|
||||
assertEquals(false, nullToNull(true), "Boolean? is B?")
|
||||
assertEquals(false, nullToNull(42), "Number? is B?")
|
||||
assertEquals(false, nullToNull("String"), "String? is B?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun NBtoB(b: B?) = b is B
|
||||
|
||||
fun testClassCastNN2N(): String { // ! is ?
|
||||
assertEquals(false, notNullToNull(A()), "A is B?")
|
||||
assertEquals(true, NBtoB(B()), "B() is B?")
|
||||
assertEquals(false, NBtoB(null), "null() is B?")
|
||||
assertEquals(true, notNullToNull(B()), "B is B?")
|
||||
assertEquals(false, notNullToNull(C()), "C is B?")
|
||||
assertEquals(true, notNullToNull(D()), "D is B?")
|
||||
assertEquals(true, notNullToNull(E()), "E is B?")
|
||||
assertEquals(false, notNullToNull(F()), "F is B?")
|
||||
assertEquals(false, notNullToNull(Any()), "Any is B?")
|
||||
assertEquals(false, dtoNB(dyn), "dynamic is B?")
|
||||
|
||||
assertEquals(false, notNullToNull({}), "Function is B?")
|
||||
assertEquals(false, notNullToNull(true), "Boolean is B?")
|
||||
assertEquals(false, notNullToNull(42), "Number is B?")
|
||||
assertEquals(false, notNullToNull("String"), "String is B?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun BtoNB(b: B) = b is B?
|
||||
|
||||
fun anyNToAnyNN(a: Any?) = a is Any
|
||||
|
||||
fun dtoB(d: dynamic) = d is B
|
||||
|
||||
fun testClassCastN2NN(): String { // ? is !
|
||||
assertEquals(false, nullToNotNull(null), "null is B")
|
||||
assertEquals(false, nullToNotNull(A()), "A? is B")
|
||||
assertEquals(true, BtoNB(B()), "B() is B?")
|
||||
assertEquals(true, nullToNotNull(B()), "B? is B")
|
||||
assertEquals(false, nullToNotNull(C()), "C? is B")
|
||||
assertEquals(true, nullToNotNull(D()), "D? is B")
|
||||
assertEquals(true, nullToNotNull(E()), "E? is B")
|
||||
assertEquals(false, nullToNotNull(F()), "F? is B")
|
||||
assertEquals(false, nullToNotNull(Any()), "Any? is B")
|
||||
assertEquals(false, dtoB(null), "null dynamic is B")
|
||||
assertEquals(true, anyNToAnyNN(Any()), "Any? is Any")
|
||||
assertEquals(false, anyNToAnyNN(null), "null any is Any")
|
||||
|
||||
assertEquals(false, nullToNotNull({}), "Function? is B")
|
||||
assertEquals(false, nullToNotNull(true), "Boolean? is B")
|
||||
assertEquals(false, nullToNotNull(42), "Number? is B")
|
||||
assertEquals(false, nullToNotNull("String"), "String? is B")
|
||||
|
||||
assertEquals(true, anyNToAnyNN({}), "Function? is Any")
|
||||
assertEquals(true, anyNToAnyNN(true), "Boolean? is Any")
|
||||
assertEquals(true, anyNToAnyNN(42), "Number? is Any")
|
||||
assertEquals(true, anyNToAnyNN("String"), "String? is Any")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testClassCastNN2NN(): String { // ! is !
|
||||
assertEquals(false, notNullToNotNull(A()), "A is B")
|
||||
assertEquals(true, notNullToNotNull(B()), "B is B")
|
||||
assertEquals(false, notNullToNotNull(C()), "C is B")
|
||||
assertEquals(true, notNullToNotNull(D()), "D is B")
|
||||
assertEquals(true, notNullToNotNull(E()), "E is B")
|
||||
assertEquals(false, notNullToNotNull(F()), "F is B")
|
||||
assertEquals(false, notNullToNotNull(Any()), "Any is B")
|
||||
assertEquals(false, dtoB(dyn), "dynamic is B")
|
||||
|
||||
assertEquals(false, notNullToNotNull({}), "Function is II")
|
||||
assertEquals(false, notNullToNotNull(true), "Boolean is II")
|
||||
assertEquals(false, notNullToNotNull(42), "Number is II")
|
||||
assertEquals(false, notNullToNotNull("String"), "String is II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testClassCast() {
|
||||
assertEquals("OK", testClassCastN2N())
|
||||
assertEquals("OK", testClassCastN2NN())
|
||||
assertEquals("OK", testClassCastNN2N())
|
||||
assertEquals("OK", testClassCastNN2NN())
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
testClassCast()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,406 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1108
|
||||
package foo
|
||||
|
||||
|
||||
interface IA
|
||||
interface IB : IA // B
|
||||
interface IC : IA, IB // B, C
|
||||
interface ID : IB // B
|
||||
interface IE // E
|
||||
interface IF : IB, IE // B, E
|
||||
interface IG : ID // B
|
||||
interface IH
|
||||
interface II : IH // I
|
||||
interface IJ : IF, II // B, E, I
|
||||
interface IK : IC // B, C
|
||||
interface IL: IK, IF, IJ // B, C, E, I
|
||||
|
||||
|
||||
open class A //
|
||||
open class AIA: A(), IA //
|
||||
open class AIB: A(), IB // B
|
||||
open class AIE: A(), IE // E
|
||||
open class AIF: A(), IF // B, E
|
||||
open class AIJ: A(), IJ // B, E, I
|
||||
open class BAIA: AIA(), IC // B, C
|
||||
open class BAIAIF: BAIA(), IF // B, C, E
|
||||
open class BAIAIJ: BAIA(), IJ // B, C, E, I
|
||||
open class C //
|
||||
open class CIB: C(), IB // B
|
||||
open class D: BAIAIF(), IG // B, C, E
|
||||
open class E: A(), IF // B, E
|
||||
open class F: AIB(), IK // B, C
|
||||
open class G: E(), IL, IE // B, C, E, I
|
||||
|
||||
var dyn = js("({})")
|
||||
|
||||
fun dToNB(d: dynamic) = d is IB?
|
||||
fun dToB(d: dynamic) = d is IB
|
||||
|
||||
fun NBtoB(b: IB?) = b is IB
|
||||
fun BtoNB(b: IB) = b is IB?
|
||||
|
||||
fun nullToNullB(a: Any?) = a is IB?
|
||||
fun notNullToNullB(a: Any) = a is IB?
|
||||
fun nullToNotNullB(a: Any?) = a is IB
|
||||
fun notNullToNotNullB(a: Any) = a is IB
|
||||
|
||||
fun nullToNullC(a: Any?) = a is IC?
|
||||
fun notNullToNullC(a: Any) = a is IC?
|
||||
fun nullToNotNullC(a: Any?) = a is IC
|
||||
fun notNullToNotNullC(a: Any) = a is IC
|
||||
|
||||
fun nullToNullE(a: Any?) = a is IE?
|
||||
fun notNullToNullE(a: Any) = a is IE?
|
||||
fun nullToNotNullE(a: Any?) = a is IE
|
||||
fun notNullToNotNullE(a: Any) = a is IE
|
||||
|
||||
fun nullToNullI(a: Any?) = a is II?
|
||||
fun notNullToNullI(a: Any) = a is II?
|
||||
fun nullToNotNullI(a: Any?) = a is II
|
||||
fun notNullToNotNullI(a: Any) = a is II
|
||||
|
||||
fun testInterfaceCastN2N(): String {
|
||||
assertEquals(true, nullToNullB(null), "null is IB?")
|
||||
assertEquals(false, nullToNullB(A()), "A? is IB?")
|
||||
assertEquals(false, nullToNullB(AIA()), "AIA? is IB?")
|
||||
assertEquals(true, nullToNullB(AIB()), "AIB? is IB?")
|
||||
assertEquals(false, nullToNullB(AIE()), "AIE? is IB?")
|
||||
assertEquals(true, nullToNullB(AIF()), "AIF? is IB?")
|
||||
assertEquals(true, nullToNullB(AIJ()), "AIJ? is IB?")
|
||||
assertEquals(true, nullToNullB(BAIA()), "BAIA? is IB?")
|
||||
assertEquals(true, nullToNullB(BAIAIF()), "BAIAIF? is IB?")
|
||||
assertEquals(true, nullToNullB(BAIAIJ()), "BAIAIJ? is IB?")
|
||||
assertEquals(false, nullToNullB(C()), "C? is IB?")
|
||||
assertEquals(true, nullToNullB(CIB()), "CIB? is IB?")
|
||||
assertEquals(true, nullToNullB(D()), "D? is IB?")
|
||||
assertEquals(true, nullToNullB(E()), "E? is IB?")
|
||||
assertEquals(true, nullToNullB(F()), "F? is IB?")
|
||||
assertEquals(true, nullToNullB(G()), "G? is IB?")
|
||||
assertEquals(false, nullToNullB(Any()), "Any? is IB?")
|
||||
|
||||
assertEquals(true, nullToNullC(null), "null is IC?")
|
||||
assertEquals(false, nullToNullC(A()), "A? is IC?")
|
||||
assertEquals(false, nullToNullC(AIA()), "AIA? is IC?")
|
||||
assertEquals(false, nullToNullC(AIB()), "AIB? is IC?")
|
||||
assertEquals(false, nullToNullC(AIE()), "AIE? is IC?")
|
||||
assertEquals(false, nullToNullC(AIF()), "AIF? is IC?")
|
||||
assertEquals(false, nullToNullC(AIJ()), "AIJ? is IC?")
|
||||
assertEquals(true, nullToNullC(BAIA()), "BAIA? is IC?")
|
||||
assertEquals(true, nullToNullC(BAIAIF()), "BAIAIF? is IC?")
|
||||
assertEquals(true, nullToNullC(BAIAIJ()), "BAIAIJ? is IC?")
|
||||
assertEquals(false, nullToNullC(C()), "C? is IC?")
|
||||
assertEquals(false, nullToNullC(CIB()), "CIB? is IC?")
|
||||
assertEquals(true, nullToNullC(D()), "D? is IC?")
|
||||
assertEquals(false, nullToNullC(E()), "E? is IC?")
|
||||
assertEquals(true, nullToNullC(F()), "F? is IC?")
|
||||
assertEquals(true, nullToNullC(G()), "G? is IC?")
|
||||
assertEquals(false, nullToNullC(Any()), "Any? is IC?")
|
||||
|
||||
assertEquals(true, nullToNullE(null), "null is IE?")
|
||||
assertEquals(false, nullToNullE(A()), "A? is IE?")
|
||||
assertEquals(false, nullToNullE(AIA()), "AIA? is IE?")
|
||||
assertEquals(false, nullToNullE(AIB()), "AIB? is IE?")
|
||||
assertEquals(true, nullToNullE(AIE()), "AIE? is IE?")
|
||||
assertEquals(true, nullToNullE(AIF()), "AIF? is IE?")
|
||||
assertEquals(true, nullToNullE(AIJ()), "AIJ? is IE?")
|
||||
assertEquals(false, nullToNullE(BAIA()), "BAIA? is IE?")
|
||||
assertEquals(true, nullToNullE(BAIAIF()), "BAIAIF? is IE?")
|
||||
assertEquals(true, nullToNullE(BAIAIJ()), "BAIAIJ? is IE?")
|
||||
assertEquals(false, nullToNullE(C()), "C? is IE?")
|
||||
assertEquals(false, nullToNullE(CIB()), "CIB? is IE?")
|
||||
assertEquals(true, nullToNullE(D()), "D? is IE?")
|
||||
assertEquals(true, nullToNullE(E()), "E? is IE?")
|
||||
assertEquals(false, nullToNullE(F()), "F? is IE?")
|
||||
assertEquals(true, nullToNullE(G()), "G? is IE?")
|
||||
assertEquals(false, nullToNullE(Any()), "Any? is IE?")
|
||||
|
||||
assertEquals(true, nullToNullI(null), "null is II?")
|
||||
assertEquals(false, nullToNullI(A()), "A? is II?")
|
||||
assertEquals(false, nullToNullI(AIA()), "AIA? is II?")
|
||||
assertEquals(false, nullToNullI(AIB()), "AIB? is II?")
|
||||
assertEquals(false, nullToNullI(AIE()), "AIE? is II?")
|
||||
assertEquals(false, nullToNullI(AIF()), "AIF? is II?")
|
||||
assertEquals(true, nullToNullI(AIJ()), "AIJ? is II?")
|
||||
assertEquals(false, nullToNullI(BAIA()), "BAIA? is II?")
|
||||
assertEquals(false, nullToNullI(BAIAIF()), "BAIAIF? is II?")
|
||||
assertEquals(true, nullToNullI(BAIAIJ()), "BAIAIJ? is II?")
|
||||
assertEquals(false, nullToNullI(C()), "C? is II?")
|
||||
assertEquals(false, nullToNullI(CIB()), "CIB? is II?")
|
||||
assertEquals(false, nullToNullI(D()), "D? is II?")
|
||||
assertEquals(false, nullToNullI(E()), "E? is II?")
|
||||
assertEquals(false, nullToNullI(F()), "F? is II?")
|
||||
assertEquals(true, nullToNullI(G()), "G? is II?")
|
||||
assertEquals(false, nullToNullI(Any()), "Any? is II?")
|
||||
|
||||
assertEquals(true, dToNB(null), "null dynamic is IB?")
|
||||
|
||||
assertEquals(false, nullToNullI({}), "Function? is II?")
|
||||
assertEquals(false, nullToNullI(true), "Boolean? is II?")
|
||||
assertEquals(false, nullToNullI(42), "Number? is II?")
|
||||
assertEquals(false, nullToNullI("String"), "String? is II?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastN2NN(): String {
|
||||
|
||||
assertEquals(false, nullToNotNullB(null), "null is IB")
|
||||
assertEquals(false, nullToNotNullB(A()), "A? is IB")
|
||||
assertEquals(false, nullToNotNullB(AIA()), "AIA? is IB")
|
||||
assertEquals(true, nullToNotNullB(AIB()), "AIB? is IB")
|
||||
assertEquals(false, nullToNotNullB(AIE()), "AIE? is IB")
|
||||
assertEquals(true, nullToNotNullB(AIF()), "AIF? is IB")
|
||||
assertEquals(true, nullToNotNullB(AIJ()), "AIJ? is IB")
|
||||
assertEquals(true, nullToNotNullB(BAIA()), "BAIA? is IB")
|
||||
assertEquals(true, nullToNotNullB(BAIAIF()), "BAIAIF? is IB")
|
||||
assertEquals(true, nullToNotNullB(BAIAIJ()), "BAIAIJ? is IB")
|
||||
assertEquals(false, nullToNotNullB(C()), "C? is IB")
|
||||
assertEquals(true, nullToNotNullB(CIB()), "CIB? is IB")
|
||||
assertEquals(true, nullToNotNullB(D()), "D? is IB")
|
||||
assertEquals(true, nullToNotNullB(E()), "E? is IB")
|
||||
assertEquals(true, nullToNotNullB(F()), "F? is IB")
|
||||
assertEquals(true, nullToNotNullB(G()), "G? is IB")
|
||||
assertEquals(false, nullToNotNullB(Any()), "Any? is IB")
|
||||
|
||||
assertEquals(false, nullToNotNullC(null), "null is IC")
|
||||
assertEquals(false, nullToNotNullC(A()), "A? is IC")
|
||||
assertEquals(false, nullToNotNullC(AIA()), "AIA? is IC")
|
||||
assertEquals(false, nullToNotNullC(AIB()), "AIB? is IC")
|
||||
assertEquals(false, nullToNotNullC(AIE()), "AIE? is IC")
|
||||
assertEquals(false, nullToNotNullC(AIF()), "AIF? is IC")
|
||||
assertEquals(false, nullToNotNullC(AIJ()), "AIJ? is IC")
|
||||
assertEquals(true, nullToNotNullC(BAIA()), "BAIA? is IC")
|
||||
assertEquals(true, nullToNotNullC(BAIAIF()), "BAIAIF? is IC")
|
||||
assertEquals(true, nullToNotNullC(BAIAIJ()), "BAIAIJ? is IC")
|
||||
assertEquals(false, nullToNotNullC(C()), "C? is IC")
|
||||
assertEquals(false, nullToNotNullC(CIB()), "CIB? is IC")
|
||||
assertEquals(true, nullToNotNullC(D()), "D? is IC")
|
||||
assertEquals(false, nullToNotNullC(E()), "E? is IC")
|
||||
assertEquals(true, nullToNotNullC(F()), "F? is IC")
|
||||
assertEquals(true, nullToNotNullC(G()), "G? is IC")
|
||||
assertEquals(false, nullToNotNullC(Any()), "Any? is IC")
|
||||
|
||||
assertEquals(false, nullToNotNullE(null), "null is IE")
|
||||
assertEquals(false, nullToNotNullE(A()), "A? is IE")
|
||||
assertEquals(false, nullToNotNullE(AIA()), "AIA? is IE")
|
||||
assertEquals(false, nullToNotNullE(AIB()), "AIB? is IE")
|
||||
assertEquals(true, nullToNotNullE(AIE()), "AIE? is IE")
|
||||
assertEquals(true, nullToNotNullE(AIF()), "AIF? is IE")
|
||||
assertEquals(true, nullToNotNullE(AIJ()), "AIJ? is IE")
|
||||
assertEquals(false, nullToNotNullE(BAIA()), "BAIA? is IE")
|
||||
assertEquals(true, nullToNotNullE(BAIAIF()), "BAIAIF? is IE")
|
||||
assertEquals(true, nullToNotNullE(BAIAIJ()), "BAIAIJ? is IE")
|
||||
assertEquals(false, nullToNotNullE(C()), "C? is IE")
|
||||
assertEquals(false, nullToNotNullE(CIB()), "CIB? is IE")
|
||||
assertEquals(true, nullToNotNullE(D()), "D? is IE")
|
||||
assertEquals(true, nullToNotNullE(E()), "E? is IE")
|
||||
assertEquals(false, nullToNotNullE(F()), "F? is IE")
|
||||
assertEquals(true, nullToNotNullE(G()), "G? is IE")
|
||||
assertEquals(false, nullToNotNullE(Any()), "Any? is IE")
|
||||
|
||||
assertEquals(false, nullToNotNullI(null), "null is II")
|
||||
assertEquals(false, nullToNotNullI(A()), "A? is II")
|
||||
assertEquals(false, nullToNotNullI(AIA()), "AIA? is II")
|
||||
assertEquals(false, nullToNotNullI(AIB()), "AIB? is II")
|
||||
assertEquals(false, nullToNotNullI(AIE()), "AIE? is II")
|
||||
assertEquals(false, nullToNotNullI(AIF()), "AIF? is II")
|
||||
assertEquals(true, nullToNotNullI(AIJ()), "AIJ? is II")
|
||||
assertEquals(false, nullToNotNullI(BAIA()), "BAIA? is II")
|
||||
assertEquals(false, nullToNotNullI(BAIAIF()), "BAIAIF? is II")
|
||||
assertEquals(true, nullToNotNullI(BAIAIJ()), "BAIAIJ? is II")
|
||||
assertEquals(false, nullToNotNullI(C()), "C? is II")
|
||||
assertEquals(false, nullToNotNullI(CIB()), "CIB? is II")
|
||||
assertEquals(false, nullToNotNullI(D()), "D? is II")
|
||||
assertEquals(false, nullToNotNullI(E()), "E? is II")
|
||||
assertEquals(false, nullToNotNullI(F()), "F? is II")
|
||||
assertEquals(true, nullToNotNullI(G()), "G? is II")
|
||||
assertEquals(false, nullToNotNullI(Any()), "Any? is II")
|
||||
|
||||
assertEquals(false, dToB(null), "null dynamic is IB")
|
||||
|
||||
assertEquals(true, NBtoB(AIB()), "IB()? is IB")
|
||||
assertEquals(false, NBtoB(null), "null IB is IB")
|
||||
|
||||
assertEquals(false, nullToNotNullI({}), "Function? is II")
|
||||
assertEquals(false, nullToNotNullI(true), "Boolean? is II")
|
||||
assertEquals(false, nullToNotNullI(42), "Number? is II")
|
||||
assertEquals(false, nullToNotNullI("String"), "String? is II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastNN2N(): String {
|
||||
assertEquals(false, notNullToNullB(A()), "A is IB?")
|
||||
assertEquals(false, notNullToNullB(AIA()), "AIA is IB?")
|
||||
assertEquals(true, notNullToNullB(AIB()), "AIB is IB?")
|
||||
assertEquals(false, notNullToNullB(AIE()), "AIE is IB?")
|
||||
assertEquals(true, notNullToNullB(AIF()), "AIF is IB?")
|
||||
assertEquals(true, notNullToNullB(AIJ()), "AIJ is IB?")
|
||||
assertEquals(true, notNullToNullB(BAIA()), "BAIA is IB?")
|
||||
assertEquals(true, notNullToNullB(BAIAIF()), "BAIAIF is IB?")
|
||||
assertEquals(true, notNullToNullB(BAIAIJ()), "BAIAIJ is IB?")
|
||||
assertEquals(false, notNullToNullB(C()), "C is IB?")
|
||||
assertEquals(true, notNullToNullB(CIB()), "CIB is IB?")
|
||||
assertEquals(true, notNullToNullB(D()), "D is IB?")
|
||||
assertEquals(true, notNullToNullB(E()), "E is IB?")
|
||||
assertEquals(true, notNullToNullB(F()), "F is IB?")
|
||||
assertEquals(true, notNullToNullB(G()), "G is IB?")
|
||||
assertEquals(false, notNullToNullB(Any()), "Any is IB?")
|
||||
|
||||
assertEquals(false, notNullToNullC(A()), "A is IC?")
|
||||
assertEquals(false, notNullToNullC(AIA()), "AIA is IC?")
|
||||
assertEquals(false, notNullToNullC(AIB()), "AIB is IC?")
|
||||
assertEquals(false, notNullToNullC(AIE()), "AIE is IC?")
|
||||
assertEquals(false, notNullToNullC(AIF()), "AIF is IC?")
|
||||
assertEquals(false, notNullToNullC(AIJ()), "AIJ is IC?")
|
||||
assertEquals(true, notNullToNullC(BAIA()), "BAIA is IC?")
|
||||
assertEquals(true, notNullToNullC(BAIAIF()), "BAIAIF is IC?")
|
||||
assertEquals(true, notNullToNullC(BAIAIJ()), "BAIAIJ is IC?")
|
||||
assertEquals(false, notNullToNullC(C()), "C is IC?")
|
||||
assertEquals(false, notNullToNullC(CIB()), "CIB is IC?")
|
||||
assertEquals(true, notNullToNullC(D()), "D is IC?")
|
||||
assertEquals(false, notNullToNullC(E()), "E is IC?")
|
||||
assertEquals(true, notNullToNullC(F()), "F is IC?")
|
||||
assertEquals(true, notNullToNullC(G()), "G is IC?")
|
||||
assertEquals(false, notNullToNullC(Any()), "Any is IC?")
|
||||
|
||||
assertEquals(false, notNullToNullE(A()), "A is IE?")
|
||||
assertEquals(false, notNullToNullE(AIA()), "AIA is IE?")
|
||||
assertEquals(false, notNullToNullE(AIB()), "AIB is IE?")
|
||||
assertEquals(true, notNullToNullE(AIE()), "AIE is IE?")
|
||||
assertEquals(true, notNullToNullE(AIF()), "AIF is IE?")
|
||||
assertEquals(true, notNullToNullE(AIJ()), "AIJ is IE?")
|
||||
assertEquals(false, notNullToNullE(BAIA()), "BAIA is IE?")
|
||||
assertEquals(true, notNullToNullE(BAIAIF()), "BAIAIF is IE?")
|
||||
assertEquals(true, notNullToNullE(BAIAIJ()), "BAIAIJ is IE?")
|
||||
assertEquals(false, notNullToNullE(C()), "C is IE?")
|
||||
assertEquals(false, notNullToNullE(CIB()), "CIB is IE?")
|
||||
assertEquals(true, notNullToNullE(D()), "D is IE?")
|
||||
assertEquals(true, notNullToNullE(E()), "E is IE?")
|
||||
assertEquals(false, notNullToNullE(F()), "F is IE?")
|
||||
assertEquals(true, notNullToNullE(G()), "G is IE?")
|
||||
assertEquals(false, notNullToNullE(Any()), "Any is IE?")
|
||||
|
||||
assertEquals(false, notNullToNullI(A()), "A is II?")
|
||||
assertEquals(false, notNullToNullI(AIA()), "AIA is II?")
|
||||
assertEquals(false, notNullToNullI(AIB()), "AIB is II?")
|
||||
assertEquals(false, notNullToNullI(AIE()), "AIE is II?")
|
||||
assertEquals(false, notNullToNullI(AIF()), "AIF is II?")
|
||||
assertEquals(true, notNullToNullI(AIJ()), "AIJ is II?")
|
||||
assertEquals(false, notNullToNullI(BAIA()), "BAIA is II?")
|
||||
assertEquals(false, notNullToNullI(BAIAIF()), "BAIAIF is II?")
|
||||
assertEquals(true, notNullToNullI(BAIAIJ()), "BAIAIJ is II?")
|
||||
assertEquals(false, notNullToNullI(C()), "C is II?")
|
||||
assertEquals(false, notNullToNullI(CIB()), "CIB is II?")
|
||||
assertEquals(false, notNullToNullI(D()), "D is II?")
|
||||
assertEquals(false, notNullToNullI(E()), "E is II?")
|
||||
assertEquals(false, notNullToNullI(F()), "F is II?")
|
||||
assertEquals(true, notNullToNullI(G()), "G is II?")
|
||||
assertEquals(false, notNullToNullI(Any()), "Any is II?")
|
||||
|
||||
assertEquals(false, dToNB(dyn), "dynamic is IB?")
|
||||
assertEquals(true, dToNB(BAIAIJ()), "BAIAIJ dynamic is IB?")
|
||||
|
||||
assertEquals(true, BtoNB(AIB()), "IB() is IB?")
|
||||
|
||||
assertEquals(false, notNullToNullI({}), "Function is II?")
|
||||
assertEquals(false, notNullToNullI(true), "Boolean is II?")
|
||||
assertEquals(false, notNullToNullI(42), "Number is II?")
|
||||
assertEquals(false, notNullToNullI("String"), "String is II?")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCastNN2NN(): String {
|
||||
assertEquals(false, notNullToNotNullB(A()), "A is IB")
|
||||
assertEquals(false, notNullToNotNullB(AIA()), "AIA is IB")
|
||||
assertEquals(true, notNullToNotNullB(AIB()), "AIB is IB")
|
||||
assertEquals(false, notNullToNotNullB(AIE()), "AIE is IB")
|
||||
assertEquals(true, notNullToNotNullB(AIF()), "AIF is IB")
|
||||
assertEquals(true, notNullToNotNullB(AIJ()), "AIJ is IB")
|
||||
assertEquals(true, notNullToNotNullB(BAIA()), "BAIA is IB")
|
||||
assertEquals(true, notNullToNotNullB(BAIAIF()), "BAIAIF is IB")
|
||||
assertEquals(true, notNullToNotNullB(BAIAIJ()), "BAIAIJ is IB")
|
||||
assertEquals(false, notNullToNotNullB(C()), "C is IB")
|
||||
assertEquals(true, notNullToNotNullB(CIB()), "CIB is IB")
|
||||
assertEquals(true, notNullToNotNullB(D()), "D is IB")
|
||||
assertEquals(true, notNullToNotNullB(E()), "E is IB")
|
||||
assertEquals(true, notNullToNotNullB(F()), "F is IB")
|
||||
assertEquals(true, notNullToNotNullB(G()), "G is IB")
|
||||
assertEquals(false, notNullToNotNullB(Any()), "Any is IB")
|
||||
|
||||
assertEquals(false, notNullToNotNullC(A()), "A is IC")
|
||||
assertEquals(false, notNullToNotNullC(AIA()), "AIA is IC")
|
||||
assertEquals(false, notNullToNotNullC(AIB()), "AIB is IC")
|
||||
assertEquals(false, notNullToNotNullC(AIE()), "AIE is IC")
|
||||
assertEquals(false, notNullToNotNullC(AIF()), "AIF is IC")
|
||||
assertEquals(false, notNullToNotNullC(AIJ()), "AIJ is IC")
|
||||
assertEquals(true, notNullToNotNullC(BAIA()), "BAIA is IC")
|
||||
assertEquals(true, notNullToNotNullC(BAIAIF()), "BAIAIF is IC")
|
||||
assertEquals(true, notNullToNotNullC(BAIAIJ()), "BAIAIJ is IC")
|
||||
assertEquals(false, notNullToNotNullC(C()), "C is IC")
|
||||
assertEquals(false, notNullToNotNullC(CIB()), "CIB is IC")
|
||||
assertEquals(true, notNullToNotNullC(D()), "D is IC")
|
||||
assertEquals(false, notNullToNotNullC(E()), "E is IC")
|
||||
assertEquals(true, notNullToNotNullC(F()), "F is IC")
|
||||
assertEquals(true, notNullToNotNullC(G()), "G is IC")
|
||||
assertEquals(false, notNullToNotNullC(Any()), "Any is IC")
|
||||
|
||||
assertEquals(false, notNullToNotNullE(A()), "A is IE")
|
||||
assertEquals(false, notNullToNotNullE(AIA()), "AIA is IE")
|
||||
assertEquals(false, notNullToNotNullE(AIB()), "AIB is IE")
|
||||
assertEquals(true, notNullToNotNullE(AIE()), "AIE is IE")
|
||||
assertEquals(true, notNullToNotNullE(AIF()), "AIF is IE")
|
||||
assertEquals(true, notNullToNotNullE(AIJ()), "AIJ is IE")
|
||||
assertEquals(false, notNullToNotNullE(BAIA()), "BAIA is IE")
|
||||
assertEquals(true, notNullToNotNullE(BAIAIF()), "BAIAIF is IE")
|
||||
assertEquals(true, notNullToNotNullE(BAIAIJ()), "BAIAIJ is IE")
|
||||
assertEquals(false, notNullToNotNullE(C()), "C is IE")
|
||||
assertEquals(false, notNullToNotNullE(CIB()), "CIB is IE")
|
||||
assertEquals(true, notNullToNotNullE(D()), "D is IE")
|
||||
assertEquals(true, notNullToNotNullE(E()), "E is IE")
|
||||
assertEquals(false, notNullToNotNullE(F()), "F is IE")
|
||||
assertEquals(true, notNullToNotNullE(G()), "G is IE")
|
||||
assertEquals(false, notNullToNotNullE(Any()), "Any is IE")
|
||||
|
||||
assertEquals(false, notNullToNotNullI(A()), "A is II")
|
||||
assertEquals(false, notNullToNotNullI(AIA()), "AIA is II")
|
||||
assertEquals(false, notNullToNotNullI(AIB()), "AIB is II")
|
||||
assertEquals(false, notNullToNotNullI(AIE()), "AIE is II")
|
||||
assertEquals(false, notNullToNotNullI(AIF()), "AIF is II")
|
||||
assertEquals(true, notNullToNotNullI(AIJ()), "AIJ is II")
|
||||
assertEquals(false, notNullToNotNullI(BAIA()), "BAIA is II")
|
||||
assertEquals(false, notNullToNotNullI(BAIAIF()), "BAIAIF is II")
|
||||
assertEquals(true, notNullToNotNullI(BAIAIJ()), "BAIAIJ is II")
|
||||
assertEquals(false, notNullToNotNullI(C()), "C is II")
|
||||
assertEquals(false, notNullToNotNullI(CIB()), "CIB is II")
|
||||
assertEquals(false, notNullToNotNullI(D()), "D is II")
|
||||
assertEquals(false, notNullToNotNullI(E()), "E is II")
|
||||
assertEquals(false, notNullToNotNullI(F()), "F is II")
|
||||
assertEquals(true, notNullToNotNullI(G()), "G is II")
|
||||
assertEquals(false, notNullToNotNullI(Any()), "Any is II")
|
||||
|
||||
assertEquals(false, dToB(dyn), "dynamic is IB")
|
||||
assertEquals(true, dToB(BAIAIJ()), "BAIAIJ dynamic is IB")
|
||||
|
||||
assertEquals(false, notNullToNotNullI({}), "Function is II")
|
||||
assertEquals(false, notNullToNotNullI(true), "Boolean is II")
|
||||
assertEquals(false, notNullToNotNullI(42), "Number is II")
|
||||
assertEquals(false, notNullToNotNullI("String"), "String is II")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun testInterfaceCast() {
|
||||
assertEquals("OK", testInterfaceCastN2N())
|
||||
assertEquals("OK", testInterfaceCastN2NN())
|
||||
assertEquals("OK", testInterfaceCastNN2N())
|
||||
assertEquals("OK", testInterfaceCastNN2NN())
|
||||
}
|
||||
|
||||
|
||||
fun box(): String {
|
||||
testInterfaceCast()
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1110
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1115
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1110
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1110
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1112
|
||||
package foo
|
||||
|
||||
|
||||
Reference in New Issue
Block a user