diff --git a/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeCompilerGradlePluginExtension.kt b/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeCompilerGradlePluginExtension.kt index a109ce86fa521..094cbb0e1a9e5 100644 --- a/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeCompilerGradlePluginExtension.kt +++ b/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeCompilerGradlePluginExtension.kt @@ -110,7 +110,7 @@ abstract class ComposeCompilerGradlePluginExtension @Inject constructor(objectFa * - [AndroidX strong skipping](https://github.com/androidx/androidx/blob/androidx-main/compose/compiler/design/strong-skipping.md) */ @Deprecated("Use the featureFlags option instead") - val enableStrongSkippingMode: Property = objectFactory.property(Boolean::class.java).convention(false) + val enableStrongSkippingMode: Property = objectFactory.property(Boolean::class.java).convention(true) /** * Path to the stability configuration file. @@ -174,8 +174,8 @@ abstract class ComposeCompilerGradlePluginExtension @Inject constructor(objectFa // Add features that used to be added by deprecated options. No other features should be added this way. enableIntrinsicRemember.zip(enableStrongSkippingMode) { intrinsicRemember, strongSkippingMode -> setOfNotNull( - if (!intrinsicRemember) ComposeFeatureFlag.IntrinsicRemember.disable() else null, - if (strongSkippingMode) ComposeFeatureFlag.StrongSkipping else null + if (!intrinsicRemember) ComposeFeatureFlag.IntrinsicRemember.disabled() else null, + if (!strongSkippingMode) ComposeFeatureFlag.StrongSkipping.disabled() else null ) }.zip(enableNonSkippingGroupOptimization) { features, nonSkippingGroupsOptimization -> if (nonSkippingGroupsOptimization) features + ComposeFeatureFlag.OptimizeNonSkippingGroups else features diff --git a/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeFeatureFlags.kt b/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeFeatureFlags.kt index 906ddb2edf1dd..d1c1bf29b3e77 100644 --- a/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeFeatureFlags.kt +++ b/libraries/tools/kotlin-compose-compiler/src/common/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ComposeFeatureFlags.kt @@ -11,19 +11,19 @@ import java.io.Serializable /** * A feature flag is used to roll out features that will eventually become the default behavior of the Compose compiler plugin. * - * A feature flag value that disables the feature can be created by calling [disable] on the feature flag. + * A feature flag value that disables the feature can be created by calling [disabled] on the feature flag. */ sealed interface ComposeFeatureFlag : Named, Serializable { /** * Return a feature flag that will disable this feature. */ - fun disable(): ComposeFeatureFlag + fun disabled(): ComposeFeatureFlag /** * The enabled value of [feature]. These values are stored in a set they should have value identity. */ private class Enabled(val feature: Feature) : ComposeFeatureFlag, Serializable { - override fun disable() = Disabled(feature) + override fun disabled() = Disabled(feature) override fun getName(): String = feature.name override fun hashCode(): Int = feature.hashCode() * 17 override fun equals(other: Any?): Boolean = other is Enabled && other.feature == feature @@ -34,7 +34,7 @@ sealed interface ComposeFeatureFlag : Named, Serializable { * The disabled value of [feature]. These values are stored in a set they should have value identity. */ private class Disabled(val feature: Feature) : ComposeFeatureFlag, Serializable { - override fun disable(): ComposeFeatureFlag = this + override fun disabled(): ComposeFeatureFlag = this override fun getName(): String = "Disabled ${feature.name}" override fun hashCode(): Int = feature.hashCode() * 19 override fun equals(other: Any?): Boolean = other is Disabled && other.feature == feature @@ -79,10 +79,10 @@ sealed interface ComposeFeatureFlag : Named, Serializable { * For more information, see this link: * - [Strong skipping](https://https://github.com/JetBrains/kotlin/blob/master/plugins/compose/design/strong-skipping.md) * - * This feature is disabled by default. To enable, include this feature flag, + * This feature is enabled by default. To disable, provide this feature flag in a [disabled] state: * ``` * composeOptions { - * featureFlags = setOf(ComposeFeatureFlag.StrongSkipping) + * featureFlags = setOf(ComposeFeatureFlag.StrongSkipping.disabled()) * } * ``` */ @@ -96,10 +96,10 @@ sealed interface ComposeFeatureFlag : Named, Serializable { * invocations and replacing `.equals` comparison (for keys) with comparisons of the `$changed` meta parameter when possible. This * results in fewer slots being used and fewer comparisons being done at runtime. * - * This feature is on by default. It can be disabled by adding a disable flag by calling [disable] on this flag. To disable, + * This feature is enabled by default. To disable, provide this feature flag in a [disabled] state: * ``` * composeOptions { - * featureFlags = setOf(ComposeFeatureFlag.IntrinsicRemember.disable()) + * featureFlags = setOf(ComposeFeatureFlag.IntrinsicRemember.disabled()) * } * ``` */ diff --git a/libraries/tools/kotlin-compose-compiler/src/functionalTest/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ExtensionConfigurationTest.kt b/libraries/tools/kotlin-compose-compiler/src/functionalTest/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ExtensionConfigurationTest.kt index 0dd5dc1f44840..1e2bf29986fcc 100644 --- a/libraries/tools/kotlin-compose-compiler/src/functionalTest/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ExtensionConfigurationTest.kt +++ b/libraries/tools/kotlin-compose-compiler/src/functionalTest/kotlin/org/jetbrains/kotlin/compose/compiler/gradle/ExtensionConfigurationTest.kt @@ -98,14 +98,14 @@ class ExtensionConfigurationTest { @Test fun disableIntrinsicRemember() { testComposeFeatureFlags(listOf("-IntrinsicRemember")) { extension -> - extension.featureFlags.value(setOf(ComposeFeatureFlag.IntrinsicRemember.disable())) + extension.featureFlags.value(setOf(ComposeFeatureFlag.IntrinsicRemember.disabled())) } } @Test - fun enableStrongSkipping() { - testComposeFeatureFlags(listOf("StrongSkipping")) { extension -> - extension.featureFlags.value(setOf(ComposeFeatureFlag.StrongSkipping)) + fun disableStrongSkipping() { + testComposeFeatureFlags(listOf("-StrongSkipping")) { extension -> + extension.featureFlags.value(setOf(ComposeFeatureFlag.StrongSkipping.disabled())) } } @@ -125,10 +125,10 @@ class ExtensionConfigurationTest { } @Test - fun enableStrongSkippingCompatibility() { - testComposeFeatureFlags(listOf("StrongSkipping")) { extension -> + fun disableStrongSkippingCompatibility() { + testComposeFeatureFlags(listOf("-StrongSkipping")) { extension -> @Suppress("DEPRECATION") - extension.enableStrongSkippingMode.value(true) + extension.enableStrongSkippingMode.value(false) } } @@ -142,11 +142,11 @@ class ExtensionConfigurationTest { @Test fun enableMultipleFlags() { - testComposeFeatureFlags(listOf("OptimizeNonSkippingGroups", "StrongSkipping", "-IntrinsicRemember")) { extension -> + testComposeFeatureFlags(listOf("OptimizeNonSkippingGroups", "-StrongSkipping", "-IntrinsicRemember")) { extension -> extension.featureFlags.set( setOf( - ComposeFeatureFlag.StrongSkipping, - ComposeFeatureFlag.IntrinsicRemember.disable(), + ComposeFeatureFlag.StrongSkipping.disabled(), + ComposeFeatureFlag.IntrinsicRemember.disabled(), ComposeFeatureFlag.OptimizeNonSkippingGroups ) ) @@ -156,13 +156,23 @@ class ExtensionConfigurationTest { @Test fun enableMultipleFlagsCompatibility() { @Suppress("DEPRECATION") - testComposeFeatureFlags(listOf("OptimizeNonSkippingGroups", "StrongSkipping", "-IntrinsicRemember")) { extension -> - extension.enableStrongSkippingMode.value(true) + testComposeFeatureFlags(listOf("OptimizeNonSkippingGroups", "-StrongSkipping", "-IntrinsicRemember")) { extension -> + extension.enableStrongSkippingMode.value(false) extension.enableNonSkippingGroupOptimization.value(true) extension.enableIntrinsicRemember.value(false) } } + @Test + fun enableMultipleFlagsCompatibilityDefaults() { + @Suppress("DEPRECATION") + testComposeFeatureFlags(emptyList()) { extension -> + extension.enableStrongSkippingMode.value(true) + extension.enableNonSkippingGroupOptimization.value(false) + extension.enableIntrinsicRemember.value(true) + } + } + private fun testComposeFeatureFlags(flags: List, configure: (ComposeCompilerGradlePluginExtension) -> Unit) { testComposeOptions({ extension, _ -> configure(extension) }) { options, _ -> for (flag in flags) options.assertFeature(flag) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = false].txt index 1a77532af82d5..ad9feceba28a3 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = false].txt @@ -21,10 +21,10 @@ fun Test(%context_receiver_0: Foo, a: String, b: Function3) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changedInstance(b)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001010000001 != 0b10000000 || !%composer.skipping) { + if (%dirty and 0b10000001 != 0b10000000 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = true].txt index 1a77532af82d5..ad9feceba28a3 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndComposableLambdaParam[useFir = true].txt @@ -21,10 +21,10 @@ fun Test(%context_receiver_0: Foo, a: String, b: Function3) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changedInstance(b)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001010000001 != 0b10000000 || !%composer.skipping) { + if (%dirty and 0b10000001 != 0b10000000 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = false].txt index c3467e6b2c073..dad414d0edba1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = false].txt @@ -59,20 +59,20 @@ fun Test(%context_receiver_0: Foo, a: String?, b: Int, %composer: Composer?, %ch val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(%context_receiver_0)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (%default and 0b0010 != 0) { a = "A" } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = true].txt index c3467e6b2c073..dad414d0edba1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiverAndDefaultParamsUsage[useFir = true].txt @@ -59,20 +59,20 @@ fun Test(%context_receiver_0: Foo, a: String?, b: Int, %composer: Composer?, %ch val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(%context_receiver_0)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (%default and 0b0010 != 0) { a = "A" } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = false].txt index a65bb1268285a..e6622ae65a438 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = false].txt @@ -24,10 +24,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = true].txt index a65bb1268285a..e6622ae65a438 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversNestedWith[useFir = true].txt @@ -24,10 +24,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = false].txt index 6f29aaf8a9440..bfa8e38b5ce0b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = false].txt @@ -21,10 +21,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = true].txt index 6f29aaf8a9440..bfa8e38b5ce0b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWithAndDefaultParam[useFir = true].txt @@ -21,10 +21,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = false].txt index 079c441cae123..67388dd0e951a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = false].txt @@ -22,10 +22,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = true].txt index 079c441cae123..67388dd0e951a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ContextReceiversTransformTests/testContextReceiversWith[useFir = true].txt @@ -22,10 +22,10 @@ fun Test(foo: Foo, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(foo)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = false].txt index 6a37fc19f90de..51f8e7a1f9e77 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = false].txt @@ -23,13 +23,13 @@ fun Label(test: Boolean) { fun Label(test: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(test)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { OuterComposableFunction(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> val tmp0_marker = %composer.currentMarker - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { Column(null, null, null, { %composer: Composer?, %changed: Int -> %composer.startReplaceGroup(<>) if (test) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = true].txt index 6a37fc19f90de..51f8e7a1f9e77 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/returnFromIfInlineNoinline[useFir = true].txt @@ -23,13 +23,13 @@ fun Label(test: Boolean) { fun Label(test: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(test)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { OuterComposableFunction(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> val tmp0_marker = %composer.currentMarker - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { Column(null, null, null, { %composer: Composer?, %changed: Int -> %composer.startReplaceGroup(<>) if (test) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = false].txt index a26398a751036..f70a2a2a80fcd 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = false].txt @@ -33,7 +33,7 @@ fun Test(%composer: Composer?, %changed: Int) { } internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { A(%composer, 0) } else { %composer.skipToGroupEnd() diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = true].txt index a26398a751036..f70a2a2a80fcd 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ControlFlowTransformTestsNoSource/testCallingAWrapperComposable[useFir = true].txt @@ -33,7 +33,7 @@ fun Test(%composer: Composer?, %changed: Int) { } internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { A(%composer, 0) } else { %composer.skipToGroupEnd() diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = false].txt index 66da06f62e484..f3de30e76635f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = false].txt @@ -23,10 +23,10 @@ fun Test(count: Int) { fun Test(count: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(count)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { Row(null, null, null, { %composer: Composer?, %changed: Int -> %composer.startReplaceGroup(<>) repeat(count) { it: Int -> diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = true].txt index 66da06f62e484..f3de30e76635f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/testInlineCallInsideComposableInlineFunction[useFir = true].txt @@ -23,10 +23,10 @@ fun Test(count: Int) { fun Test(count: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(count)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { Row(null, null, null, { %composer: Composer?, %changed: Int -> %composer.startReplaceGroup(<>) repeat(count) { it: Int -> diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = false].txt index aa7a1fedcd1b2..822d135c3a350 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = false].txt @@ -15,7 +15,7 @@ val layoutLambda = @Composable { _: Int -> val layoutLambda: Function3 = ComposableSingletons%TestKt.lambda-1 internal object ComposableSingletons%TestKt { val lambda-1: Function3 = composableLambdaInstance(<>, false) { : Int, %composer: Composer?, %changed: Int -> - if (%changed and 0b01010001 != 0b00010000 || !%composer.skipping) { + if (%changed and 0b00010001 != 0b00010000 || !%composer.skipping) { Layout(%composer, 0) } else { %composer.skipToGroupEnd() diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = true].txt index aa7a1fedcd1b2..822d135c3a350 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTestsNoSource/test_ComposableLambdaWithUnusedParameter[useFir = true].txt @@ -15,7 +15,7 @@ val layoutLambda = @Composable { _: Int -> val layoutLambda: Function3 = ComposableSingletons%TestKt.lambda-1 internal object ComposableSingletons%TestKt { val lambda-1: Function3 = composableLambdaInstance(<>, false) { : Int, %composer: Composer?, %changed: Int -> - if (%changed and 0b01010001 != 0b00010000 || !%composer.skipping) { + if (%changed and 0b00010001 != 0b00010000 || !%composer.skipping) { Layout(%composer, 0) } else { %composer.skipToGroupEnd() diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = false].txt index 3c26d7630f209..d734a7cb803fb 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = false].txt @@ -32,10 +32,10 @@ class MainActivity { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed()) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = true].txt index 3c26d7630f209..d734a7cb803fb 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/memoizeFunctionReferenceFromLocalClass[useFir = true].txt @@ -32,10 +32,10 @@ class MainActivity { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed()) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = false].txt index 2fef76571abb5..c53515805609a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = false].txt @@ -20,7 +20,7 @@ class A { val b: String = "" val c: Function2 = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = true].txt index 2fef76571abb5..c53515805609a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCapturedThisFromFieldInitializer[useFir = true].txt @@ -20,7 +20,7 @@ class A { val b: String = "" val c: Function2 = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = false].txt index 2db907c97326c..094ab44eaffc8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = false].txt @@ -21,16 +21,16 @@ fun Test(enabled: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(enabled)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } val content = rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = true].txt index 2db907c97326c..094ab44eaffc8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposabableLambdaInLocalDeclaration[useFir = true].txt @@ -21,16 +21,16 @@ fun Test(enabled: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(enabled)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } val content = rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = false].txt index bec2cc7b814ff..138bad5d387e2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = false].txt @@ -16,7 +16,7 @@ class Test(val value: Int) : Delegate by Impl({ class Test(val value: Int) : Delegate { private val %%delegate_0: Impl = Impl(composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = true].txt index bec2cc7b814ff..138bad5d387e2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableCaptureInDelegates[useFir = true].txt @@ -16,7 +16,7 @@ class Test(val value: Int) : Delegate by Impl({ class Test(val value: Int) : Delegate { private val %%delegate_0: Impl = Impl(composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = false].txt index 216925951cfe3..9c443edaf43ad 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = false].txt @@ -23,19 +23,19 @@ fun Test(enabled: Boolean, content: Function2?, %composer: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(enabled)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (%default and 0b0010 != 0) { content = rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = true].txt index 216925951cfe3..9c443edaf43ad 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testComposableInAFunctionParameter[useFir = true].txt @@ -23,19 +23,19 @@ fun Test(enabled: Boolean, content: Function2?, %composer: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(enabled)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (%default and 0b0010 != 0) { content = rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = false].txt index 35a75754ec302..1ae9b5a141b9b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = false].txt @@ -39,7 +39,7 @@ fun Test(crossinline content: Function0, %composer: Composer?, %changed: I Lazy({ val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -62,7 +62,7 @@ fun TestComposable(crossinline content: Function2, %compose Lazy({ val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = true].txt index 35a75754ec302..1ae9b5a141b9b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineCapture[useFir = true].txt @@ -39,7 +39,7 @@ fun Test(crossinline content: Function0, %composer: Composer?, %changed: I Lazy({ val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -62,7 +62,7 @@ fun TestComposable(crossinline content: Function2, %compose Lazy({ val items = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = false].txt index c3fc89aa113c8..66c51caa6494e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = false].txt @@ -27,7 +27,7 @@ fun Test(%composer: Composer?, %changed: Int) { f { s: String -> lambda = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = true].txt index c3fc89aa113c8..66c51caa6494e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testCrossinlineLambda[useFir = true].txt @@ -27,7 +27,7 @@ fun Test(%composer: Composer?, %changed: Int) { f { s: String -> lambda = composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = false].txt index d209b057c202f..ba451151966c5 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = false].txt @@ -17,10 +17,10 @@ fun Example(x: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Example)<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = true].txt index d209b057c202f..ba451151966c5 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceNonComposableMemoization[useFir = true].txt @@ -17,10 +17,10 @@ fun Example(x: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Example)<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = false].txt index 0efbcaaf06410..9369f3ba3e340 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = false].txt @@ -19,7 +19,7 @@ fun Problem() { fun foo() { } val lambda = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = true].txt index dc7ea48e44735..4f662afd8f9b8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testFunctionReferenceWithinInferredComposableLambda[useFir = true].txt @@ -19,7 +19,7 @@ fun Problem() { fun foo() { } val lambda = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C<::foo>:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = false].txt index d712dbff270ae..7c6563dc3f379 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = false].txt @@ -25,10 +25,10 @@ fun TestLambda(content: Function0, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(TestLambda):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -48,10 +48,10 @@ fun Test(a: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = true].txt index d712dbff270ae..7c6563dc3f379 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaDoesCapture[useFir = true].txt @@ -25,10 +25,10 @@ fun TestLambda(content: Function0, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(TestLambda):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -48,10 +48,10 @@ fun Test(a: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = false].txt index 435eebf3bc810..b74366ae8df0f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = false].txt @@ -25,10 +25,10 @@ fun TestLambda(content: Function0, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(TestLambda):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = true].txt index 728c9032c7724..bda2c0677327c 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLambdaNoCapture[useFir = true].txt @@ -25,10 +25,10 @@ fun TestLambda(content: Function0, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(TestLambda):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(content)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = false].txt index 35047f537d960..8b08d9645c9f1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = false].txt @@ -21,13 +21,13 @@ fun Something(param: String, rcvr: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(rcvr)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = true].txt index 35047f537d960..8b08d9645c9f1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReferenceWReceiver[useFir = true].txt @@ -21,13 +21,13 @@ fun Something(param: String, rcvr: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(rcvr)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = false].txt index 004f73f2fc008..d7f1e87cd21c1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = false].txt @@ -21,10 +21,10 @@ fun Something(param: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something)<::meth...>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = true].txt index 004f73f2fc008..d7f1e87cd21c1 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalFunctionReference[useFir = true].txt @@ -21,10 +21,10 @@ fun Something(param: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something)<::meth...>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = false].txt index a8423390fa1de..9ddc7289f67ad 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = false].txt @@ -56,7 +56,7 @@ fun Example(%composer: Composer?, %changed: Int) { } B(rememberComposableLambda(<>, false, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = true].txt index a8423390fa1de..9ddc7289f67ad 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalInALocal[useFir = true].txt @@ -56,7 +56,7 @@ fun Example(%composer: Composer?, %changed: Int) { } B(rememberComposableLambda(<>, false, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = false].txt index b5e78540adf14..18e4f2fab3ddc 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = false].txt @@ -40,7 +40,7 @@ fun A(%composer: Composer?, %changed: Int) { internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -54,7 +54,7 @@ internal object ComposableSingletons%TestKt { } val lambda-2: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = true].txt index b5e78540adf14..18e4f2fab3ddc 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testLocalVariableComposableLambdas[useFir = true].txt @@ -40,7 +40,7 @@ fun A(%composer: Composer?, %changed: Int) { internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -54,7 +54,7 @@ internal object ComposableSingletons%TestKt { } val lambda-2: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = false].txt index 5182adc6c59c5..f4109e4286293 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = false].txt @@ -31,10 +31,10 @@ fun StrongSkippingIssue(data: ClassWithData, %composer: Composer?, %changed: Int %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(StrongSkippingIssue),<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(data)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = true].txt index 5182adc6c59c5..f4109e4286293 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFromDelegate[useFir = true].txt @@ -31,10 +31,10 @@ fun StrongSkippingIssue(data: ClassWithData, %composer: Composer?, %changed: Int %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(StrongSkippingIssue),<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(data)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = false].txt index 2fa88ce9b2bba..853879194a9a0 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = false].txt @@ -24,10 +24,10 @@ fun Something(param: Function0?, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = true].txt index 2fa88ce9b2bba..853879194a9a0 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testMemoizingFunctionInIf[useFir = true].txt @@ -24,10 +24,10 @@ fun Something(param: Function0?, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Something):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changedInstance(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = false].txt index 02a8370e9c40b..457997c308d6e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = false].txt @@ -20,7 +20,7 @@ fun Example() { @NonRestartableComposable @Composable fun Example(%composer: Composer?, %changed: Int) { - sourceInformationMarkerStart(%composer, <>, "C(Example):Test.kt") + sourceInformationMarkerStart(%composer, <>, "C(Example),:Test.kt") if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -32,7 +32,15 @@ fun Example(%composer: Composer?, %changed: Int) { sourceInformationMarkerEnd(%composer) tmp0_group } - val shouldNotMemoize = x::foo + val shouldNotMemoize = { + val tmp0 = x + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp1_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::foo + } + sourceInformationMarkerEnd(%composer) + tmp1_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = true].txt index 02a8370e9c40b..457997c308d6e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testNonComposableFunctionReferenceWithUnstableExtensionReceiverMemoization[useFir = true].txt @@ -20,7 +20,7 @@ fun Example() { @NonRestartableComposable @Composable fun Example(%composer: Composer?, %changed: Int) { - sourceInformationMarkerStart(%composer, <>, "C(Example):Test.kt") + sourceInformationMarkerStart(%composer, <>, "C(Example),:Test.kt") if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -32,7 +32,15 @@ fun Example(%composer: Composer?, %changed: Int) { sourceInformationMarkerEnd(%composer) tmp0_group } - val shouldNotMemoize = x::foo + val shouldNotMemoize = { + val tmp0 = x + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp1_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::foo + } + sourceInformationMarkerEnd(%composer) + tmp1_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = false].txt index 2a971d4810000..a694bc91aa4d5 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = false].txt @@ -34,7 +34,7 @@ fun A(%composer: Composer?, %changed: Int) { internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = true].txt index 2a971d4810000..a694bc91aa4d5 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testParameterComposableLambdas[useFir = true].txt @@ -34,7 +34,7 @@ fun A(%composer: Composer?, %changed: Int) { internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = false].txt index a162a49931972..6177d27954f6b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = false].txt @@ -19,10 +19,10 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(s)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -30,7 +30,7 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { val tmp0_group = %composer.cache(false) { composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -48,7 +48,7 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { %composer.cache(false) { composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = true].txt index a162a49931972..6177d27954f6b 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testRememberComposableLambda[useFir = true].txt @@ -19,10 +19,10 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(s)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -30,7 +30,7 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { val tmp0_group = %composer.cache(false) { composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -48,7 +48,7 @@ fun Test(s: String, %composer: Composer?, %changed: Int) { %composer.cache(false) { composableLambdaInstance(<>, true) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = false].txt index 4a53363febd88..ed5e54446bafb 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = false].txt @@ -35,7 +35,7 @@ fun A(%composer: Composer?, %changed: Int) { } B(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = true].txt index 4a53363febd88..ed5e54446bafb 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testStateDelegateCapture[useFir = true].txt @@ -35,7 +35,7 @@ fun A(%composer: Composer?, %changed: Int) { } B(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = false].txt index 8185a833894f2..a44d3b8398973 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = false].txt @@ -16,7 +16,7 @@ val bar: Function2 = ComposableSingletons%TestKt.lambda-2 internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -30,7 +30,7 @@ internal object ComposableSingletons%TestKt { } val lambda-2: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = true].txt index 8185a833894f2..a44d3b8398973 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testTopLevelComposableLambdaProperties[useFir = true].txt @@ -16,7 +16,7 @@ val bar: Function2 = ComposableSingletons%TestKt.lambda-2 internal object ComposableSingletons%TestKt { val lambda-1: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } @@ -30,7 +30,7 @@ internal object ComposableSingletons%TestKt { } val lambda-2: Function2 = composableLambdaInstance(<>, false) { %composer: Composer?, %changed: Int -> sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = false].txt index 128cb06f8cde9..0c9e9d0357a09 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = false].txt @@ -16,12 +16,20 @@ fun Something() { @Composable fun Something(%composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Something):Test.kt") + sourceInformation(%composer, "C(Something):Test.kt") if (%changed != 0 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } - val x = unstable::method + val x = { + val tmp0 = unstable + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::method + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = true].txt index 128cb06f8cde9..0c9e9d0357a09 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableExtensionReceiverFunctionReferenceNotMemoized[useFir = true].txt @@ -16,12 +16,20 @@ fun Something() { @Composable fun Something(%composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Something):Test.kt") + sourceInformation(%composer, "C(Something):Test.kt") if (%changed != 0 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } - val x = unstable::method + val x = { + val tmp0 = unstable + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::method + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = false].txt index 128cb06f8cde9..0c9e9d0357a09 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = false].txt @@ -16,12 +16,20 @@ fun Something() { @Composable fun Something(%composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Something):Test.kt") + sourceInformation(%composer, "C(Something):Test.kt") if (%changed != 0 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } - val x = unstable::method + val x = { + val tmp0 = unstable + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::method + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = true].txt index 128cb06f8cde9..0c9e9d0357a09 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LambdaMemoizationTransformTests/testUnstableReceiverFunctionReferenceNotMemoized[useFir = true].txt @@ -16,12 +16,20 @@ fun Something() { @Composable fun Something(%composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Something):Test.kt") + sourceInformation(%composer, "C(Something):Test.kt") if (%changed != 0 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %changed, -1, <>) } - val x = unstable::method + val x = { + val tmp0 = unstable + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(tmp0)) { + tmp0::method + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt index 52765afe95655..1fc5d13973d46 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt @@ -35,13 +35,13 @@ object Ui { fun Ui.UiTextField(isError: Boolean, keyboardActions2: Boolean, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(isError)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(keyboardActions2)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011010001 != 0b10010000 || !%composer.skipping) { + if (%dirty and 0b10010001 != 0b10010000 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt index 52765afe95655..1fc5d13973d46 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralTransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt @@ -35,13 +35,13 @@ object Ui { fun Ui.UiTextField(isError: Boolean, keyboardActions2: Boolean, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(isError)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(keyboardActions2)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011010001 != 0b10010000 || !%composer.skipping) { + if (%dirty and 0b10010001 != 0b10010000 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt index 20dca32c543b2..4b2301c3e4892 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = false].txt @@ -35,13 +35,13 @@ object Ui { fun Ui.UiTextField(isError: Boolean, keyboardActions2: Boolean, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(isError)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(keyboardActions2)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011010001 != 0b10010000 || !%composer.skipping) { + if (%dirty and 0b10010001 != 0b10010000 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt index 20dca32c543b2..4b2301c3e4892 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.LiveLiteralV2TransformTests/testComposeIrSkippingWithDefaultsRelease[useFir = true].txt @@ -35,13 +35,13 @@ object Ui { fun Ui.UiTextField(isError: Boolean, keyboardActions2: Boolean, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(isError)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(keyboardActions2)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011010001 != 0b10010000 || !%composer.skipping) { + if (%dirty and 0b10010001 != 0b10010000 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = false].txt index 035e18edf331c..fc1667a5fba71 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = false].txt @@ -19,13 +19,13 @@ fun SkippableComposable(list: List, instant: Instant) { fun SkippableComposable(list: List, instant: Instant, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(list)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(instant)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = true].txt index 035e18edf331c..fc1667a5fba71 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.MultipleStabilityConfigurationTest/testExternalTypeStable[useFir = true].txt @@ -19,13 +19,13 @@ fun SkippableComposable(list: List, instant: Instant) { fun SkippableComposable(list: List, instant: Instant, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(list)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(instant)) 0b00100000 else 0b00010000 } - if (%dirty and 0b01011011 != 0b00010010 || !%composer.skipping) { + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = false].txt index b64bd9250726c..6cb47f9c7ae35 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = false].txt @@ -21,10 +21,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = true].txt index b64bd9250726c..6cb47f9c7ae35 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testForEarlyExit[useFir = true].txt @@ -21,10 +21,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = false].txt index 651b3ffb4de7b..60d9130792d00 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = false].txt @@ -24,18 +24,18 @@ fun Test(a: Int, b: Int, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(b)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = true].txt index 651b3ffb4de7b..60d9130792d00 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_AfterComposable[useFir = true].txt @@ -24,18 +24,18 @@ fun Test(a: Int, b: Int, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%default and 0b0010 == 0 && %composer.changed(b)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = false].txt index 2cbb30a7be829..f3283bfec282e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = false].txt @@ -22,10 +22,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int, %default: Int) { val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (%default and 0b0001 != 0) { a = { sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = true].txt index 2cbb30a7be829..f3283bfec282e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfDefaultParameters_Simple[useFir = true].txt @@ -22,10 +22,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int, %default: Int) { val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (%default and 0b0001 != 0) { a = { sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = false].txt index ae188a31c4a24..6ab60d155be07 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = false].txt @@ -30,16 +30,16 @@ fun Test(a: Boolean, visible: Boolean, onDismiss: Function0, %composer: Co %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)P(!1,2),<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(visible)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changedInstance(onDismiss)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = true].txt index ae188a31c4a24..6ab60d155be07 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testIntrinsicRememberOfLambdaInIfBlock[useFir = true].txt @@ -30,16 +30,16 @@ fun Test(a: Boolean, visible: Boolean, onDismiss: Function0, %composer: Co %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)P(!1,2),<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(visible)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changedInstance(onDismiss)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = false].txt index 54f77c71fd04d..cd6bd7868930e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = false].txt @@ -19,10 +19,10 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = true].txt index 54f77c71fd04d..cd6bd7868930e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWStableCapture[useFir = true].txt @@ -19,10 +19,10 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = false].txt index aa030ee00683e..c931541b262f7 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = false].txt @@ -17,15 +17,30 @@ import androidx.compose.runtime.* @Composable fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + sourceInformation(%composer, "C(Test)<{>,:Test.kt") + val %dirty = %changed + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 } - Wrapper({ - println(unstable) - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b00010001 != 0b00010000 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + Wrapper({ + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(unstable)) { + { + println(unstable) + } + } + sourceInformationMarkerEnd(%composer) + tmp0_group + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = true].txt index aa030ee00683e..c931541b262f7 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testMemoizationWUnstableCapture[useFir = true].txt @@ -17,15 +17,30 @@ import androidx.compose.runtime.* @Composable fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) - sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + sourceInformation(%composer, "C(Test)<{>,:Test.kt") + val %dirty = %changed + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 } - Wrapper({ - println(unstable) - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b00010001 != 0b00010000 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + Wrapper({ + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changedInstance(unstable)) { + { + println(unstable) + } + } + sourceInformationMarkerEnd(%composer) + tmp0_group + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = false].txt index a167475c0cd1f..b69eb363a4fab 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = false].txt @@ -22,10 +22,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = true].txt index a167475c0cd1f..b69eb363a4fab 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testOptimizationFailsIfDefaultsGroupIsUsed[useFir = true].txt @@ -22,10 +22,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int, %default: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%default and 0b0001 == 0 && %composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = false].txt index 62e183f06e9b5..98421ad186104 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = false].txt @@ -21,10 +21,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = true].txt index 62e183f06e9b5..98421ad186104 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testParamAndNonParamInputsInRestartableFunction[useFir = true].txt @@ -21,10 +21,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = false].txt index f870e9f2edd02..513c4d605692d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = false].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = true].txt index f870e9f2edd02..513c4d605692d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAdaptedFunctionReference[useFir = true].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = false].txt index e99a45c8bb1e4..debacb984e066 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = false].txt @@ -23,18 +23,18 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0100 == 0 && %composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { @@ -65,7 +65,7 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: sourceInformationMarkerEnd(%composer) tmp0_group } - used(s, %composer, 0b1000) + used(s, %composer, 0) if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = true].txt index e99a45c8bb1e4..debacb984e066 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterNonStaticDefaultParameters[useFir = true].txt @@ -23,18 +23,18 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%default and 0b0100 == 0 && %composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { %composer.startDefaults() if (%changed and 0b0001 == 0 || %composer.defaultsInvalid) { if (%default and 0b0001 != 0) { @@ -65,7 +65,7 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: sourceInformationMarkerEnd(%composer) tmp0_group } - used(s, %composer, 0b1000) + used(s, %composer, 0) if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = false].txt index 5469d909212c0..7ca9185da8d5d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = false].txt @@ -23,20 +23,20 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (%default and 0b0001 != 0) { a = 1 } @@ -57,7 +57,7 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: sourceInformationMarkerEnd(%composer) tmp0_group } - used(s, %composer, 0b1000) + used(s, %composer, 0) if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = true].txt index 5469d909212c0..7ca9185da8d5d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberAfterStaticDefaultParameters[useFir = true].txt @@ -23,20 +23,20 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: val %dirty = %changed if (%default and 0b0001 != 0) { %dirty = %dirty or 0b0110 - } else if (%changed and 0b1110 == 0) { + } else if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } if (%default and 0b0010 != 0) { %dirty = %dirty or 0b00110000 - } else if (%changed and 0b01110000 == 0) { + } else if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } if (%default and 0b0100 != 0) { %dirty = %dirty or 0b000110000000 - } else if (%changed and 0b001110000000 == 0) { + } else if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%dirty and 0b001011011011 != 0b10010010 || !%composer.skipping) { + if (%dirty and 0b10010011 != 0b10010010 || !%composer.skipping) { if (%default and 0b0001 != 0) { a = 1 } @@ -57,7 +57,7 @@ fun Test(a: Int, b: Foo?, c: Int, %composer: Composer?, %changed: Int, %default: sourceInformationMarkerEnd(%composer) tmp0_group } - used(s, %composer, 0b1000) + used(s, %composer, 0) if (isTraceInProgress()) { traceEventEnd() } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = false].txt index a8e3e86d15a59..549f4753c071e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = false].txt @@ -18,10 +18,10 @@ fun Test(param: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = true].txt index a8e3e86d15a59..549f4753c071e 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberExpressionMeta[useFir = true].txt @@ -18,10 +18,10 @@ fun Test(param: String, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = false].txt index ef91377a91ee5..46305059148f3 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = false].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = true].txt index ef91377a91ee5..46305059148f3 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberFunctionReference[useFir = true].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = false].txt index dc9e12cd259fd..14b6bb82d35dd 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = false].txt @@ -23,10 +23,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = true].txt index dc9e12cd259fd..14b6bb82d35dd 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIfWithComposableCallBefore[useFir = true].txt @@ -23,10 +23,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = false].txt index de206937b0996..7020b47fb16ab 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = false].txt @@ -23,10 +23,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = true].txt index de206937b0996..7020b47fb16ab 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfIf[useFir = true].txt @@ -23,10 +23,10 @@ fun Test(condition: Boolean, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test),:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(condition)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = false].txt index e235a45720164..132cc1c212c0d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = false].txt @@ -24,26 +24,34 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*,:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val = items.iterator() - while (.hasNext()) { - val item = .next() - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val = items.iterator() + while (.hasNext()) { + val item = .next() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group } - sourceInformationMarkerEnd(%composer) - tmp0_group + A(%composer, 0) + print(foo) + print(item) } - A(%composer, 0) - print(foo) - print(item) - } - if (isTraceInProgress()) { - traceEventEnd() + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = true].txt index e235a45720164..132cc1c212c0d 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithCallsAfter[useFir = true].txt @@ -24,26 +24,34 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*,:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val = items.iterator() - while (.hasNext()) { - val item = .next() - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val = items.iterator() + while (.hasNext()) { + val item = .next() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group } - sourceInformationMarkerEnd(%composer) - tmp0_group + A(%composer, 0) + print(foo) + print(item) } - A(%composer, 0) - print(foo) - print(item) - } - if (isTraceInProgress()) { - traceEventEnd() + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = false].txt index 3005a81a92566..60280e0c2d3a2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = false].txt @@ -23,25 +23,33 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val = items.iterator() - while (.hasNext()) { - val item = .next() - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val = items.iterator() + while (.hasNext()) { + val item = .next() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group } - sourceInformationMarkerEnd(%composer) - tmp0_group + print(foo) + print(item) } - print(foo) - print(item) - } - if (isTraceInProgress()) { - traceEventEnd() + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = true].txt index 3005a81a92566..60280e0c2d3a2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberInsideOfWhileWithOnlyRemembers[useFir = true].txt @@ -23,25 +23,33 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)*:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val = items.iterator() - while (.hasNext()) { - val item = .next() - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val = items.iterator() + while (.hasNext()) { + val item = .next() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group } - sourceInformationMarkerEnd(%composer) - tmp0_group + print(foo) + print(item) } - print(foo) - print(item) - } - if (isTraceInProgress()) { - traceEventEnd() + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = false].txt index e1fe07dae0ffd..6642a6f6067d8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = false].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = true].txt index e1fe07dae0ffd..6642a6f6067d8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberMemoizedLambda[useFir = true].txt @@ -20,10 +20,10 @@ fun Test(a: Int, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>:Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = false].txt index 57bbdc8f350f4..ed4669d44c153 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = false].txt @@ -20,10 +20,10 @@ fun Test(a: A, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = true].txt index 57bbdc8f350f4..ed4669d44c153 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberPropertyReference[useFir = true].txt @@ -20,10 +20,10 @@ fun Test(a: A, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = false].txt index f48a3b7db1f53..71258558b163c 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = false].txt @@ -21,10 +21,10 @@ fun Test(inlineInt: InlineInt, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)P(0:InlineInt):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed((inlineInt))) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = true].txt index f48a3b7db1f53..71258558b163c 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithInlineClassInput[useFir = true].txt @@ -21,10 +21,10 @@ fun Test(inlineInt: InlineInt, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)P(0:InlineInt):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed((inlineInt))) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = false].txt index 13525f38aa6df..8a22913bd9735 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = false].txt @@ -20,19 +20,19 @@ fun Test(a: Int, b: Int, c: Bar, d: Boolean, %composer: Composer?, %changed: Int %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%changed and 0b0001110000000000 == 0) { + if (%changed and 0b110000000000 == 0) { %dirty = %dirty or if (%composer.changed(d)) 0b100000000000 else 0b010000000000 } - if (%dirty and 0b0001011011011011 != 0b010010010010 || !%composer.skipping) { + if (%dirty and 0b010010010011 != 0b010010010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = true].txt index 13525f38aa6df..8a22913bd9735 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithNArgs[useFir = true].txt @@ -20,19 +20,19 @@ fun Test(a: Int, b: Int, c: Bar, d: Boolean, %composer: Composer?, %changed: Int %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(a)) 0b0100 else 0b0010 } - if (%changed and 0b01110000 == 0) { + if (%changed and 0b00110000 == 0) { %dirty = %dirty or if (%composer.changed(b)) 0b00100000 else 0b00010000 } - if (%changed and 0b001110000000 == 0) { + if (%changed and 0b000110000000 == 0) { %dirty = %dirty or if (%composer.changed(c)) 0b000100000000 else 0b10000000 } - if (%changed and 0b0001110000000000 == 0) { + if (%changed and 0b110000000000 == 0) { %dirty = %dirty or if (%composer.changed(d)) 0b100000000000 else 0b010000000000 } - if (%dirty and 0b0001011011011011 != 0b010010010010 || !%composer.skipping) { + if (%dirty and 0b010010010011 != 0b010010010010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = false].txt index e0489b71be545..0b42def29497f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = false].txt @@ -19,10 +19,10 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = true].txt index e0489b71be545..0b42def29497f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstableUnused_InInlineLambda[useFir = true].txt @@ -19,10 +19,10 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = false].txt index d8f0c08b837b3..35a4d846468d2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = false].txt @@ -20,21 +20,31 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (isTraceInProgress()) { - traceEventStart(<>, %dirty, -1, <>) + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - println(unstable) - InlineWrapper({ %composer: Composer?, %changed: Int -> - sourceInformationMarkerStart(%composer, <>, "C:Test.kt") - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - %composer.cache(%changed@Test and 0b1110 xor 0b0110 > 4 && %composer@Test.changed(param) || %changed@Test and 0b0110 == 0b0100) { - param + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 + } + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + println(unstable) + InlineWrapper({ %composer: Composer?, %changed: Int -> + sourceInformationMarkerStart(%composer, <>, "C:Test.kt") + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + %composer.cache(%dirty and 0b1110 == 0b0100) { + param + } + sourceInformationMarkerEnd(%composer) + sourceInformationMarkerEnd(%composer) + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() } - sourceInformationMarkerEnd(%composer) - sourceInformationMarkerEnd(%composer) - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = true].txt index d8f0c08b837b3..35a4d846468d2 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_InInlineLambda[useFir = true].txt @@ -20,21 +20,31 @@ fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") val %dirty = %changed - if (isTraceInProgress()) { - traceEventStart(<>, %dirty, -1, <>) + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - println(unstable) - InlineWrapper({ %composer: Composer?, %changed: Int -> - sourceInformationMarkerStart(%composer, <>, "C:Test.kt") - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - %composer.cache(%changed@Test and 0b1110 xor 0b0110 > 4 && %composer@Test.changed(param) || %changed@Test and 0b0110 == 0b0100) { - param + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 + } + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + println(unstable) + InlineWrapper({ %composer: Composer?, %changed: Int -> + sourceInformationMarkerStart(%composer, <>, "C:Test.kt") + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + %composer.cache(%dirty and 0b1110 == 0b0100) { + param + } + sourceInformationMarkerEnd(%composer) + sourceInformationMarkerEnd(%composer) + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() } - sourceInformationMarkerEnd(%composer) - sourceInformationMarkerEnd(%composer) - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = false].txt index 11c45ac3f2de4..ba438cfbc629a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = false].txt @@ -18,29 +18,40 @@ import androidx.compose.runtime.* fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - Wrapper(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> - sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) - } - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - %composer.cache(%composer.changed(param) or %composer.changed(unstable)) { - param - } - sourceInformationMarkerEnd(%composer) - if (isTraceInProgress()) { - traceEventEnd() + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 + } + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + Wrapper(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> + sourceInformation(%composer, "C:Test.kt") + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %changed, -1, <>) + } + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + %composer.cache(%composer.changed(param) or %composer.changed(unstable)) { + param + } + sourceInformationMarkerEnd(%composer) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } - } else { - %composer.skipToGroupEnd() + }, %composer, 0b00110110), %composer, 0b0110) + if (isTraceInProgress()) { + traceEventEnd() } - }, %composer, 0b00110110), %composer, 0b0110) - if (isTraceInProgress()) { - traceEventEnd() + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = true].txt index 11c45ac3f2de4..ba438cfbc629a 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRememberWithUnstable_inLambda[useFir = true].txt @@ -18,29 +18,40 @@ import androidx.compose.runtime.* fun Test(param: String, unstable: List<*>, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test)<{>,:Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changed(param)) 0b0100 else 0b0010 } - Wrapper(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> - sourceInformation(%composer, "C:Test.kt") - if (%changed and 0b1011 != 0b0010 || !%composer.skipping) { - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) - } - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - %composer.cache(%composer.changed(param) or %composer.changed(unstable)) { - param - } - sourceInformationMarkerEnd(%composer) - if (isTraceInProgress()) { - traceEventEnd() + if (%changed and 0b00110000 == 0) { + %dirty = %dirty or if (%composer.changedInstance(unstable)) 0b00100000 else 0b00010000 + } + if (%dirty and 0b00010011 != 0b00010010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + Wrapper(rememberComposableLambda(<>, true, { %composer: Composer?, %changed: Int -> + sourceInformation(%composer, "C:Test.kt") + if (%changed and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %changed, -1, <>) + } + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + %composer.cache(%composer.changed(param) or %composer.changed(unstable)) { + param + } + sourceInformationMarkerEnd(%composer) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } - } else { - %composer.skipToGroupEnd() + }, %composer, 0b00110110), %composer, 0b0110) + if (isTraceInProgress()) { + traceEventEnd() } - }, %composer, 0b00110110), %composer, 0b0110) - if (isTraceInProgress()) { - traceEventEnd() + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(param, unstable, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = false].txt index b920837a56f98..d2e671cfb85f8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = false].txt @@ -28,10 +28,10 @@ fun test1(x: KnownStable, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test1):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -55,17 +55,25 @@ fun test1(x: KnownStable, %composer: Composer?, %changed: Int) { fun test2(x: KnownUnstable, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test2):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) - } - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(%composer.changed(x)) { - 1 + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(x)) 0b0100 else 0b0010 } - sourceInformationMarkerEnd(%composer) - tmp0_group - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changed(x)) { + 1 + } + sourceInformationMarkerEnd(%composer) + tmp0_group + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> test2(x, %composer, updateChangedFlags(%changed or 0b0001)) @@ -76,10 +84,15 @@ fun test3(x: Uncertain, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test3):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { - %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (if (%changed and 0b1000 == 0) { + %composer.changed(x) + } else { + %composer.changedInstance(x) + } + ) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = true].txt index b920837a56f98..d2e671cfb85f8 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testRestartableParameterInputsStableUnstableUncertain[useFir = true].txt @@ -28,10 +28,10 @@ fun test1(x: KnownStable, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test1):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { + if (%changed and 0b0110 == 0) { %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } @@ -55,17 +55,25 @@ fun test1(x: KnownStable, %composer: Composer?, %changed: Int) { fun test2(x: KnownUnstable, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test2):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) - } - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(%composer.changed(x)) { - 1 + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(x)) 0b0100 else 0b0010 } - sourceInformationMarkerEnd(%composer) - tmp0_group - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(%composer.changed(x)) { + 1 + } + sourceInformationMarkerEnd(%composer) + tmp0_group + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> test2(x, %composer, updateChangedFlags(%changed or 0b0001)) @@ -76,10 +84,15 @@ fun test3(x: Uncertain, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(test3):Test.kt") val %dirty = %changed - if (%changed and 0b1110 == 0) { - %dirty = %dirty or if (%composer.changed(x)) 0b0100 else 0b0010 + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (if (%changed and 0b1000 == 0) { + %composer.changed(x) + } else { + %composer.changedInstance(x) + } + ) 0b0100 else 0b0010 } - if (%dirty and 0b1011 != 0b0010 || !%composer.skipping) { + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { if (isTraceInProgress()) { traceEventStart(<>, %dirty, -1, <>) } diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = false].txt index 1b84b36062337..19299715cf80f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = false].txt @@ -19,14 +19,22 @@ fun Test(items: Array) { fun Test(items: Array, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val foo = remember(*items, { - Foo() - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val foo = remember(*items, { + Foo() + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = true].txt index 1b84b36062337..19299715cf80f 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargWithSpread[useFir = true].txt @@ -19,14 +19,22 @@ fun Test(items: Array) { fun Test(items: Array, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val foo = remember(*items, { - Foo() - }, %composer, 0) - if (isTraceInProgress()) { - traceEventEnd() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) + } + val foo = remember(*items, { + Foo() + }, %composer, 0) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = false].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = false].txt index 9043caa448c9a..03ba004aa7c06 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = false].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = false].txt @@ -20,20 +20,28 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) } - sourceInformationMarkerEnd(%composer) - tmp0_group - } - used(items) - if (isTraceInProgress()) { - traceEventEnd() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } + used(items) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = true].txt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = true].txt index 9043caa448c9a..03ba004aa7c06 100644 --- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = true].txt +++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testZeroArgRemember[useFir = true].txt @@ -20,20 +20,28 @@ fun Test(items: List) { fun Test(items: List, %composer: Composer?, %changed: Int) { %composer = %composer.startRestartGroup(<>) sourceInformation(%composer, "C(Test):Test.kt") - if (isTraceInProgress()) { - traceEventStart(<>, %changed, -1, <>) + val %dirty = %changed + if (%changed and 0b0110 == 0) { + %dirty = %dirty or if (%composer.changedInstance(items)) 0b0100 else 0b0010 } - val foo = { - sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") - val tmp0_group = %composer.cache(false) { - Foo() + if (%dirty and 0b0011 != 0b0010 || !%composer.skipping) { + if (isTraceInProgress()) { + traceEventStart(<>, %dirty, -1, <>) } - sourceInformationMarkerEnd(%composer) - tmp0_group - } - used(items) - if (isTraceInProgress()) { - traceEventEnd() + val foo = { + sourceInformationMarkerStart(%composer, <>, "CC(remember):Test.kt#9igjgp") + val tmp0_group = %composer.cache(false) { + Foo() + } + sourceInformationMarkerEnd(%composer) + tmp0_group + } + used(items) + if (isTraceInProgress()) { + traceEventEnd() + } + } else { + %composer.skipToGroupEnd() } %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int -> Test(items, %composer, updateChangedFlags(%changed or 0b0001)) diff --git a/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt b/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt index 965cce39fa1bb..7409c378b4136 100644 --- a/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt +++ b/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt @@ -369,7 +369,7 @@ class ComposeCommandLineProcessor : CommandLineProcessor { * @param default True if the feature is enabled by default or false if it is not. */ enum class FeatureFlag(val featureName: String, val default: Boolean) { - StrongSkipping("StrongSkipping", default = false), + StrongSkipping("StrongSkipping", default = true), IntrinsicRemember("IntrinsicRemember", default = true), OptimizeNonSkippingGroups("OptimizeNonSkippingGroups", default = false); diff --git a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt index 5f582f94a7c24..a0176db463146 100644 --- a/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt +++ b/plugins/compose/compiler-hosted/testData/codegen/multiModulesWithComposableFunction.ir.txt @@ -26,7 +26,7 @@ MODULE_FRAGMENT $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 + other: CONST Int type=kotlin.Int value=3 arg1: CONST Int type=kotlin.Int value=2 then: CONST Boolean type=kotlin.Boolean value=true BRANCH diff --git a/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt index 6509a2c9ba435..8a87bc5c996b9 100644 --- a/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt +++ b/plugins/compose/compiler-hosted/testData/codegen/nestedLambda.ir.txt @@ -168,7 +168,7 @@ MODULE_FRAGMENT $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 + other: CONST Int type=kotlin.Int value=3 arg1: CONST Int type=kotlin.Int value=2 then: CONST Boolean type=kotlin.Boolean value=true BRANCH