Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.txt
T
2020-06-03 10:43:37 +03:00

48 lines
1.2 KiB
Plaintext
Vendored

FILE: elvis.kt
public abstract interface A : R|kotlin/Any| {
public abstract fun foo(): R|kotlin/Unit|
public abstract val b: R|kotlin/Boolean|
public get(): R|kotlin/Boolean|
}
public final fun test_1(x: R|A?|): R|kotlin/Unit| {
when () {
when (lval <elvis>: R|kotlin/Boolean?| = R|<local>/x|?.{ $subj$.R|/A.b| }) {
==($subj$, Null(null)) -> {
^test_1 Unit
}
else -> {
R|<local>/<elvis>|
}
}
-> {
R|<local>/x|.R|/A.foo|()
}
}
}
public final fun test2(a: R|kotlin/Any?|, b: R|kotlin/Any?|): R|kotlin/String| {
when () {
(R|<local>/b| !is R|kotlin/String|) -> {
^test2 String()
}
}
when () {
(R|<local>/a| !is R|kotlin/String?|) -> {
^test2 String()
}
}
^test2 when (lval <elvis>: R|kotlin/String?| = R|<local>/a|) {
==($subj$, Null(null)) -> {
R|<local>/b|
}
else -> {
R|<local>/<elvis>|
}
}
}