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

import androidx.compose.runtime.*
import kotlin.reflect.KProperty

fun interface ThemeToken<T> {

    @Composable
    @ReadOnlyComposable
    fun MaterialTheme.resolve(): T

    @Composable
    @ReadOnlyComposable
    operator fun getValue(thisRef: Any?, property: KProperty<*>) = MaterialTheme.resolve()
}

@get:Composable
val background by ThemeToken { background }

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

interface ThemeToken<T>  {
  @Composable
  @ReadOnlyComposable
  @FunctionKeyMeta(key = -1767475098, startOffset = 215, endOffset = 245)
  abstract fun MaterialTheme.resolve(%composer: Composer?, %changed: Int): T
  @Composable
  @ReadOnlyComposable
  @FunctionKeyMeta(key = -625725893, startOffset = 348, endOffset = 425)
  open fun getValue(thisRef: Any?, property: KProperty<*>, %composer: Composer?, %changed: Int): T {
    %composer.startReplaceGroup(<>)
    sourceInformation(%composer, "C(getValue)N(thisRef,property)<resolv...>:Test.kt")
    if (isTraceInProgress()) {
      traceEventStart(<>, %changed, -1, <>)
    }
    val tmp0 = MaterialTheme.resolve(%composer, 0b0110 or 0b01110000 and %changed shr 0b0011)
    if (isTraceInProgress()) {
      traceEventEnd()
    }
    %composer.endReplaceGroup()
    return tmp0
  }
}
val background: ThemeToken<Int> = class <no name provided> : ThemeToken<Int> {
  @Composable
  @FunctionKeyMeta(key = 1185942797, startOffset = 522, endOffset = 536)
  override fun MaterialTheme.resolve(%composer: Composer?, %changed: Int): Int {
    %composer.startReplaceGroup(<>)
    sourceInformation(%composer, "C(resolve):Test.kt")
    if (isTraceInProgress()) {
      traceEventStart(<>, %changed, -1, <>)
    }
    val tmp0 = %this%ThemeToken.background
    if (isTraceInProgress()) {
      traceEventEnd()
    }
    %composer.endReplaceGroup()
    return tmp0
  }
}
<no name provided>()
  @Composable @JvmName(name = "getBackground") @FunctionKeyMeta(key = 43948912, startOffset = 493, endOffset = 536)
  get() {
    sourceInformationMarkerStart(%composer, <>, "C(<get-background>)<ThemeT...>:Test.kt")
    if (isTraceInProgress()) {
      traceEventStart(<>, %changed, -1, <>)
    }
    val tmp0 = .background%delegate.getValue(null, ::background, %composer, 0b0110)
    if (isTraceInProgress()) {
      traceEventEnd()
    }
    sourceInformationMarkerEnd(%composer)
    return tmp0
  }
