diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index f3c969312a5a7..5dbbf1c91e07f 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -156,6 +156,7 @@ class Fir2IrLazyProperty( } } fir.delegate != null -> { + fir.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) callablesGenerator.createBackingField( this@Fir2IrLazyProperty, fir, diff --git a/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.ir.txt new file mode 100644 index 0000000000000..f52c132b9ec15 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.ir.txt @@ -0,0 +1,105 @@ +MODULE_FRAGMENT + FILE fqName:home fileName:main.kt + FUN name:Home visibility:public modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:1 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + SET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=kotlin.Unit origin=null + CALL 'public abstract fun startRestartGroup (key: kotlin.Int): androidx.compose.runtime.Composer declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.Composer origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=289538687 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="C(Home)57@262L139:main.kt#1wrmn" + WHEN type=kotlin.Unit origin=IF + BRANCH + if: WHEN type=kotlin.Boolean origin=OROR + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + arg1: CONST Int type=kotlin.Int value=0 + then: CONST Boolean type=kotlin.Boolean value=true + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public abstract fun (): kotlin.Boolean declared in androidx.compose.runtime.Composer' type=kotlin.Boolean origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + then: BLOCK type=kotlin.Unit origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventStart (key: kotlin.Int, dirty1: kotlin.Int, dirty2: kotlin.Int, info: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + key: CONST Int type=kotlin.Int value=289538687 + dirty1: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + dirty2: CONST Int type=kotlin.Int value=-1 + info: CONST String type=kotlin.String value="home.Home (main.kt:56)" + CALL 'public final fun Column (content: @[ExtensionFunctionType] kotlin.Function3, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit [inline] declared in compose.ui' type=kotlin.Unit origin=null + content: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:compose.ui.ColumnScope, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + $receiver: VALUE_PARAMETER name:$this$Column type:compose.ui.ColumnScope + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:1 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + CALL 'public final fun sourceInformationMarkerStart (composer: androidx.compose.runtime.Composer, key: kotlin.Int, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=735130274 + sourceInformation: CONST String type=kotlin.String value="C58@304L28,59@341L54:main.kt#1wrmn" + COMPOSITE type=kotlin.Unit origin=null + VAR name:dominantColorState type:util.DominantColorState [val] + CALL 'public final fun rememberDominantColorState (defaultColor: compose.ui.Color?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): util.DominantColorState declared in util.DominantColorStateKt' type=util.DominantColorState origin=null + defaultColor: COMPOSITE type=kotlin.Nothing? origin=DEFAULT_VALUE + CONST Null type=kotlin.Nothing? value=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + $default: CONST Int type=kotlin.Int value=1 + CALL 'public final fun DynamicThemePrimaryColorsFromImage (dominantColorState: util.DominantColorState?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): kotlin.Unit declared in util.DominantColorStateKt' type=kotlin.Unit origin=null + dominantColorState: GET_VAR 'val dominantColorState: util.DominantColorState [val] declared in home.Home.' type=util.DominantColorState origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + $default: CONST Int type=kotlin.Int value=0 + CALL 'public final fun sourceInformationMarkerEnd (composer: androidx.compose.runtime.Composer): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventEnd (): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun skipToGroupEnd (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + BLOCK type=kotlin.Unit origin=null + BLOCK type=kotlin.Unit origin=SAFE_CALL + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:androidx.compose.runtime.ScopeUpdateScope? [val] + CALL 'public abstract fun endRestartGroup (): androidx.compose.runtime.ScopeUpdateScope? declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: GET_VAR 'val tmp_0: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.Home' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + arg1: CONST Null type=kotlin.Any? value=null + then: CONST Null type=kotlin.Any? value=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun updateScope (block: kotlin.Function2): kotlin.Unit declared in androidx.compose.runtime.ScopeUpdateScope' type=kotlin.Unit origin=null + $this: GET_VAR 'val tmp_0: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.Home' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + block: FUN_EXPR type=kotlin.Function2 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $force:kotlin.Int) returnType:kotlin.Unit + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? + VALUE_PARAMETER name:$force index:1 type:kotlin.Int + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun ($composer: androidx.compose.runtime.Composer?, $force: kotlin.Int): kotlin.Unit declared in home.Home' + CALL 'public final fun Home ($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit declared in home' type=kotlin.Unit origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CALL 'internal final fun updateChangedFlags (flags: kotlin.Int): kotlin.Int declared in androidx.compose.runtime' type=kotlin.Int origin=null + flags: CALL 'public final fun or (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 diff --git a/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.kt b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.kt new file mode 100644 index 0000000000000..5a6c35a8ad207 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.kt @@ -0,0 +1,62 @@ +// DUMP_IR + +// MODULE: lib +// MODULE_KIND: LibraryBinary +// FILE: compose/ui/foo.kt +package compose.ui + +import androidx.compose.runtime.Composable + +class Color(val r: Int, val g: Int, val b:Int) + +interface ColumnScope { +} + +@Composable +inline fun Column(content: @Composable ColumnScope.() -> Unit) { +} + +// MODULE: main(lib) +// FILE: util/DominantColorState.kt +package util + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue +import compose.ui.Color + +@Composable +fun rememberDominantColorState(defaultColor: Color = Color(0, 0, 0)): DominantColorState = remember { + DominantColorState(defaultColor) +} + +@Composable +fun DynamicThemePrimaryColorsFromImage( + dominantColorState: DominantColorState = rememberDominantColorState() +) { +} + +@Stable +class DominantColorState(private val defaultColor: Color) { + var color by mutableStateOf(defaultColor) + private set +} + +// FILE: main.kt +package home + +import androidx.compose.runtime.Composable +import compose.ui.Column +import util.DynamicThemePrimaryColorsFromImage +import util.rememberDominantColorState + +@Composable +fun Home() { + Column { + val dominantColorState = rememberDominantColorState() + DynamicThemePrimaryColorsFromImage(dominantColorState) + } +} \ No newline at end of file diff --git a/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.txt b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.txt new file mode 100644 index 0000000000000..412029fcbc75d --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.txt @@ -0,0 +1,5 @@ +public final class home/MainKt { + // source: 'main.kt' + private final static method Home$lambda$1(p0: int, p1: androidx.compose.runtime.Composer, p2: int): kotlin.Unit + public final static method Home(p0: androidx.compose.runtime.Composer, p1: int): void +} \ No newline at end of file diff --git a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt index db6bcb5394364..5f582f94a7c24 100644 --- a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt +++ b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt @@ -42,7 +42,7 @@ MODULE_FRAGMENT key: CONST Int type=kotlin.Int value=-1263890955 dirty1: GET_VAR '$changed: kotlin.Int declared in home.ComposableSingletons$MainKt.lambda-1.' type=kotlin.Int origin=null dirty2: CONST Int type=kotlin.Int value=-1 - info: CONST String type=kotlin.String value="home.ComposableSingletons$MainKt.lambda-1. (main.kt:57)" + info: CONST String type=kotlin.String value="home.ComposableSingletons$MainKt.lambda-1. (main.kt:60)" GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit WHEN type=kotlin.Unit origin=IF BRANCH @@ -76,7 +76,7 @@ MODULE_FRAGMENT key: CONST Int type=kotlin.Int value=289538687 CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null - sourceInformation: CONST String type=kotlin.String value="C(Home)54@259L151:main.kt#1wrmn" + sourceInformation: CONST String type=kotlin.String value="C(Home)57@262L151:main.kt#1wrmn" WHEN type=kotlin.Unit origin=IF BRANCH if: WHEN type=kotlin.Boolean origin=OROR @@ -99,7 +99,7 @@ MODULE_FRAGMENT key: CONST Int type=kotlin.Int value=289538687 dirty1: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null dirty2: CONST Int type=kotlin.Int value=-1 - info: CONST String type=kotlin.String value="home.Home (main.kt:53)" + info: CONST String type=kotlin.String value="home.Home (main.kt:56)" CALL 'public final fun Column (content: @[ExtensionFunctionType] kotlin.Function3, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit [inline] declared in compose.ui' type=kotlin.Unit origin=null content: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:compose.ui.ColumnScope, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit @@ -112,8 +112,8 @@ MODULE_FRAGMENT BLOCK type=kotlin.Unit origin=null CALL 'public final fun sourceInformationMarkerStart (composer: androidx.compose.runtime.Composer, key: kotlin.Int, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null - key: CONST Int type=kotlin.Int value=735127670 - sourceInformation: CONST String type=kotlin.String value="C55@301L28,56@338L66:main.kt#1wrmn" + key: CONST Int type=kotlin.Int value=735130646 + sourceInformation: CONST String type=kotlin.String value="C58@304L28,59@341L66:main.kt#1wrmn" COMPOSITE type=kotlin.Unit origin=null VAR name:dominantColorState type:util.DominantColorState [val] CALL 'public final fun rememberDominantColorState (defaultOnColor: compose.ui.Color?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): util.DominantColorState declared in util.DominantColorStateKt' type=util.DominantColorState origin=null diff --git a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.kt b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.kt index 551e077dff26f..b89789f86f838 100644 --- a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.kt +++ b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.kt @@ -23,11 +23,14 @@ package util import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue import compose.ui.Color @Composable fun rememberDominantColorState(defaultOnColor: Color = Color(0, 0, 0)): DominantColorState = remember { - DominantColorState(defaultColor) + DominantColorState(defaultOnColor) } @Composable @@ -39,7 +42,7 @@ fun DynamicThemePrimaryColorsFromImage( @Stable class DominantColorState(private val defaultOnColor: Color) { - var color = mutableStateOf(defaultColor) + var color = mutableStateOf(defaultOnColor) } // FILE: main.kt diff --git a/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt new file mode 100644 index 0000000000000..6509a2c9ba435 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt @@ -0,0 +1,533 @@ +MODULE_FRAGMENT + FILE fqName:home fileName:main.kt + CLASS CLASS name:Color modality:FINAL visibility:public superTypes:[kotlin.Any] + annotations: + StabilityInferred(parameters = 1) + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:home.Color + PROPERTY name:r visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:r type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + GET_VAR 'r: kotlin.Int declared in home.Color.' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:home.Color) returnType:kotlin.Int + correspondingProperty: PROPERTY name:r visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:home.Color + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in home.Color' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:r type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': home.Color declared in home.Color.' type=home.Color origin=null + PROPERTY name:g visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:g type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + GET_VAR 'g: kotlin.Int declared in home.Color.' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:home.Color) returnType:kotlin.Int + correspondingProperty: PROPERTY name:g visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:home.Color + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in home.Color' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:g type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': home.Color declared in home.Color.' type=home.Color origin=null + PROPERTY name:b visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + GET_VAR 'b: kotlin.Int declared in home.Color.' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:home.Color) returnType:kotlin.Int + correspondingProperty: PROPERTY name:b visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:home.Color + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in home.Color' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': home.Color declared in home.Color.' type=home.Color origin=null + FIELD name:$stable type:kotlin.Int visibility:public [final,static] + EXPRESSION_BODY + CONST Int type=kotlin.Int value=0 + CONSTRUCTOR visibility:public <> (r:kotlin.Int, g:kotlin.Int, b:kotlin.Int) returnType:home.Color [primary] + VALUE_PARAMETER name:r index:0 type:kotlin.Int + VALUE_PARAMETER name:g index:1 type:kotlin.Int + VALUE_PARAMETER name:b index:2 type:kotlin.Int + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Color modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:DominantColorState modality:FINAL visibility:public superTypes:[kotlin.Any] + annotations: + Stable + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:home.DominantColorState + PROPERTY name:defaultColor visibility:private modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:defaultColor type:home.Color visibility:private [final] + EXPRESSION_BODY + GET_VAR 'defaultColor: home.Color declared in home.DominantColorState.' type=home.Color origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:home.DominantColorState) returnType:home.Color + correspondingProperty: PROPERTY name:defaultColor visibility:private modality:FINAL [val] + $this: VALUE_PARAMETER name: type:home.DominantColorState + BLOCK_BODY + RETURN type=kotlin.Nothing from='private final fun (): home.Color declared in home.DominantColorState' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:defaultColor type:home.Color visibility:private [final]' type=home.Color origin=null + receiver: GET_VAR ': home.DominantColorState declared in home.DominantColorState.' type=home.DominantColorState origin=null + PROPERTY name:color visibility:public modality:FINAL [delegated,var] + FIELD PROPERTY_DELEGATE name:color$delegate type:androidx.compose.runtime.MutableState visibility:private [final] + EXPRESSION_BODY + CALL 'public final fun mutableStateOf (value: T of androidx.compose.runtime.mutableStateOf, policy: androidx.compose.runtime.SnapshotMutationPolicy): androidx.compose.runtime.MutableState declared in androidx.compose.runtime' type=androidx.compose.runtime.MutableState origin=null + : home.Color + value: CALL 'private final fun (): home.Color declared in home.DominantColorState' type=home.Color origin=GET_PROPERTY + $this: GET_VAR ': home.DominantColorState declared in home.DominantColorState' type=home.DominantColorState origin=null + FUN DELEGATED_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:home.DominantColorState) returnType:home.Color + correspondingProperty: PROPERTY name:color visibility:public modality:FINAL [delegated,var] + $this: VALUE_PARAMETER name: type:home.DominantColorState + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): home.Color declared in home.DominantColorState' + CALL 'public final fun getValue (thisObj: kotlin.Any?, property: kotlin.reflect.KProperty<*>): T of androidx.compose.runtime.getValue [inline,operator] declared in androidx.compose.runtime' type=home.Color origin=null + : home.Color + $receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:color$delegate type:androidx.compose.runtime.MutableState visibility:private [final] declared in home.DominantColorState' type=androidx.compose.runtime.MutableState origin=null + receiver: GET_VAR ': home.DominantColorState declared in home.DominantColorState.' type=home.DominantColorState origin=null + thisObj: GET_VAR ': home.DominantColorState declared in home.DominantColorState.' type=home.DominantColorState origin=null + property: PROPERTY_REFERENCE 'public final color: home.Color [delegated,var] declared in home.DominantColorState' field=null getter='public final fun (): home.Color declared in home.DominantColorState' setter='private final fun (: home.Color): kotlin.Unit declared in home.DominantColorState' type=kotlin.reflect.KMutableProperty1 origin=PROPERTY_REFERENCE_FOR_DELEGATE + FUN DELEGATED_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:home.DominantColorState, :home.Color) returnType:kotlin.Unit + correspondingProperty: PROPERTY name:color visibility:public modality:FINAL [delegated,var] + $this: VALUE_PARAMETER name: type:home.DominantColorState + VALUE_PARAMETER name: index:0 type:home.Color + BLOCK_BODY + RETURN type=kotlin.Nothing from='private final fun (: home.Color): kotlin.Unit declared in home.DominantColorState' + CALL 'public final fun setValue (thisObj: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: T of androidx.compose.runtime.setValue): kotlin.Unit [inline,operator] declared in androidx.compose.runtime' type=kotlin.Unit origin=null + : home.Color + $receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:color$delegate type:androidx.compose.runtime.MutableState visibility:private [final] declared in home.DominantColorState' type=androidx.compose.runtime.MutableState origin=null + receiver: GET_VAR ': home.DominantColorState declared in home.DominantColorState.' type=home.DominantColorState origin=null + thisObj: GET_VAR ': home.DominantColorState declared in home.DominantColorState.' type=home.DominantColorState origin=null + property: PROPERTY_REFERENCE 'public final color: home.Color [delegated,var] declared in home.DominantColorState' field=null getter='public final fun (): home.Color declared in home.DominantColorState' setter='private final fun (: home.Color): kotlin.Unit declared in home.DominantColorState' type=kotlin.reflect.KMutableProperty1 origin=PROPERTY_REFERENCE_FOR_DELEGATE + value: GET_VAR ': home.Color declared in home.DominantColorState.' type=home.Color origin=null + FIELD name:$stable type:kotlin.Int visibility:public [final,static] + EXPRESSION_BODY + CONST Int type=kotlin.Int value=0 + CONSTRUCTOR visibility:public <> (defaultColor:home.Color) returnType:home.DominantColorState [primary] + VALUE_PARAMETER name:defaultColor index:0 type:home.Color + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:DominantColorState modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS INTERFACE name:ColumnScope modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:home.ColumnScope + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS OBJECT name:ComposableSingletons$MainKt modality:FINAL visibility:internal superTypes:[] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:home.ComposableSingletons$MainKt + PROPERTY name:lambda-1 visibility:internal modality:FINAL [val] + FIELD name:lambda-1 type:kotlin.Function2 visibility:internal [static] + EXPRESSION_BODY + CALL 'public final fun composableLambdaInstance (key: kotlin.Int, tracked: kotlin.Boolean, block: kotlin.Any): androidx.compose.runtime.internal.ComposableLambda declared in androidx.compose.runtime.internal' type=androidx.compose.runtime.internal.ComposableLambda origin=null + key: CONST Int type=kotlin.Int value=-1263890955 + tracked: CONST Boolean type=kotlin.Boolean value=false + block: FUN_EXPR type=kotlin.Function2 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:1 type:kotlin.Int + BLOCK_BODY + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.ComposableSingletons$MainKt.lambda-1.' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="C:main.kt#1wrmn" + WHEN type=kotlin.Unit origin=IF + BRANCH + if: WHEN type=kotlin.Boolean origin=OROR + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$changed: kotlin.Int declared in home.ComposableSingletons$MainKt.lambda-1.' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=11 + arg1: CONST Int type=kotlin.Int value=2 + then: CONST Boolean type=kotlin.Boolean value=true + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public abstract fun (): kotlin.Boolean declared in androidx.compose.runtime.Composer' type=kotlin.Boolean origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.ComposableSingletons$MainKt.lambda-1.' type=androidx.compose.runtime.Composer? origin=null + then: BLOCK type=kotlin.Unit origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventStart (key: kotlin.Int, dirty1: kotlin.Int, dirty2: kotlin.Int, info: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + key: CONST Int type=kotlin.Int value=-1263890955 + dirty1: GET_VAR '$changed: kotlin.Int declared in home.ComposableSingletons$MainKt.lambda-1.' type=kotlin.Int origin=null + dirty2: CONST Int type=kotlin.Int value=-1 + info: CONST String type=kotlin.String value="home.ComposableSingletons$MainKt.lambda-1. (main.kt:44)" + GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventEnd (): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun skipToGroupEnd (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.ComposableSingletons$MainKt.lambda-1.' type=androidx.compose.runtime.Composer? origin=null + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:internal modality:FINAL <> ($this:home.ComposableSingletons$MainKt) returnType:kotlin.Function2 + correspondingProperty: PROPERTY name:lambda-1 visibility:internal modality:FINAL [val] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:home.ComposableSingletons$MainKt + BLOCK_BODY + RETURN type=kotlin.Nothing from='internal final fun (): kotlin.Function2 declared in home.ComposableSingletons$MainKt' + GET_FIELD 'FIELD name:lambda-1 type:kotlin.Function2 visibility:internal [static] declared in home.ComposableSingletons$MainKt' type=kotlin.Function2 origin=null + receiver: GET_VAR ': home.ComposableSingletons$MainKt declared in home.ComposableSingletons$MainKt.' type=home.ComposableSingletons$MainKt origin=null + CONSTRUCTOR visibility:public <> () returnType:home.ComposableSingletons$MainKt [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:ComposableSingletons$MainKt modality:FINAL visibility:internal superTypes:[]' + FUN name:Column visibility:public modality:FINAL <> (content:@[ExtensionFunctionType] kotlin.Function3, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit [inline] + annotations: + Composable + VALUE_PARAMETER name:content index:0 type:@[ExtensionFunctionType] kotlin.Function3 + VALUE_PARAMETER name:$composer index:1 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:2 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun startReplaceGroup (key: kotlin.Int): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Column' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=-1724293486 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Column' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="CC(Column):main.kt#1wrmn" + CALL 'public abstract fun endReplaceGroup (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Column' type=androidx.compose.runtime.Composer? origin=null + FUN name:DynamicThemePrimaryColorsFromImage visibility:public modality:FINAL <> (dominantColorState:home.DominantColorState?, content:kotlin.Function2, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int, $default:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + VALUE_PARAMETER name:dominantColorState index:0 type:home.DominantColorState? [assignable] + VALUE_PARAMETER name:content index:1 type:kotlin.Function2 + VALUE_PARAMETER name:$composer index:2 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:3 type:kotlin.Int + VALUE_PARAMETER MASK_FOR_DEFAULT_FUNCTION name:$default index:4 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + SET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Unit origin=null + CALL 'public abstract fun startRestartGroup (key: kotlin.Int): androidx.compose.runtime.Composer declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.Composer origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=-435887556 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="C(DynamicThemePrimaryColorsFromImage)P(1)21@595L28:main.kt#1wrmn" + VAR name:$dirty type:kotlin.Int [val] + GET_VAR '$changed: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: WHEN type=kotlin.Boolean origin=OROR + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + arg1: CONST Int type=kotlin.Int value=0 + then: CONST Boolean type=kotlin.Boolean value=true + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public abstract fun (): kotlin.Boolean declared in androidx.compose.runtime.Composer' type=kotlin.Boolean origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + then: BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun startDefaults (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: WHEN type=kotlin.Boolean origin=OROR + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$changed: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + arg1: CONST Int type=kotlin.Int value=0 + then: CONST Boolean type=kotlin.Boolean value=true + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun (): kotlin.Boolean declared in androidx.compose.runtime.Composer' type=kotlin.Boolean origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + then: COMPOSITE type=kotlin.Unit origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$default: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + arg1: CONST Int type=kotlin.Int value=0 + then: BLOCK type=kotlin.Unit origin=null + SET_VAR 'dominantColorState: home.DominantColorState? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Unit origin=null + CALL 'public final fun rememberDominantColorState (defaultColor: home.Color?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): home.DominantColorState declared in home' type=home.DominantColorState origin=null + defaultColor: COMPOSITE type=kotlin.Nothing? origin=DEFAULT_VALUE + CONST Null type=kotlin.Nothing? value=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + $default: CONST Int type=kotlin.Int value=1 + SET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Unit origin=null + CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=-15 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun skipToGroupEnd (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$default: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + arg1: CONST Int type=kotlin.Int value=0 + then: SET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Unit origin=null + CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=-15 + CALL 'public abstract fun endDefaults (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventStart (key: kotlin.Int, dirty1: kotlin.Int, dirty2: kotlin.Int, info: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + key: CONST Int type=kotlin.Int value=-435887556 + dirty1: GET_VAR 'val $dirty: kotlin.Int [val] declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + dirty2: CONST Int type=kotlin.Int value=-1 + info: CONST String type=kotlin.String value="home.DynamicThemePrimaryColorsFromImage (main.kt:23)" + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventEnd (): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun skipToGroupEnd (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + BLOCK type=kotlin.Unit origin=null + BLOCK type=kotlin.Unit origin=SAFE_CALL + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:androidx.compose.runtime.ScopeUpdateScope? [val] + CALL 'public abstract fun endRestartGroup (): androidx.compose.runtime.ScopeUpdateScope? declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: GET_VAR 'val tmp_0: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + arg1: CONST Null type=kotlin.Any? value=null + then: CONST Null type=kotlin.Any? value=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun updateScope (block: kotlin.Function2): kotlin.Unit declared in androidx.compose.runtime.ScopeUpdateScope' type=kotlin.Unit origin=null + $this: GET_VAR 'val tmp_0: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.DynamicThemePrimaryColorsFromImage' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + block: FUN_EXPR type=kotlin.Function2 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $force:kotlin.Int) returnType:kotlin.Unit + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? + VALUE_PARAMETER name:$force index:1 type:kotlin.Int + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun ($composer: androidx.compose.runtime.Composer?, $force: kotlin.Int): kotlin.Unit declared in home.DynamicThemePrimaryColorsFromImage' + CALL 'public final fun DynamicThemePrimaryColorsFromImage (dominantColorState: home.DominantColorState?, content: kotlin.Function2, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): kotlin.Unit declared in home' type=kotlin.Unit origin=null + dominantColorState: GET_VAR 'dominantColorState: home.DominantColorState? [assignable] declared in home.DynamicThemePrimaryColorsFromImage' type=home.DominantColorState? origin=null + content: GET_VAR 'content: kotlin.Function2 declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Function2 origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? declared in home.DynamicThemePrimaryColorsFromImage.' type=androidx.compose.runtime.Composer? origin=null + $changed: CALL 'internal final fun updateChangedFlags (flags: kotlin.Int): kotlin.Int declared in androidx.compose.runtime' type=kotlin.Int origin=null + flags: CALL 'public final fun or (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$changed: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + $default: GET_VAR '$default: kotlin.Int declared in home.DynamicThemePrimaryColorsFromImage' type=kotlin.Int origin=null + FUN name:Home visibility:public modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:1 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + SET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=kotlin.Unit origin=null + CALL 'public abstract fun startRestartGroup (key: kotlin.Int): androidx.compose.runtime.Composer declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.Composer origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=289538687 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="C(Home)41@941L151:main.kt#1wrmn" + WHEN type=kotlin.Unit origin=IF + BRANCH + if: WHEN type=kotlin.Boolean origin=OROR + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + arg1: CONST Int type=kotlin.Int value=0 + then: CONST Boolean type=kotlin.Boolean value=true + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public abstract fun (): kotlin.Boolean declared in androidx.compose.runtime.Composer' type=kotlin.Boolean origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + then: BLOCK type=kotlin.Unit origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventStart (key: kotlin.Int, dirty1: kotlin.Int, dirty2: kotlin.Int, info: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + key: CONST Int type=kotlin.Int value=289538687 + dirty1: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + dirty2: CONST Int type=kotlin.Int value=-1 + info: CONST String type=kotlin.String value="home.Home (main.kt:40)" + CALL 'public final fun Column (content: @[ExtensionFunctionType] kotlin.Function3, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit [inline] declared in home' type=kotlin.Unit origin=null + content: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:home.ColumnScope, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit + annotations: + Composable + $receiver: VALUE_PARAMETER name:$this$Column type:home.ColumnScope + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:1 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + CALL 'public final fun sourceInformationMarkerStart (composer: androidx.compose.runtime.Composer, key: kotlin.Int, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=735804214 + sourceInformation: CONST String type=kotlin.String value="C42@983L28,43@1020L66:main.kt#1wrmn" + COMPOSITE type=kotlin.Unit origin=null + VAR name:dominantColorState type:home.DominantColorState [val] + CALL 'public final fun rememberDominantColorState (defaultColor: home.Color?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): home.DominantColorState declared in home' type=home.DominantColorState origin=null + defaultColor: COMPOSITE type=kotlin.Nothing? origin=DEFAULT_VALUE + CONST Null type=kotlin.Nothing? value=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + $default: CONST Int type=kotlin.Int value=1 + CALL 'public final fun DynamicThemePrimaryColorsFromImage (dominantColorState: home.DominantColorState?, content: kotlin.Function2, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): kotlin.Unit declared in home' type=kotlin.Unit origin=null + dominantColorState: GET_VAR 'val dominantColorState: home.DominantColorState [val] declared in home.Home.' type=home.DominantColorState origin=null + content: CALL 'internal final fun (): kotlin.Function2 declared in home.ComposableSingletons$MainKt' type=kotlin.Function2 origin=null + $this: GET_OBJECT 'CLASS OBJECT name:ComposableSingletons$MainKt modality:FINAL visibility:internal superTypes:[]' type=home.ComposableSingletons$MainKt + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=48 + $default: CONST Int type=kotlin.Int value=0 + CALL 'public final fun sourceInformationMarkerEnd (composer: androidx.compose.runtime.Composer): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + $changed: CONST Int type=kotlin.Int value=0 + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventEnd (): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun skipToGroupEnd (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + BLOCK type=kotlin.Unit origin=null + BLOCK type=kotlin.Unit origin=SAFE_CALL + VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:androidx.compose.runtime.ScopeUpdateScope? [val] + CALL 'public abstract fun endRestartGroup (): androidx.compose.runtime.ScopeUpdateScope? declared in androidx.compose.runtime.Composer' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.Home' type=androidx.compose.runtime.Composer? origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: GET_VAR 'val tmp_1: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.Home' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + arg1: CONST Null type=kotlin.Any? value=null + then: CONST Null type=kotlin.Any? value=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public abstract fun updateScope (block: kotlin.Function2): kotlin.Unit declared in androidx.compose.runtime.ScopeUpdateScope' type=kotlin.Unit origin=null + $this: GET_VAR 'val tmp_1: androidx.compose.runtime.ScopeUpdateScope? [val] declared in home.Home' type=androidx.compose.runtime.ScopeUpdateScope? origin=null + block: FUN_EXPR type=kotlin.Function2 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $force:kotlin.Int) returnType:kotlin.Unit + VALUE_PARAMETER name:$composer index:0 type:androidx.compose.runtime.Composer? + VALUE_PARAMETER name:$force index:1 type:kotlin.Int + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun ($composer: androidx.compose.runtime.Composer?, $force: kotlin.Int): kotlin.Unit declared in home.Home' + CALL 'public final fun Home ($composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int): kotlin.Unit declared in home' type=kotlin.Unit origin=null + $composer: GET_VAR '$composer: androidx.compose.runtime.Composer? declared in home.Home.' type=androidx.compose.runtime.Composer? origin=null + $changed: CALL 'internal final fun updateChangedFlags (flags: kotlin.Int): kotlin.Int declared in androidx.compose.runtime' type=kotlin.Int origin=null + flags: CALL 'public final fun or (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$changed: kotlin.Int declared in home.Home' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + FUN name:rememberDominantColorState visibility:public modality:FINAL <> (defaultColor:home.Color?, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int, $default:kotlin.Int) returnType:home.DominantColorState + annotations: + Composable + VALUE_PARAMETER name:defaultColor index:0 type:home.Color? [assignable] + VALUE_PARAMETER name:$composer index:1 type:androidx.compose.runtime.Composer? [assignable] + VALUE_PARAMETER name:$changed index:2 type:kotlin.Int + VALUE_PARAMETER MASK_FOR_DEFAULT_FUNCTION name:$default index:3 type:kotlin.Int + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun startReplaceGroup (key: kotlin.Int): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=-227885952 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="C(rememberDominantColorState)15@447L49:main.kt#1wrmn" + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null + arg0: CALL 'public final fun and (other: kotlin.Int): kotlin.Int [infix] declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_VAR '$default: kotlin.Int declared in home.rememberDominantColorState' type=kotlin.Int origin=null + other: CONST Int type=kotlin.Int value=1 + arg1: CONST Int type=kotlin.Int value=0 + then: SET_VAR 'defaultColor: home.Color? [assignable] declared in home.rememberDominantColorState' type=kotlin.Unit origin=null + CONSTRUCTOR_CALL 'public constructor (r: kotlin.Int, g: kotlin.Int, b: kotlin.Int) [primary] declared in home.Color' type=home.Color origin=null + r: CONST Int type=kotlin.Int value=0 + g: CONST Int type=kotlin.Int value=0 + b: CONST Int type=kotlin.Int value=0 + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventStart (key: kotlin.Int, dirty1: kotlin.Int, dirty2: kotlin.Int, info: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + key: CONST Int type=kotlin.Int value=-227885952 + dirty1: GET_VAR '$changed: kotlin.Int declared in home.rememberDominantColorState' type=kotlin.Int origin=null + dirty2: CONST Int type=kotlin.Int value=-1 + info: CONST String type=kotlin.String value="home.rememberDominantColorState (main.kt:15)" + VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:home.DominantColorState [val] + BLOCK type=home.DominantColorState origin=null + BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun startReplaceGroup (key: kotlin.Int): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + key: CONST Int type=kotlin.Int value=-1506581733 + CALL 'public final fun sourceInformation (composer: androidx.compose.runtime.Composer, sourceInformation: kotlin.String): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + composer: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + sourceInformation: CONST String type=kotlin.String value="CC(remember):main.kt#9igjgp" + VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:home.DominantColorState [val] + CALL 'public final fun cache (invalid: kotlin.Boolean, block: @[DisallowComposableCalls] kotlin.Function0): T of androidx.compose.runtime.cache [inline] declared in androidx.compose.runtime' type=home.DominantColorState origin=null + : home.DominantColorState + $receiver: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + invalid: CONST Boolean type=kotlin.Boolean value=false + block: FUN_EXPR type=kotlin.Function0 origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:home.DominantColorState + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun (): home.DominantColorState declared in home.rememberDominantColorState' + CONSTRUCTOR_CALL 'public constructor (defaultColor: home.Color) [primary] declared in home.DominantColorState' type=home.DominantColorState origin=null + defaultColor: GET_VAR 'defaultColor: home.Color? [assignable] declared in home.rememberDominantColorState' type=home.Color origin=null + CALL 'public abstract fun endReplaceGroup (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + GET_VAR 'val tmp_3: home.DominantColorState [val] declared in home.rememberDominantColorState' type=home.DominantColorState origin=null + WHEN type=kotlin.Unit origin=IF + BRANCH + if: CALL 'public final fun isTraceInProgress (): kotlin.Boolean declared in androidx.compose.runtime' type=kotlin.Boolean origin=null + then: CALL 'public final fun traceEventEnd (): kotlin.Unit declared in androidx.compose.runtime' type=kotlin.Unit origin=null + CALL 'public abstract fun endReplaceGroup (): kotlin.Unit declared in androidx.compose.runtime.Composer' type=kotlin.Unit origin=null + $this: GET_VAR '$composer: androidx.compose.runtime.Composer? [assignable] declared in home.rememberDominantColorState' type=androidx.compose.runtime.Composer? origin=null + RETURN type=home.DominantColorState from='public final fun rememberDominantColorState (defaultColor: home.Color?, $composer: androidx.compose.runtime.Composer?, $changed: kotlin.Int, $default: kotlin.Int): home.DominantColorState declared in home' + GET_VAR 'val tmp_2: home.DominantColorState [val] declared in home.rememberDominantColorState' type=home.DominantColorState origin=null diff --git a/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.kt b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.kt new file mode 100644 index 0000000000000..0b09928810937 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.kt @@ -0,0 +1,47 @@ +// DUMP_IR + +// FILE: main.kt +package home + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue + +class Color(val r: Int, val g: Int, val b:Int) + +@Composable +fun rememberDominantColorState(defaultColor: Color = Color(0, 0, 0)): DominantColorState = remember { + DominantColorState(defaultColor) +} + +@Composable +fun DynamicThemePrimaryColorsFromImage( + dominantColorState: DominantColorState = rememberDominantColorState(), + content: @Composable () -> Unit +) { +} + +@Stable +class DominantColorState(private val defaultColor: Color) { + var color by mutableStateOf(defaultColor) + private set +} + +interface ColumnScope { +} + +@Composable +inline fun Column(content: @Composable ColumnScope.() -> Unit) { +} + +@Composable +fun Home() { + Column { + val dominantColorState = rememberDominantColorState() + DynamicThemePrimaryColorsFromImage(dominantColorState) { + } + } +} \ No newline at end of file diff --git a/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.txt b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.txt new file mode 100644 index 0000000000000..6ff5f82f1f1d4 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.txt @@ -0,0 +1,58 @@ +public final class home/Color { + // source: 'main.kt' + public final static field $stable: int + private final field b: int + private final field g: int + private final field r: int + static method (): void + public method (p0: int, p1: int, p2: int): void + public final method getB(): int + public final method getG(): int + public final method getR(): int +} + +public interface home/ColumnScope { + // source: 'main.kt' +} + +final class home/ComposableSingletons$MainKt$lambda-1$1 { + // source: 'main.kt' + enclosing class home/ComposableSingletons$MainKt + public final static field INSTANCE: home.ComposableSingletons$MainKt$lambda-1$1 + inner (anonymous) class home/ComposableSingletons$MainKt$lambda-1$1 + static method (): void + method (): void + public final method invoke(p0: androidx.compose.runtime.Composer, p1: int): void + public synthetic bridge method invoke(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object +} + +public final class home/ComposableSingletons$MainKt { + // source: 'main.kt' + public final static field INSTANCE: home.ComposableSingletons$MainKt + public static field lambda-1: kotlin.jvm.functions.Function2 + inner (anonymous) class home/ComposableSingletons$MainKt$lambda-1$1 + static method (): void + public method (): void + public final method getLambda-1$main(): kotlin.jvm.functions.Function2 +} + +public final class home/DominantColorState { + // source: 'main.kt' + public final static field $stable: int + private final field color$delegate: androidx.compose.runtime.MutableState + private final field defaultColor: home.Color + static method (): void + public method (p0: home.Color): void + public final method getColor(): home.Color + private final method setColor(p0: home.Color): void +} + +public final class home/MainKt { + // source: 'main.kt' + public final static method Column(p0: kotlin.jvm.functions.Function3, p1: androidx.compose.runtime.Composer, p2: int): void + private final static method DynamicThemePrimaryColorsFromImage$lambda$1(p0: home.DominantColorState, p1: kotlin.jvm.functions.Function2, p2: int, p3: int, p4: androidx.compose.runtime.Composer, p5: int): kotlin.Unit + public final static method DynamicThemePrimaryColorsFromImage(p0: home.DominantColorState, p1: kotlin.jvm.functions.Function2, p2: androidx.compose.runtime.Composer, p3: int, p4: int): void + private final static method Home$lambda$3(p0: int, p1: androidx.compose.runtime.Composer, p2: int): kotlin.Unit + public final static method Home(p0: androidx.compose.runtime.Composer, p1: int): void + public final static method rememberDominantColorState(p0: home.Color, p1: androidx.compose.runtime.Composer, p2: int, p3: int): home.DominantColorState +} \ No newline at end of file diff --git a/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.ir.txt new file mode 100644 index 0000000000000..902d19df12c71 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.ir.txt @@ -0,0 +1,5 @@ +MODULE_FRAGMENT + FILE fqName:home fileName:main.kt + FUN name:preview visibility:public modality:FINAL <> (foo:test.ClassWithDelegatedProperty) returnType:kotlin.Unit + VALUE_PARAMETER name:foo index:0 type:test.ClassWithDelegatedProperty + BLOCK_BODY diff --git a/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.kt b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.kt new file mode 100644 index 0000000000000..c23f88bbe4ad6 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.kt @@ -0,0 +1,30 @@ +// DUMP_IR + +// FILE: data/delegate.kt +package data + +class Data(val data: Int) + +class Delegate(private val data: Int) { + operator fun getValue(thisRef: Owner, property: KProperty<*>): Data { + return Data(data) + } +} + +fun delegate(data: Int) = Delegate(data) +// FILE: test/ClassWithDelegatedProperty.kt +package test + +import data.delegate + +class ClassWithDelegatedProperty(data: Int) { + var delegatedProperty by delegate(data) +} + +// FILE: main.kt +package home + +import test.ClassWithDelegatedProperty + +fun preview(foo: ClassWithDelegatedProperty) { +} \ No newline at end of file diff --git a/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.txt b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.txt new file mode 100644 index 0000000000000..ac0b815990022 --- /dev/null +++ b/plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.txt @@ -0,0 +1,4 @@ +public final class home/MainKt { + // source: 'main.kt' + public final static method preview(p0: test.ClassWithDelegatedProperty): void +} diff --git a/plugins/compose/compiler-hosted/tests-gen/androidx/compose/compiler/plugins/kotlin/CompilerFacilityTestForComposeCompilerPluginGenerated.java b/plugins/compose/compiler-hosted/tests-gen/androidx/compose/compiler/plugins/kotlin/CompilerFacilityTestForComposeCompilerPluginGenerated.java index 9ef6bb39a55c6..8b96893845237 100644 --- a/plugins/compose/compiler-hosted/tests-gen/androidx/compose/compiler/plugins/kotlin/CompilerFacilityTestForComposeCompilerPluginGenerated.java +++ b/plugins/compose/compiler-hosted/tests-gen/androidx/compose/compiler/plugins/kotlin/CompilerFacilityTestForComposeCompilerPluginGenerated.java @@ -29,15 +29,33 @@ public void testConstExprInitializer() { runTest("plugins/compose/compiler-hosted/testData/codegen/constExprInitializer.kt"); } + @Test + @TestMetadata("lazyPropertyBackingField.kt") + public void testLazyPropertyBackingField() { + runTest("plugins/compose/compiler-hosted/testData/codegen/lazyPropertyBackingField.kt"); + } + @Test @TestMetadata("multiModulesWithComposableFunction.kt") public void testMultiModulesWithComposableFunction() { runTest("plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.kt"); } + @Test + @TestMetadata("nestedLambda.kt") + public void testNestedLambda() { + runTest("plugins/compose/compiler-hosted/testData/codegen/nestedLambda.kt"); + } + @Test @TestMetadata("propertyGetterBody.kt") public void testPropertyGetterBody() { runTest("plugins/compose/compiler-hosted/testData/codegen/propertyGetterBody.kt"); } + + @Test + @TestMetadata("propertyWithDelegateBackingField.kt") + public void testPropertyWithDelegateBackingField() { + runTest("plugins/compose/compiler-hosted/testData/codegen/propertyWithDelegateBackingField.kt"); + } }