[go: nahoru, domu]

blob: c804418c095f0f6e69547ad825aed38dccc9bf8c [file] [log] [blame]
//
// Source
// ------------------------------------------
import androidx.compose.runtime.*
@Composable
@NonRestartableComposable
fun Test(condition: Boolean) {
Text("Before outer")
InlineLinearA {
Text("Before inner")
InlineLinearB inner@{
Text("Before return")
if (condition) return@inner
Text("After return")
}
Text("After inner")
}
Text("Before outer")
}
//
// Transformed IR
// ------------------------------------------
@Composable
@NonRestartableComposable
fun Test(condition: Boolean, %composer: Composer?, %changed: Int) {
sourceInformationMarkerStart(%composer, <>, "C(Test)<Text("...>,<Inline...>,<Text("...>:Test.kt")
if (isTraceInProgress()) {
traceEventStart(<>, %changed, -1, <>)
}
Text("Before outer", %composer, 0b0110)
InlineLinearA({ %composer: Composer?, %changed: Int ->
sourceInformationMarkerStart(%composer, <>, "C<Text("...>,<Inline...>,<Text("...>:Test.kt")
Text("Before inner", %composer, 0b0110)
InlineLinearB({ %composer: Composer?, %changed: Int ->
%composer.startReplaceableGroup(<>)
sourceInformation(%composer, "C<Text("...>,<Text("...>:Test.kt")
Text("Before return", %composer, 0b0110)
if (condition) {
%composer.endReplaceableGroup()
return@InlineLinearB
}
Text("After return", %composer, 0b0110)
%composer.endReplaceableGroup()
}, %composer, 0)
Text("After inner", %composer, 0b0110)
sourceInformationMarkerEnd(%composer)
}, %composer, 0)
Text("Before outer", %composer, 0b0110)
if (isTraceInProgress()) {
traceEventEnd()
}
sourceInformationMarkerEnd(%composer)
}