//
// Source
// ------------------------------------------

import androidx.compose.runtime.Composable

@Composable inline fun Test(crossinline content: () -> Unit) {
    Box {
        Lazy {
            val items = @Composable { content() }
        }
    }
}

@Composable inline fun TestComposable(crossinline content: @Composable () -> Unit) {
    Box {
        Lazy {
            val items = @Composable { content() }
        }
    }
}

@Composable inline fun TestSuspend(crossinline content: suspend () -> Unit) {
    Box {
        Lazy {
            val items = suspend { content() }
        }
    }
}

//
// Transformed IR
// ------------------------------------------

@Composable
@FunctionKeyMeta(key = -1745160432, startOffset = 88, endOffset = 296)
fun Test(crossinline content: Function0<Unit>, %composer: Composer?, %changed: Int) {
  sourceInformationMarkerStart(%composer, <>, "CC(Test)<Lazy>,<Box>:Test.kt")
  Box({
    Lazy({
      val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int ->
        sourceInformation(%composer, "C:Test.kt")
        if (%composer.shouldExecute(%changed and 0b0011 != 0b0010, %changed and 0b0001)) {
          if (isTraceInProgress()) {
            traceEventStart(<>, %changed, -1, <>)
          }
          content()
          if (isTraceInProgress()) {
            traceEventEnd()
          }
        } else {
          %composer.skipToGroupEnd()
        }
      }
    }, %composer, 0)
  }, %composer, 0)
  sourceInformationMarkerEnd(%composer)
}
@Composable
@FunctionKeyMeta(key = -954717885, startOffset = 329, endOffset = 559)
fun TestComposable(crossinline content: Function2<Composer, Int, Unit>, %composer: Composer?, %changed: Int) {
  sourceInformationMarkerStart(%composer, <>, "CC(TestComposable)<Lazy>,<Box>:Test.kt")
  Box({
    Lazy({
      val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int ->
        sourceInformation(%composer, "C<conten...>:Test.kt")
        if (%composer.shouldExecute(%changed and 0b0011 != 0b0010, %changed and 0b0001)) {
          if (isTraceInProgress()) {
            traceEventStart(<>, %changed, -1, <>)
          }
          content(%composer, 0)
          if (isTraceInProgress()) {
            traceEventEnd()
          }
        } else {
          %composer.skipToGroupEnd()
        }
      }
    }, %composer, 0)
  }, %composer, 0)
  sourceInformationMarkerEnd(%composer)
}
@Composable
@FunctionKeyMeta(key = -2055565320, startOffset = 592, endOffset = 811)
fun TestSuspend(crossinline content: SuspendFunction0<Unit>, %composer: Composer?, %changed: Int) {
  sourceInformationMarkerStart(%composer, <>, "CC(TestSuspend)<Lazy>,<Box>:Test.kt")
  Box({
    Lazy({
      val items = suspend {
        content()
      }
    }, %composer, 0)
  }, %composer, 0)
  sourceInformationMarkerEnd(%composer)
}
