[FIR] Save inline status of lambda after resolution

This commit is contained in:
Dmitriy Novozhilov
2021-03-31 14:58:59 +03:00
committed by TeamCityServer
parent a4b9e2502c
commit 5ebd24eac5
183 changed files with 496 additions and 437 deletions
@@ -40,7 +40,7 @@ FILE: invokeAmbiguity.kt
^ R|kotlin/TODO|()
}
public final fun box(d: R|D|): R|kotlin/Unit| {
R|<local>/d|.R|/attr|.R|/B.invoke|(<L> = attr@fun <anonymous>(): R|kotlin/Unit| {
R|<local>/d|.R|/attr|.R|/B.invoke|(<L> = attr@fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> {
^@attr Unit
}
).R|kotlin/CharSequence.length|
@@ -1,6 +1,6 @@
FILE: kt37056.kt
public final fun case1(a: R|A?|): R|kotlin/Unit| {
lval test: R|kotlin/String?| = R|<local>/a|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/String|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/String| <kind=EXACTLY_ONCE> {
lval test: R|kotlin/String?| = R|<local>/a|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/String|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
Q|Case1|.R|/Case1.Companion.invoke|(R|<local>/it|)
Q|Case1|.R|/Case1.Companion.invoke|(R|<local>/it|)
^ Q|Case1|.R|/Case1.Companion.invoke|(R|/A.A|())
@@ -6,14 +6,14 @@ FILE: lambdaAsReceiver.kt
public final fun R|kotlin/String|.bar(): R|kotlin/Unit| {
}
public final fun main1(): R|kotlin/Unit| {
fun <anonymous>(): R|kotlin/String| {
fun <anonymous>(): R|kotlin/String| <inline=Unknown> {
^ String()
}
.R|/foo|()
String().R|/foo|()
}
public final fun main2(): R|kotlin/Unit| {
fun <anonymous>(): R|kotlin/String| {
fun <anonymous>(): R|kotlin/String| <inline=Unknown> {
^ String()
}
.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /bar>#()
@@ -1,8 +1,8 @@
FILE: safeCallOnTypeAlias.kt
public final typealias MyTypeAlias = R|() -> kotlin/String?|
public final fun foo(x: R|MyTypeAlias|): R|kotlin/Unit| {
R|<local>/x|?.{ $subj$.R|kotlin/let|<R|() -> kotlin/String?|, R|kotlin/String?|>(<L> = let@fun <anonymous>(y: R|() -> kotlin/String?|): R|kotlin/String?| <kind=EXACTLY_ONCE> {
^ R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/String?|>|()?.{ $subj$.R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(<L> = let@fun <anonymous>(result: R|kotlin/String|): R|kotlin/String| <kind=EXACTLY_ONCE> {
R|<local>/x|?.{ $subj$.R|kotlin/let|<R|() -> kotlin/String?|, R|kotlin/String?|>(<L> = let@fun <anonymous>(y: R|() -> kotlin/String?|): R|kotlin/String?| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/String?|>|()?.{ $subj$.R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(<L> = let@fun <anonymous>(result: R|kotlin/String|): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/bar|(R|<local>/result|)
}
) }
@@ -6,13 +6,13 @@ FILE: main.kt
^ Int(1)
}
public final fun bar(a: R|A|): R|kotlin/Unit| {
R|<local>/a|.R|/foo|.R|/checkType|<R|kotlin/Int|>(checkType@fun R|CheckTypeInv<kotlin/Int>|.<anonymous>(): R|kotlin/Unit| {
R|<local>/a|.R|/foo|.R|/checkType|<R|kotlin/Int|>(checkType@fun R|CheckTypeInv<kotlin/Int>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/Int|>()
}
)
}
public final fun R|JavaClass|.bar(a: R|A|): R|kotlin/Unit| {
R|<local>/a|.R|/foo|.R|/checkType|<R|kotlin/Int|>(checkType@fun R|CheckTypeInv<kotlin/Int>|.<anonymous>(): R|kotlin/Unit| {
R|<local>/a|.R|/foo|.R|/checkType|<R|kotlin/Int|>(checkType@fun R|CheckTypeInv<kotlin/Int>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/Int|>()
}
)