[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
@@ -2,7 +2,7 @@ FILE: defaultArguments.kt
public final fun foo(): R|kotlin/Int| {
^foo Int(1)
}
public final fun test(x: R|kotlin/Any|, y: R|kotlin/String| = (R|<local>/x| as R|kotlin/String|), z: R|kotlin/Int| = R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
public final fun test(x: R|kotlin/Any|, y: R|kotlin/String| = (R|<local>/x| as R|kotlin/String|), z: R|kotlin/Int| = R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/foo|()
}
)): R|kotlin/Unit| {
@@ -14,18 +14,18 @@ FILE: flowFromInplaceLambda.kt
^myRun R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()
}
public final fun test_1(x: R|kotlin/Any|): R|kotlin/Unit| {
R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
^ (R|<local>/x| as R|kotlin/Int|)
}
)
R|/takeInt|(R|<local>/x|)
}
public final fun test_2(x: R|kotlin/Any|, y: R|kotlin/Any|): R|kotlin/Unit| {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
R|<local>/y|.<Unresolved name: inc>#()
^ (R|<local>/x| as R|kotlin/Int|)
}
)), (R|<local>/y| as R|kotlin/Int|), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
)), (R|<local>/y| as R|kotlin/Int|), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
R|<local>/x|.R|kotlin/Int.inc|()
R|<local>/y|.R|kotlin/Int.inc|()
^ Int(1)
@@ -36,12 +36,12 @@ FILE: flowFromInplaceLambda.kt
R|/takeInt|(R|<local>/a|)
}
public final fun test_3(x: R|kotlin/Any|, y: R|kotlin/Any|): R|kotlin/Unit| {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
R|<local>/y|.<Unresolved name: inc>#()
(R|<local>/x| as R|kotlin/Int|)
^ R|/materialize|<R|kotlin/Int|>()
}
)), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
)), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
(R|<local>/y| as R|kotlin/Int|)
R|<local>/x|.<Unresolved name: inc>#()
R|<local>/y|.R|kotlin/Int.inc|()
@@ -53,11 +53,11 @@ FILE: flowFromInplaceLambda.kt
R|/takeInt|(R|<local>/a|)
}
public final fun test_4(x: R|kotlin/Any|, y: R|kotlin/Any|): R|kotlin/Unit| {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| {
lval a: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|/id|<R|kotlin/Int|>(R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=NoInline> {
R|<local>/y|.<Unresolved name: inc>#()
^ (R|<local>/x| as R|kotlin/Int|)
}
)), (R|<local>/y| as R|kotlin/Int|), R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| {
)), (R|<local>/y| as R|kotlin/Int|), R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=NoInline> {
R|<local>/x|.<Unresolved name: inc>#()
R|<local>/y|.R|kotlin/Int.inc|()
^ Int(1)
@@ -68,18 +68,18 @@ FILE: flowFromInplaceLambda.kt
R|/takeInt|(R|<local>/a|)
}
public final fun test_5(): R|kotlin/Unit| {
lval x: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
lval x: R|kotlin/Int| = R|/select|<R|kotlin/Int|>(vararg(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/Int|>()
}
), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
), R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/Int|>()
}
)))
R|/takeInt|(R|<local>/x|)
}
public final fun test_6(): R|kotlin/Unit| {
lval x: R|kotlin/String| = R|/id|<R|kotlin/String|>(R|/myRun|<R|kotlin/String|>(<L> = myRun@fun <anonymous>(): R|kotlin/String| {
^ R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <kind=EXACTLY_ONCE> {
lval x: R|kotlin/String| = R|/id|<R|kotlin/String|>(R|/myRun|<R|kotlin/String|>(<L> = myRun@fun <anonymous>(): R|kotlin/String| <inline=NoInline> {
^ R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/String|>()
}
)
@@ -12,7 +12,7 @@ FILE: initBlockAndInPlaceLambda.kt
}
init {
lval c: R|C?| = R|<local>/a|.R|/A.b|?.{ $subj$.R|kotlin/let|<R|B|, R|C|>(<L> = let@fun <anonymous>(it: R|B|): R|C| <kind=EXACTLY_ONCE> {
lval c: R|C?| = R|<local>/a|.R|/A.b|?.{ $subj$.R|kotlin/let|<R|B|, R|C|>(<L> = let@fun <anonymous>(it: R|B|): R|C| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/C.C|(R|<local>/a|, R|<local>/it|)
}
) }
@@ -5,7 +5,7 @@ FILE: inplaceLambdaInControlFlowExpressions.kt
public final fun test_1(): R|kotlin/Unit| {
lval x: R|kotlin/String| = when () {
Boolean(true) -> {
R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/String|>()
}
)
@@ -18,7 +18,7 @@ FILE: inplaceLambdaInControlFlowExpressions.kt
}
public final fun test_2(): R|kotlin/Unit| {
lval x: R|kotlin/String| = try {
R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <kind=EXACTLY_ONCE> {
R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/String|>()
}
)
@@ -29,7 +29,7 @@ FILE: inplaceLambdaInControlFlowExpressions.kt
}
public final fun test_3(): R|kotlin/Unit| {
lval x: R|kotlin/String| = R|kotlin/run|<R|kotlin/String?|>(<L> = run@fun <anonymous>(): R|kotlin/String?| <kind=EXACTLY_ONCE> {
lval x: R|kotlin/String| = R|kotlin/run|<R|kotlin/String?|>(<L> = run@fun <anonymous>(): R|kotlin/String?| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/materialize|<R|kotlin/String?|>()
}
)!!
@@ -55,7 +55,7 @@ FILE: jumps.kt
R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()
}
public final fun test_6(): R|kotlin/Unit| {
R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
^@run Unit
}
)
@@ -34,7 +34,7 @@ digraph lambdaAsReturnOfLambda_kt {
13 [label="Exit function anonymousFunction" style="filled" fillcolor=red];
}
3 [label="Postponed exit from lambda"];
4 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| {
4 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
R|/bar|(R|<local>/foo|)
}
"];
@@ -1,6 +1,6 @@
FILE: lambdaAsReturnOfLambda.kt
public final val x4: R|(kotlin/String) -> kotlin/Unit| = R|/run|<R|(kotlin/String) -> kotlin/Unit|>(<L> = run@fun <anonymous>(): R|(kotlin/String) -> kotlin/Unit| {
^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| {
public final val x4: R|(kotlin/String) -> kotlin/Unit| = R|/run|<R|(kotlin/String) -> kotlin/Unit|>(<L> = run@fun <anonymous>(): R|(kotlin/String) -> kotlin/Unit| <inline=NoInline> {
^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
R|/bar|(R|<local>/foo|)
}
@@ -15,7 +15,7 @@ FILE: lambdaReturningObject.kt
^MyOut R|kotlin/TODO|()
}
public final fun foo(): R|kotlin/Unit| {
R|/bar|(R|/MyOut|<R|IrStarProjectionImpl|>(<L> = MyOut@fun <anonymous>(): R|IrStarProjectionImpl| {
R|/bar|(R|/MyOut|<R|IrStarProjectionImpl|>(<L> = MyOut@fun <anonymous>(): R|IrStarProjectionImpl| <inline=NoInline> {
^ Q|IrStarProjectionImpl|
}
))
@@ -205,7 +205,7 @@ digraph lambdas_kt {
}
64 [label="Postponed exit from lambda"];
65 [label="Function call: R|/getInt|(...)"];
66 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
66 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
^test_3 Int(1)
}
)"];
@@ -257,7 +257,7 @@ digraph lambdas_kt {
}
80 [label="Postponed exit from lambda"];
81 [label="Function call: R|/getInt|(...)"];
82 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
82 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
^test_4 Int(1)
}
)"];
@@ -5,7 +5,7 @@ FILE: lambdas.kt
public final fun test_1(x: R|kotlin/Any?|): R|kotlin/Unit| {
when () {
(R|<local>/x| is R|kotlin/Int|) -> {
R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
R|<local>/x|.R|kotlin/Int.inc|()
}
)
@@ -16,7 +16,7 @@ FILE: lambdas.kt
public final fun test_2(x: R|kotlin/Any?|): R|kotlin/Unit| {
when () {
(R|<local>/x| is R|kotlin/Int|) -> {
lval lambda: R|() -> kotlin/Int| = fun <anonymous>(): R|kotlin/Int| {
lval lambda: R|() -> kotlin/Int| = fun <anonymous>(): R|kotlin/Int| <inline=Unknown> {
^ R|<local>/x|.R|kotlin/Int.inc|()
}
@@ -29,13 +29,13 @@ FILE: lambdas.kt
^getInt Int(1)
}
public final fun test_3(): R|kotlin/Int| {
^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
^test_3 Int(1)
}
)
}
public final fun test_4(): R|kotlin/Int| {
^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
^test_4 Int(1)
}
)
@@ -163,7 +163,7 @@ digraph localClassesWithImplicit_kt {
}
37 [label="Postponed exit from lambda"];
38 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)"];
39 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
39 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
^ when () {
(R|<local>/b| is R|kotlin/String|) -> {
@@ -245,7 +245,7 @@ digraph localClassesWithImplicit_kt {
}
72 [label="Postponed exit from lambda"];
73 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)"];
74 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
74 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/b|.<Unresolved name: length>#
R|<local>/a|.R|kotlin/String.length|
^ this@R|/A|.R|/A.baz|()
@@ -364,7 +364,7 @@ digraph localClassesWithImplicit_kt {
}
100 [label="Postponed exit from lambda"];
101 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)"];
102 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
102 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
^ when () {
(R|<local>/b| is R|kotlin/String|) -> {
@@ -446,7 +446,7 @@ digraph localClassesWithImplicit_kt {
}
135 [label="Postponed exit from lambda"];
136 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)"];
137 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
137 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
R|<local>/b|.<Unresolved name: length>#
^ this@R|/<anonymous>|.R|/<anonymous>.baz|()
@@ -15,7 +15,7 @@ FILE: localClassesWithImplicit.kt
}
public final fun foo(): R|kotlin/Int| {
^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
^ when () {
(R|<local>/b| is R|kotlin/String|) -> {
@@ -32,7 +32,7 @@ FILE: localClassesWithImplicit.kt
}
public final fun bar(): R|kotlin/Int| {
^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/b|.<Unresolved name: length>#
R|<local>/a|.R|kotlin/String.length|
^ this@R|/A|.R|/A.baz|()
@@ -52,7 +52,7 @@ FILE: localClassesWithImplicit.kt
}
public final fun foo(): R|kotlin/Int| {
^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
^ when () {
(R|<local>/b| is R|kotlin/String|) -> {
@@ -69,7 +69,7 @@ FILE: localClassesWithImplicit.kt
}
public final fun bar(): R|kotlin/Int| {
^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <kind=UNKNOWN> {
^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
R|<local>/a|.R|kotlin/String.length|
R|<local>/b|.<Unresolved name: length>#
^ this@R|/<anonymous>|.R|/<anonymous>.baz|()
@@ -7,8 +7,8 @@ FILE: postponedLambdaInConstructor.kt
}
public final class B : R|A| {
public constructor(s: R|kotlin/String|): R|B| {
super<R|A|>(R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|() -> kotlin/String|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|() -> kotlin/String| <kind=EXACTLY_ONCE> {
^ let@fun <anonymous>(): R|kotlin/String| {
super<R|A|>(R|<local>/s|.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> {
^ let@fun <anonymous>(): R|kotlin/String| <inline=Unknown> {
^ R|<local>/it|
}
@@ -2,7 +2,7 @@ FILE: postponedLambdas.kt
public final inline fun foo(vararg x: R|kotlin/Array<out kotlin/Any>|): R|kotlin/Unit| {
}
public final fun test(a: R|kotlin/Any|, b: R|kotlin/Any|, c: R|kotlin/Any|): R|kotlin/Unit| {
R|/foo|(vararg(R|<local>/a|, foo@fun <anonymous>(): R|kotlin/String| <kind=UNKNOWN> {
R|/foo|(vararg(R|<local>/a|, foo@fun <anonymous>(): R|kotlin/String| <inline=Unknown, kind=UNKNOWN> {
^ String()
}
, R|<local>/b|))
@@ -11,7 +11,7 @@ FILE: propertiesAndInitBlocks.kt
public set(value: R|kotlin/Int|): R|kotlin/Unit| {
F|/x2| = Int(1)
}
public final val x3: R|kotlin/Unit| = R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=UNKNOWN> {
public final val x3: R|kotlin/Unit| = R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
local final fun foo(): R|kotlin/Unit| {
lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
throw R|java/lang/Exception.Exception|()
@@ -14,7 +14,7 @@ FILE: returnValuesFromLambda.kt
}
public final fun test_1(b: R|kotlin/Boolean|): R|kotlin/Unit| {
lval x: R|A| = R|kotlin/run|<R|A|>(<L> = run@fun <anonymous>(): R|A| <kind=EXACTLY_ONCE> {
lval x: R|A| = R|kotlin/run|<R|A|>(<L> = run@fun <anonymous>(): R|A| <inline=Inline, kind=EXACTLY_ONCE> {
when () {
R|<local>/b| -> {
^@run R|/B.B|()
@@ -26,13 +26,13 @@ FILE: returnValuesFromLambda.kt
)
}
public final fun test_2(): R|kotlin/Unit| {
lval x: R|C| = R|kotlin/run|<R|C|>(<L> = run@fun <anonymous>(): R|C| <kind=EXACTLY_ONCE> {
lval x: R|C| = R|kotlin/run|<R|C|>(<L> = run@fun <anonymous>(): R|C| <inline=Inline, kind=EXACTLY_ONCE> {
^@run R|/C.C|()
}
)
}
public final fun test_3(): R|kotlin/Unit| {
lval x: R|kotlin/Nothing| = R|kotlin/run|<R|kotlin/Nothing|>(<L> = run@fun <anonymous>(): R|kotlin/Nothing| <kind=EXACTLY_ONCE> {
lval x: R|kotlin/Nothing| = R|kotlin/run|<R|kotlin/Nothing|>(<L> = run@fun <anonymous>(): R|kotlin/Nothing| <inline=Inline, kind=EXACTLY_ONCE> {
^test_3 Unit
}
)