Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/exhaustiveness_enumJava.txt
T
Ivan Kylchik dcae6f1415 [FIR] Support when exhaustiveness for java enum
The problem appear because for java enum its entries was represented by
FirJavaField. To fix this FirEnumEntry was used

#KT-39621 Fixed
2020-07-09 23:49:54 +03:00

101 lines
3.1 KiB
Plaintext
Vendored

FILE: main.kt
public final fun test_1(e: R|JavaEnum|): R|kotlin/Unit| {
lval a: <ERROR TYPE REF: Unresolved name: plus> = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
}
.<Unresolved name: plus>#(Int(0))
lval b: <ERROR TYPE REF: Unresolved name: plus> = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
($subj$ is R|kotlin/String|) -> {
Int(3)
}
}
.<Unresolved name: plus>#(Int(0))
lval c: R|kotlin/Int| = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.C|) -> {
Int(3)
}
}
.R|kotlin/Int.plus|(Int(0))
lval d: R|kotlin/Int| = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
else -> {
Int(2)
}
}
.R|kotlin/Int.plus|(Int(0))
}
public final fun test_2(e: R|JavaEnum?|): R|kotlin/Unit| {
lval a: <ERROR TYPE REF: Unresolved name: plus> = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.C|) -> {
Int(3)
}
}
.<Unresolved name: plus>#(Int(0))
lval a: R|kotlin/Int| = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.C|) -> {
Int(3)
}
==($subj$, Null(null)) -> {
Int(4)
}
}
.R|kotlin/Int.plus|(Int(0))
lval a: R|kotlin/Int| = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(2)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.C|) -> {
Int(3)
}
else -> {
Int(4)
}
}
.R|kotlin/Int.plus|(Int(0))
}
public final fun test_3(e: R|JavaEnum|): R|kotlin/Unit| {
lval a: R|kotlin/Int| = when (R|<local>/e|) {
==($subj$, Q|JavaEnum|.R|/JavaEnum.A|) || ==($subj$, Q|JavaEnum|.R|/JavaEnum.B|) -> {
Int(1)
}
==($subj$, Q|JavaEnum|.R|/JavaEnum.C|) -> {
Int(2)
}
}
.R|kotlin/Int.plus|(Int(0))
}