9a4a3d1f49
^KT-56543 Merge-request: KT-MR-9299 Merged-by: Dmitrii Gridin <dmitry.gridin@jetbrains.com>
94 lines
1.4 KiB
Kotlin
Vendored
94 lines
1.4 KiB
Kotlin
Vendored
// IGNORE_REVERSED_RESOLVE
|
|
// !DUMP_CFG
|
|
interface A {
|
|
fun foo()
|
|
}
|
|
|
|
interface B {
|
|
fun bar()
|
|
}
|
|
|
|
fun test_1(x: Any?) {
|
|
when {
|
|
x is A -> x.foo()
|
|
x is B -> x.bar()
|
|
}
|
|
|
|
when {
|
|
x !is A -> {}
|
|
x !is B -> x.foo()
|
|
x is Int -> {
|
|
x.foo()
|
|
x.bar()
|
|
x.inc()
|
|
}
|
|
else -> {
|
|
x.foo()
|
|
x.bar()
|
|
}
|
|
}
|
|
}
|
|
|
|
fun test_2(x: Any?) {
|
|
when(x) {
|
|
is A -> x.foo()
|
|
is B -> x.bar()
|
|
}
|
|
|
|
when(x) {
|
|
!is A -> {}
|
|
!is B -> x.foo()
|
|
is Int -> {
|
|
x.foo()
|
|
x.bar()
|
|
x.inc()
|
|
}
|
|
else -> {
|
|
x.foo()
|
|
x.bar()
|
|
}
|
|
}
|
|
}
|
|
|
|
fun test_3(x: Any?) {
|
|
when(val y = x) {
|
|
is A -> {
|
|
x.foo()
|
|
y.foo()
|
|
}
|
|
is B -> {
|
|
x.bar()
|
|
y.bar()
|
|
}
|
|
}
|
|
|
|
when(val y = x) {
|
|
!is A -> {}
|
|
!is B -> {
|
|
x.foo()
|
|
y.foo()
|
|
}
|
|
is Int -> {
|
|
x.foo()
|
|
x.bar()
|
|
x.inc()
|
|
y.foo()
|
|
y.bar()
|
|
y.inc()
|
|
}
|
|
else -> {
|
|
x.foo()
|
|
x.bar()
|
|
y.foo()
|
|
y.bar()
|
|
}
|
|
}
|
|
}
|
|
|
|
fun test_4(x: Any) {
|
|
when (x as Int) {
|
|
1 -> x.inc()
|
|
}
|
|
x.inc()
|
|
}
|