[FIR] Try to infer result type of incomplete when expression

^KT-62069 Fixed
This commit is contained in:
Ivan Kochurkin
2023-11-17 12:51:56 +01:00
committed by Space Team
parent e2f245096c
commit 88f7b085e6
28 changed files with 113 additions and 59 deletions
@@ -16,7 +16,7 @@ FILE: enumWithTheSameNameAsEntry.kt
public get(): R|kotlin/enums/EnumEntries<A>|
}
public final fun test(a: R|A|): R|kotlin/Unit| {
public final fun test(a: R|A|): R|kotlin/String| {
^test when (R|<local>/a|) {
==($subj$, R|/A.A|.<Unresolved name: A>#) -> {
String(A)
@@ -1,5 +1,5 @@
FILE: test.kt
public final fun foo(javaEnum: R|JavaEnum|): R|kotlin/Unit| {
public final fun foo(javaEnum: R|JavaEnum|): R|kotlin/Int| {
^foo when (R|<local>/javaEnum|) {
==($subj$, <Unresolved name: first>#()) -> {
Int(1)
@@ -42,7 +42,7 @@ FILE: second.kt
}
public final val ONE: R|second/Second| = Q|second/Second|.R|second/Second.THREE|
public get(): R|second/Second|
public final fun foo(f: R|first/First|): R|kotlin/Unit| {
public final fun foo(f: R|first/First|): R|kotlin/Int| {
^foo when (R|<local>/f|) {
==($subj$, R|second/ONE|) -> {
Int(1)
@@ -53,7 +53,7 @@ FILE: second.kt
}
}
public final fun bar(s: R|second/Second|): R|kotlin/Unit| {
public final fun bar(s: R|second/Second|): R|kotlin/Int| {
^bar when (R|<local>/s|) {
==($subj$, R|first/THREE|) -> {
Int(3)