Remove spread for varargs in restart lambda

The spread is invalid with default params (they are nullable) and it is more performant to pass args directly.

Test: Updated compiler test + bytecode test
diff --git a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/kotlin/androidx/compose/compiler/plugins/kotlin/ComposeBytecodeCodegenTest.kt b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/kotlin/androidx/compose/compiler/plugins/kotlin/ComposeBytecodeCodegenTest.kt
index c0e062a..64c4197 100644
--- a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/kotlin/androidx/compose/compiler/plugins/kotlin/ComposeBytecodeCodegenTest.kt
+++ b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/kotlin/androidx/compose/compiler/plugins/kotlin/ComposeBytecodeCodegenTest.kt
@@ -942,4 +942,23 @@
             }
         """,
     )
+
+    @Test
+    fun testVarargRestartGroup() {
+        validateBytecode(
+            """
+                import androidx.compose.runtime.*
+
+                @Composable
+                fun Foo(vararg text: String) {
+                    text.forEach { println(it) }
+                }
+            """,
+            validate = {
+                assertFalse {
+                    it.contains("Arrays.copyOf")
+                }
+            }
+        )
+    }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = false\135.txt"
index 4538294..4a7d912 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = false\135.txt"
@@ -56,7 +56,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @NonRestartableComposable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = true\135.txt"
index 4538294..4a7d912 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testStableVarargParams\133useFir = true\135.txt"
@@ -56,7 +56,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @NonRestartableComposable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = false\135.txt"
index c02e59d..db9d749 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = false\135.txt"
@@ -55,7 +55,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    VarArgsFirst(*foo, %composer, updateChangedFlags(%changed or 0b0001))
+    VarArgsFirst(foo, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = true\135.txt"
index c02e59d..db9d749 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.ComposerParamTransformTests/testVarargWithNoArgs\133useFir = true\135.txt"
@@ -55,7 +55,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    VarArgsFirst(*foo, %composer, updateChangedFlags(%changed or 0b0001))
+    VarArgsFirst(foo, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = false\135.txt"
index 1c3f685..0a4c81f 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = false\135.txt"
@@ -69,6 +69,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    VarargComposable(state, *values, %composer, updateChangedFlags(%changed or 0b0001), %default)
+    VarargComposable(state, values, %composer, updateChangedFlags(%changed or 0b0001), %default)
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = true\135.txt"
index 1c3f685..0a4c81f 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testArrayDefaultArgWithState\133useFir = true\135.txt"
@@ -69,6 +69,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    VarargComposable(state, *values, %composer, updateChangedFlags(%changed or 0b0001), %default)
+    VarargComposable(state, values, %composer, updateChangedFlags(%changed or 0b0001), %default)
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = false\135.txt"
index 852888f..412b79a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = false\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = true\135.txt"
index 852888f..412b79a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testPrimitiveVarargParams\133useFir = true\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = false\135.txt"
index b85294c..2f202d0 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = false\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = true\135.txt"
index b85294c..2f202d0 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testStableVarargParams\133useFir = true\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = false\135.txt"
index 5c211f3..3339116 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = false\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = true\135.txt"
index 5c211f3..3339116 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.FunctionBodySkippingTransformTests/testUnstableVarargParams\133useFir = true\135.txt"
@@ -44,6 +44,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    B(*values, %composer, updateChangedFlags(%changed or 0b0001))
+    B(values, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = false\135.txt"
index 2576b60..23ae234 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = false\135.txt"
@@ -62,6 +62,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Test(*strings, %composer, updateChangedFlags(%changed or 0b0001))
+    Test(strings, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = true\135.txt"
index 2576b60..23ae234 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.RememberIntrinsicTransformTests/testVarargsIntrinsicRemember\133useFir = true\135.txt"
@@ -62,6 +62,6 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Test(*strings, %composer, updateChangedFlags(%changed or 0b0001))
+    Test(strings, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
index 7931cd3..33d8635 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
@@ -53,7 +53,7 @@
     }
     val tmp0_rcvr = <this>
     %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-      tmp0_rcvr.Test(*x, %composer, updateChangedFlags(%changed or 0b0001))
+      tmp0_rcvr.Test(x, %composer, updateChangedFlags(%changed or 0b0001))
     }
   }
   static val %stable: Int = 0
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
index 7931cd3..33d8635 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
@@ -53,7 +53,7 @@
     }
     val tmp0_rcvr = <this>
     %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-      tmp0_rcvr.Test(*x, %composer, updateChangedFlags(%changed or 0b0001))
+      tmp0_rcvr.Test(x, %composer, updateChangedFlags(%changed or 0b0001))
     }
   }
   static val %stable: Int = 0
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
index 7931cd3..33d8635 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
@@ -53,7 +53,7 @@
     }
     val tmp0_rcvr = <this>
     %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-      tmp0_rcvr.Test(*x, %composer, updateChangedFlags(%changed or 0b0001))
+      tmp0_rcvr.Test(x, %composer, updateChangedFlags(%changed or 0b0001))
     }
   }
   static val %stable: Int = 0
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
index 7931cd3..33d8635 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testRuntimeStableVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
@@ -53,7 +53,7 @@
     }
     val tmp0_rcvr = <this>
     %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-      tmp0_rcvr.Test(*x, %composer, updateChangedFlags(%changed or 0b0001))
+      tmp0_rcvr.Test(x, %composer, updateChangedFlags(%changed or 0b0001))
     }
   }
   static val %stable: Int = 0
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
index 24eb092..0d2fd4a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = false\135.txt"
@@ -43,7 +43,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Varargs(*ints, %composer, updateChangedFlags(%changed or 0b0001))
+    Varargs(ints, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
index 24eb092..0d2fd4a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = false, intrinsicRemember = true\135.txt"
@@ -43,7 +43,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Varargs(*ints, %composer, updateChangedFlags(%changed or 0b0001))
+    Varargs(ints, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = false\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
index 24eb092..0d2fd4a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = false\135.txt"
@@ -43,7 +43,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Varargs(*ints, %composer, updateChangedFlags(%changed or 0b0001))
+    Varargs(ints, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = true\135.txt" "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
index 24eb092..0d2fd4a 100644
--- "a/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
+++ "b/plugins/compose/compiler-hosted/integration-tests/src/jvmTest/resources/golden/androidx.compose.compiler.plugins.kotlin.StrongSkippingModeTransformTests/testVarArgs\133useFir = true, intrinsicRemember = true\135.txt"
@@ -43,7 +43,7 @@
     %composer.skipToGroupEnd()
   }
   %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
-    Varargs(*ints, %composer, updateChangedFlags(%changed or 0b0001))
+    Varargs(ints, %composer, updateChangedFlags(%changed or 0b0001))
   }
 }
 @Composable
diff --git a/plugins/compose/compiler-hosted/runtime-tests/src/commonTest/kotlin/androidx/compose/compiler/test/CompositionTests.kt b/plugins/compose/compiler-hosted/runtime-tests/src/commonTest/kotlin/androidx/compose/compiler/test/CompositionTests.kt
index 0a31162..126fa30 100644
--- a/plugins/compose/compiler-hosted/runtime-tests/src/commonTest/kotlin/androidx/compose/compiler/test/CompositionTests.kt
+++ b/plugins/compose/compiler-hosted/runtime-tests/src/commonTest/kotlin/androidx/compose/compiler/test/CompositionTests.kt
@@ -270,6 +270,21 @@
             Text("c")
         }
     }
+
+    @Test
+    fun varargsInRestartableComposable() = compositionTest {
+        val state1 = mutableStateOf(Unit, neverEqualPolicy())
+        var counter = 0
+        compose {
+            RestartableVararg(state1) { counter++ }
+        }
+
+        assertEquals(1, counter)
+        state1.value = Unit
+        advance()
+
+        assertEquals(2, counter)
+    }
 }
 
 @Composable
@@ -337,4 +352,12 @@
 @Composable
 fun MultipleText(vararg strings: String = emptyArray()) {
     strings.forEach { Text(it) }
+}
+
+@Composable
+fun RestartableVararg(vararg states: State<Unit> = emptyArray(), invoke: () -> Unit) {
+    invoke()
+    for (state in states) {
+        state.value
+    }
 }
\ No newline at end of file
diff --git a/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableFunctionBodyTransformer.kt b/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableFunctionBodyTransformer.kt
index c482475..7feb20f 100644
--- a/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableFunctionBodyTransformer.kt
+++ b/plugins/compose/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableFunctionBodyTransformer.kt
@@ -1774,29 +1774,8 @@
                     irCall(function.symbol).apply {
                         symbol.owner
                             .valueParameters
-                            .fastForEachIndexed { index, param ->
-                                if (param.isVararg) {
-                                    putValueArgument(
-                                        index,
-                                        IrVarargImpl(
-                                            UNDEFINED_OFFSET,
-                                            UNDEFINED_OFFSET,
-                                            param.type,
-                                            param.varargElementType!!,
-                                            elements = listOf(
-                                                IrSpreadElementImpl(
-                                                    UNDEFINED_OFFSET,
-                                                    UNDEFINED_OFFSET,
-                                                    irGet(param)
-                                                )
-                                            )
-                                        )
-                                    )
-                                } else {
-                                    // NOTE(lmr): should we be using the parameter here, or the temporary
-                                    // with the default value?
-                                    putValueArgument(index, irGet(param))
-                                }
+                            .fastForEach { param ->
+                                arguments[param.indexInParameters] = irGet(param)
                             }
 
                         // new composer