[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
@@ -75,7 +75,7 @@ FILE: returns.kt
public final fun test_4(a: R|kotlin/Any?|): R|kotlin/Unit| {
lval s: R|kotlin/String?| = (R|<local>/a| as? R|kotlin/String|)
lval length: R|kotlin/Int| = R|<local>/s|?.{ $subj$.R|/ext| } ?: ^test_4 Unit
R|/runHigherOrder|<R|kotlin/Int|>(<L> = runHigherOrder@fun <anonymous>(): R|kotlin/Int| {
R|/runHigherOrder|<R|kotlin/Int|>(<L> = runHigherOrder@fun <anonymous>(): R|kotlin/Int| <inline=NoInline> {
^ R|<local>/s|.R|kotlin/String.length|
}
)
@@ -21,7 +21,7 @@ FILE: kt10240.kt
public final fun println(arg: R|kotlin/Int|): R|kotlin/Unit| {
}
public final fun d(): R|kotlin/Unit| {
R|/myRun|(<L> = myRun@fun <anonymous>(): R|kotlin/Unit| {
R|/myRun|(<L> = myRun@fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> {
lvar koko: R|kotlin/String?| = String(Alpha)
while(!=(R|<local>/koko|, Null(null))) {
R|/println|(R|<local>/koko|.R|kotlin/String.length|)
@@ -30,7 +30,7 @@ FILE: kt10240.kt
}
)
R|/myRun|(<L> = myRun@fun <anonymous>(): R|kotlin/Unit| {
R|/myRun|(<L> = myRun@fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> {
lvar koko: R|kotlin/String?| = String(Omega)
while(!=(R|<local>/koko|, Null(null))) {
R|/println|(R|<local>/koko|.R|kotlin/String.length|)
@@ -10,7 +10,7 @@ FILE: inPlaceLambdas.kt
public final fun test_1(x: R|kotlin/Any?|): R|kotlin/Unit| {
when () {
(R|<local>/x| is R|A|) -> {
R|kotlin/run|<R|kotlin/Unit|>(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|kotlin/Unit|>(<L> = run@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
R|<local>/x|.R|/A.foo|()
}
)
@@ -19,7 +19,7 @@ FILE: inPlaceLambdas.kt
}
public final fun test_2(x: R|kotlin/Any?|): R|kotlin/Unit| {
R|kotlin/run|<R|B|>(<L> = run@fun <anonymous>(): R|B| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|B|>(<L> = run@fun <anonymous>(): R|B| <inline=Inline, kind=EXACTLY_ONCE> {
^ (R|<local>/x| as R|B|)
}
)
@@ -28,7 +28,7 @@ FILE: inPlaceLambdas.kt
public final fun test_3(x: R|kotlin/Any?|): R|kotlin/Unit| {
when () {
(R|<local>/x| is R|A|) -> {
R|kotlin/run|<R|B|>(<L> = run@fun <anonymous>(): R|B| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|B|>(<L> = run@fun <anonymous>(): R|B| <inline=Inline, kind=EXACTLY_ONCE> {
R|<local>/x|.R|/A.foo|()
^ (R|<local>/x| as R|B|)
}
@@ -29,7 +29,7 @@ FILE: lambdaInWhenBranch.kt
private final fun foo(p: R|Sealed|): R|kotlin/Unit| {
when (R|<local>/p|) {
($subj$ is R|SubClass1|) -> {
String().R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|kotlin/String| <kind=EXACTLY_ONCE> {
String().R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|<local>/it|
}
)
@@ -50,9 +50,9 @@ FILE: implicitReceivers.kt
<Unresolved name: foo>#()
}
public final fun test_3(a: R|kotlin/Any|, b: R|kotlin/Any|, c: R|kotlin/Any|): R|kotlin/Unit| {
R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/a|, <L> = wa@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
^ R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/b|, <L> = wb@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/c|, <L> = wc@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/a|, <L> = wa@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/b|, <L> = wb@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(R|<local>/c|, <L> = wc@fun R|kotlin/Any|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
(this@R|special/anonymous| as R|A|)
this@R|special/anonymous|.R|/A.foo|()
this@R|special/anonymous|.R|/A.foo|()
@@ -20,7 +20,7 @@ FILE: safeCalls.kt
(R|<local>/x| as? R|A|)?.{ $subj$.R|/A.bar|(R|<local>/x|) }
}
public final fun test_3(x: R|kotlin/Any|): R|kotlin/Unit| {
(R|<local>/x| as? R|A|)?.{ $subj$.R|/A.bar|(R|<local>/x|) }?.{ $subj$.R|/foo|(R|<local>/x|.R|/A.bool|()) }?.{ $subj$.R|/let|(<L> = let@fun <anonymous>(): R|kotlin/Unit| {
(R|<local>/x| as? R|A|)?.{ $subj$.R|/A.bar|(R|<local>/x|) }?.{ $subj$.R|/foo|(R|<local>/x|.R|/A.bool|()) }?.{ $subj$.R|/let|(<L> = let@fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> {
R|<local>/x|.R|/A.bool|()
}
) }
@@ -33,7 +33,7 @@ FILE: safeCalls.kt
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
}
public final fun test_5(x: R|A?|): R|kotlin/Unit| {
R|<local>/x|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/Nothing|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/Nothing| <kind=EXACTLY_ONCE> {
R|<local>/x|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/Nothing|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/Nothing| <inline=Inline, kind=EXACTLY_ONCE> {
^test_5 Unit
}
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
@@ -42,7 +42,7 @@ FILE: smartcastToNothing.kt
}
R|<local>/s|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/Int| <kind=EXACTLY_ONCE> {
R|<local>/s|?.{ $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(<L> = let@fun <anonymous>(it: R|A|): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|<local>/it|.R|/A.a|
}
) }