[go: nahoru, domu]

Removes baselined ListIterator issues

The majority of these issues have been fixed by migrating to using the corresponding fast* API
A few have been suppressed where there are missing utils / it requires bigger changes to the logic

Test: lintDebug
Change-Id: I13204f11a87cb2930bb3b09d2b762feeec36bbf9
diff --git a/compose/animation/animation-core/lint-baseline.xml b/compose/animation/animation-core/lint-baseline.xml
index 8e853fd..6302da6 100644
--- a/compose/animation/animation-core/lint-baseline.xml
+++ b/compose/animation/animation-core/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.2.0-alpha14" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha14)" variant="all" version="8.2.0-alpha14">
 
     <issue
         id="BanSuppressTag"
@@ -83,87 +83,6 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _animations.forEach {"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _transitions.forEach {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _animations.forEach {"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _transitions.forEach {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _transitions.forEach {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        _animations.forEach {"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                _animations.forEach { it.resetAnimation() }"
-        errorLine2="                            ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        return animations.fold(&quot;Transition animation values: &quot;) { acc, anim -> &quot;$acc$anim, &quot; }"
-        errorLine2="                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            _animations.forEach {"
-        errorLine2="                        ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt"/>
-    </issue>
-
-    <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method animateFloatAsState has parameter &apos;finishedListener&apos; with type Function1&lt;? super Float, Unit>."
         errorLine1="    finishedListener: ((Float) -> Unit)? = null"
diff --git a/compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt b/compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
index cae02e2..963abe7 100644
--- a/compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
+++ b/compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
@@ -40,6 +40,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.IntOffset
 import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastForEach
 import kotlin.math.max
 import kotlin.math.roundToLong
 
@@ -460,10 +462,10 @@
      */
     val totalDurationNanos: Long by derivedStateOf {
         var maxDurationNanos = 0L
-        _animations.forEach {
+        _animations.fastForEach {
             maxDurationNanos = max(maxDurationNanos, it.durationNanos)
         }
-        _transitions.forEach {
+        _transitions.fastForEach {
             maxDurationNanos = max(
                 maxDurationNanos,
                 it.totalDurationNanos
@@ -483,7 +485,7 @@
         playTimeNanos = frameTimeNanos - startTimeNanos
         var allFinished = true
         // Pulse new playtime
-        _animations.forEach {
+        _animations.fastForEach {
             if (!it.isFinished) {
                 it.onPlayTimeChanged(playTimeNanos, durationScale)
             }
@@ -492,7 +494,7 @@
                 allFinished = false
             }
         }
-        _transitions.forEach {
+        _transitions.fastForEach {
             if (it.targetState != it.currentState) {
                 it.onFrame(playTimeNanos, durationScale)
             }
@@ -563,7 +565,7 @@
             segment = SegmentImpl(initialState, targetState)
         }
 
-        _transitions.forEach {
+        _transitions.fastForEach {
             @Suppress("UNCHECKED_CAST")
             (it as Transition<Any>).let {
                 if (it.isSeeking) {
@@ -576,7 +578,7 @@
             }
         }
 
-        _animations.forEach {
+        _animations.fastForEach {
             it.seekTo(playTimeNanos)
         }
         lastSeekedTimeNanos = playTimeNanos
@@ -621,7 +623,7 @@
                 // If target state is changed, reset all the animations to be re-created in the
                 // next frame w/ their new target value. Child animations target values are updated in
                 // the side effect that may not have happened when this function in invoked.
-                _animations.forEach { it.resetAnimation() }
+                _animations.fastForEach { it.resetAnimation() }
             }
         }
     }
@@ -655,7 +657,7 @@
     }
 
     override fun toString(): String {
-        return animations.fold("Transition animation values: ") { acc, anim -> "$acc$anim, " }
+        return animations.fastFold("Transition animation values: ") { acc, anim -> "$acc$anim, " }
     }
 
     @OptIn(InternalAnimationApi::class)
@@ -664,7 +666,7 @@
         if (isSeeking) {
             // Update total duration
             var maxDurationNanos = 0L
-            _animations.forEach {
+            _animations.fastForEach {
                 maxDurationNanos = max(maxDurationNanos, it.durationNanos)
                 it.seekTo(lastSeekedTimeNanos)
             }
diff --git a/compose/animation/animation-graphics/lint-baseline.xml b/compose/animation/animation-graphics/lint-baseline.xml
index 6f66ed4..f4264ea 100644
--- a/compose/animation/animation-graphics/lint-baseline.xml
+++ b/compose/animation/animation-graphics/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
 
     <issue
         id="RestrictedApi"
@@ -10,58 +10,4 @@
             file="src/androidMain/kotlin/androidx/compose/animation/graphics/vector/compat/XmlAnimatorParser.android.kt"/>
     </issue>
 
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (target in animatedImageVector.targets) {"
-        errorLine2="                    ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/animation/graphics/res/AnimatedVectorPainterResources.android.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val spec = combined(timestamps.map { timestamp ->"
-        errorLine2="                                           ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            for (keyframe in animatorKeyframes) {"
-        errorLine2="                          ~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            for (keyframe in animatorKeyframes) {"
-        errorLine2="                          ~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    return start.zip(stop) { a, b -> lerp(a, b, fraction) }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            specs.map { (timeMillis, spec) ->"
-        errorLine2="                  ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/graphics/vector/AnimatorAnimationSpecs.kt"/>
-    </issue>
-
 </issues>
diff --git a/compose/animation/animation-graphics/src/androidMain/kotlin/androidx/compose/animation/graphics/res/AnimatedVectorPainterResources.android.kt b/compose/animation/animation-graphics/src/androidMain/kotlin/androidx/compose/animation/graphics/res/AnimatedVectorPainterResources.android.kt
index 58544fd..0cd641d 100644
--- a/compose/animation/animation-graphics/src/androidMain/kotlin/androidx/compose/animation/graphics/res/AnimatedVectorPainterResources.android.kt
+++ b/compose/animation/animation-graphics/src/androidMain/kotlin/androidx/compose/animation/graphics/res/AnimatedVectorPainterResources.android.kt
@@ -28,6 +28,7 @@
 import androidx.compose.ui.graphics.vector.VectorConfig
 import androidx.compose.ui.graphics.vector.VectorGroup
 import androidx.compose.ui.graphics.vector.rememberVectorPainter
+import androidx.compose.ui.util.fastForEach
 
 /**
  * Creates and remembers a [Painter] to render an [AnimatedImageVector]. It renders the image
@@ -69,7 +70,7 @@
     ) { _, _ ->
         val transition = updateTransition(atEnd, label = animatedImageVector.imageVector.name)
         val map = mutableMapOf<String, StateVectorConfig>()
-        for (target in animatedImageVector.targets) {
+        animatedImageVector.targets.fastForEach { target ->
             val config = target.animator.createVectorConfig(
                 transition,
                 animatedImageVector.totalDuration
diff --git a/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt b/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt
index 37fa401..d4ffb83 100644
--- a/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt
+++ b/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/Animator.kt
@@ -37,8 +37,10 @@
 import androidx.compose.ui.graphics.vector.VectorConfig
 import androidx.compose.ui.graphics.vector.VectorProperty
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.fastMaxBy
 import androidx.compose.ui.util.fastSumBy
+import androidx.compose.ui.util.fastZip
 import androidx.compose.ui.util.lerp
 
 internal const val RepeatCountInfinite = -1
@@ -146,7 +148,7 @@
     ): @Composable Transition.Segment<Boolean>.() -> FiniteAnimationSpec<T> {
         return {
             @Suppress("UNCHECKED_CAST")
-            val spec = combined(timestamps.map { timestamp ->
+            val spec = combined(timestamps.fastMap { timestamp ->
                 timestamp.timeMillis to timestamp.asAnimationSpec()
             })
             if (targetState) spec else spec.reversed(overallDuration)
@@ -381,7 +383,7 @@
     fun asKeyframeSpec(duration: Int): KeyframesSpec<Float> {
         return keyframes {
             durationMillis = duration
-            for (keyframe in animatorKeyframes) {
+            animatorKeyframes.fastForEach { keyframe ->
                 keyframe.value at (duration * keyframe.fraction).toInt() with keyframe.interpolator
             }
         }
@@ -401,7 +403,7 @@
     fun asKeyframeSpec(duration: Int): KeyframesSpec<Color> {
         return keyframes {
             durationMillis = duration
-            for (keyframe in animatorKeyframes) {
+            animatorKeyframes.fastForEach { keyframe ->
                 keyframe.value at (duration * keyframe.fraction).toInt() with keyframe.interpolator
             }
         }
@@ -507,7 +509,7 @@
 }
 
 private fun lerp(start: List<PathNode>, stop: List<PathNode>, fraction: Float): List<PathNode> {
-    return start.zip(stop) { a, b -> lerp(a, b, fraction) }
+    return start.fastZip(stop) { a, b -> lerp(a, b, fraction) }
 }
 
 private const val DifferentStartAndStopPathNodes = "start and stop path nodes have different types"
diff --git a/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/AnimatorAnimationSpecs.kt b/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/AnimatorAnimationSpecs.kt
index 3709bbc..7d9ef65 100644
--- a/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/AnimatorAnimationSpecs.kt
+++ b/compose/animation/animation-graphics/src/commonMain/kotlin/androidx/compose/animation/graphics/vector/AnimatorAnimationSpecs.kt
@@ -24,6 +24,7 @@
 import androidx.compose.animation.core.FiniteAnimationSpec
 import androidx.compose.animation.core.TwoWayConverter
 import androidx.compose.animation.core.VectorizedFiniteAnimationSpec
+import androidx.compose.ui.util.fastMap
 
 private const val MillisToNanos = 1_000_000L
 
@@ -101,7 +102,7 @@
         converter: TwoWayConverter<T, V>
     ): VectorizedFiniteAnimationSpec<V> {
         return VectorizedCombinedSpec(
-            specs.map { (timeMillis, spec) ->
+            specs.fastMap { (timeMillis, spec) ->
                 timeMillis * MillisToNanos to spec.vectorize(converter)
             }
         )
diff --git a/compose/animation/animation/lint-baseline.xml b/compose/animation/animation/lint-baseline.xml
index d6cc720..76c606a 100644
--- a/compose/animation/animation/lint-baseline.xml
+++ b/compose/animation/animation/lint-baseline.xml
@@ -1,95 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                currentlyVisible.forEach {"
-        errorLine2="                                 ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.minIntrinsicWidth(height) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.minIntrinsicHeight(width) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.maxIntrinsicWidth(height) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.maxIntrinsicHeight(width) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeables = measurables.map { it.measure(constraints) }"
-        errorLine2="                                     ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.minIntrinsicWidth(height) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.minIntrinsicHeight(width) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.maxIntrinsicWidth(height) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = measurables.asSequence().map { it.maxIntrinsicHeight(width) }.maxOrNull() ?: 0"
-        errorLine2="                    ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt"/>
-    </issue>
+<issues format="6" by="lint 8.2.0-alpha14" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha14)" variant="all" version="8.2.0-alpha14">
 
     <issue
         id="PrimitiveInLambda"
diff --git a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt
index 94f9f66..b82c044 100644
--- a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt
+++ b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedContent.kt
@@ -79,6 +79,7 @@
 import androidx.compose.ui.unit.toSize
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMaxOfOrNull
 import kotlin.math.roundToInt
 import kotlinx.coroutines.CoroutineScope
 
@@ -849,7 +850,7 @@
                 }
                 .then(sizeModifier),
             content = {
-                currentlyVisible.forEach {
+                currentlyVisible.fastForEach {
                     key(contentKey(it)) { contentMap[it]?.invoke() }
                 }
             },
@@ -1044,22 +1045,22 @@
     override fun IntrinsicMeasureScope.minIntrinsicWidth(
         measurables: List<IntrinsicMeasurable>,
         height: Int
-    ) = measurables.asSequence().map { it.minIntrinsicWidth(height) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.minIntrinsicWidth(height) } ?: 0
 
     override fun IntrinsicMeasureScope.minIntrinsicHeight(
         measurables: List<IntrinsicMeasurable>,
         width: Int
-    ) = measurables.asSequence().map { it.minIntrinsicHeight(width) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.minIntrinsicHeight(width) } ?: 0
 
     override fun IntrinsicMeasureScope.maxIntrinsicWidth(
         measurables: List<IntrinsicMeasurable>,
         height: Int
-    ) = measurables.asSequence().map { it.maxIntrinsicWidth(height) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.maxIntrinsicWidth(height) } ?: 0
 
     override fun IntrinsicMeasureScope.maxIntrinsicHeight(
         measurables: List<IntrinsicMeasurable>,
         width: Int
-    ) = measurables.asSequence().map { it.maxIntrinsicHeight(width) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.maxIntrinsicHeight(width) } ?: 0
 }
 
 private class SizeModifierInLookaheadNode<S>(
diff --git a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
index 367c85b..c6459b7 100644
--- a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
+++ b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
@@ -54,7 +54,9 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.fastMaxBy
+import androidx.compose.ui.util.fastMaxOfOrNull
 
 /**
  * [AnimatedVisibility] composable animates the appearance and disappearance of its content, as
@@ -846,7 +848,7 @@
         measurables: List<Measurable>,
         constraints: Constraints
     ): MeasureResult {
-        val placeables = measurables.map { it.measure(constraints) }
+        val placeables = measurables.fastMap { it.measure(constraints) }
         val maxWidth: Int = placeables.fastMaxBy { it.width }?.width ?: 0
         val maxHeight = placeables.fastMaxBy { it.height }?.height ?: 0
         // Position the children.
@@ -861,22 +863,22 @@
     override fun IntrinsicMeasureScope.minIntrinsicWidth(
         measurables: List<IntrinsicMeasurable>,
         height: Int
-    ) = measurables.asSequence().map { it.minIntrinsicWidth(height) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.minIntrinsicWidth(height) } ?: 0
 
     override fun IntrinsicMeasureScope.minIntrinsicHeight(
         measurables: List<IntrinsicMeasurable>,
         width: Int
-    ) = measurables.asSequence().map { it.minIntrinsicHeight(width) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.minIntrinsicHeight(width) } ?: 0
 
     override fun IntrinsicMeasureScope.maxIntrinsicWidth(
         measurables: List<IntrinsicMeasurable>,
         height: Int
-    ) = measurables.asSequence().map { it.maxIntrinsicWidth(height) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.maxIntrinsicWidth(height) } ?: 0
 
     override fun IntrinsicMeasureScope.maxIntrinsicHeight(
         measurables: List<IntrinsicMeasurable>,
         width: Int
-    ) = measurables.asSequence().map { it.maxIntrinsicHeight(width) }.maxOrNull() ?: 0
+    ) = measurables.fastMaxOfOrNull { it.maxIntrinsicHeight(width) } ?: 0
 }
 
 // This converts Boolean visible to EnterExitState
diff --git a/compose/foundation/foundation/lint-baseline.xml b/compose/foundation/foundation/lint-baseline.xml
index 4fa6762..21f098b 100644
--- a/compose/foundation/foundation/lint-baseline.xml
+++ b/compose/foundation/foundation/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
 
     <issue
         id="NewApi"
@@ -1470,6 +1470,42 @@
 
     <issue
         id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method HorizontalPager has parameter &apos;key&apos; with type Function1&lt;? super Integer, ? extends Object>."
+        errorLine1="    key: ((index: Int) -> Any)? = null,"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method HorizontalPager has parameter &apos;pageContent&apos; with type Function2&lt;? super PagerScope, ? super Integer, Unit>."
+        errorLine1="    pageContent: @Composable PagerScope.(page: Int) -> Unit"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method VerticalPager has parameter &apos;key&apos; with type Function1&lt;? super Integer, ? extends Object>."
+        errorLine1="    key: ((index: Int) -> Any)? = null,"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method VerticalPager has parameter &apos;pageContent&apos; with type Function2&lt;? super PagerScope, ? super Integer, Unit>."
+        errorLine1="    pageContent: @Composable PagerScope.(page: Int) -> Unit"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method VerticalPager has parameter &apos;key&apos; with type Function1&lt;? super Integer, ? extends Object>."
         errorLine1="    key: ((index: Int) -> Any)? = null,"
         errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~">
diff --git a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/AndroidOverscroll.kt b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/AndroidOverscroll.kt
index 2da447e..7c67818 100644
--- a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/AndroidOverscroll.kt
+++ b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/AndroidOverscroll.kt
@@ -55,6 +55,7 @@
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.toSize
 import androidx.compose.ui.util.fastAny
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.fastForEach
 import kotlin.math.roundToInt
diff --git a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.android.kt b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.android.kt
index c047b0d..938d5f0 100644
--- a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.android.kt
+++ b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.android.kt
@@ -16,13 +16,13 @@
 
 package androidx.compose.foundation.gestures
 
-import androidx.compose.foundation.fastFold
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.input.pointer.PointerEvent
 import androidx.compose.ui.node.CompositionLocalConsumerModifierNode
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
 
 internal actual fun CompositionLocalConsumerModifierNode.platformScrollConfig(): ScrollConfig =
     AndroidConfig
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/snapping/LazyGridSnapLayoutInfoProvider.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/snapping/LazyGridSnapLayoutInfoProvider.kt
index 995e2b7..236c03f 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/snapping/LazyGridSnapLayoutInfoProvider.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/snapping/LazyGridSnapLayoutInfoProvider.kt
@@ -20,12 +20,12 @@
 import androidx.compose.animation.core.calculateTargetValue
 import androidx.compose.animation.splineBasedDecay
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.fastFilter
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.lazy.grid.LazyGridItemInfo
 import androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo
 import androidx.compose.foundation.lazy.grid.LazyGridState
 import androidx.compose.ui.unit.Density
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastSumBy
 import kotlin.math.absoluteValue
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasure.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasure.kt
index 6402fc2..0f08e81 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasure.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasure.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.lazy
 
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.fastFilter
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.ui.layout.MeasureResult
@@ -28,6 +27,7 @@
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.constrainWidth
 import androidx.compose.ui.util.fastAny
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.fastForEach
 import kotlin.math.abs
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridMeasure.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridMeasure.kt
index 07c9edb..997dcd6 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridMeasure.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/grid/LazyGridMeasure.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.lazy.grid
 
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.fastFilter
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.ui.layout.MeasureResult
@@ -27,6 +26,7 @@
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.constrainWidth
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastSumBy
 import kotlin.math.abs
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyStaggeredGridMeasure.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyStaggeredGridMeasure.kt
index 5765b23..cacee1b 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyStaggeredGridMeasure.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyStaggeredGridMeasure.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.lazy.staggeredgrid
 
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.fastMaxOfOrNull
 import androidx.compose.foundation.lazy.layout.LazyLayoutKeyIndexMap
 import androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope
 import androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridLaneInfo.Companion.FullSpan
@@ -31,6 +30,7 @@
 import androidx.compose.ui.unit.constrainWidth
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMaxOfOrNull
 import androidx.compose.ui.util.packInts
 import androidx.compose.ui.util.unpackInt1
 import androidx.compose.ui.util.unpackInt2
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerMeasure.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerMeasure.kt
index 4a89200..4838339 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerMeasure.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/PagerMeasure.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.pager
 
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.fastFilter
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.Arrangement.Absolute.spacedBy
 import androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope
@@ -30,6 +29,7 @@
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.constrainWidth
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import kotlin.math.abs
 import kotlin.math.roundToInt
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
index 45409ef..95bc432 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
@@ -16,7 +16,6 @@
 
 package androidx.compose.foundation.text
 
-import androidx.compose.foundation.fastMapIndexedNotNull
 import androidx.compose.foundation.text.modifiers.SelectableTextAnnotatedStringElement
 import androidx.compose.foundation.text.modifiers.SelectionController
 import androidx.compose.foundation.text.modifiers.TextAnnotatedStringElement
@@ -50,6 +49,7 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.IntOffset
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMapIndexedNotNull
 import kotlin.math.floor
 import kotlin.math.roundToInt
 
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.kt
index 62e6c4b..2e1e17d 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.kt
@@ -16,7 +16,6 @@
 
 package androidx.compose.foundation.text.selection
 
-import androidx.compose.foundation.fastFold
 import androidx.compose.foundation.focusable
 import androidx.compose.foundation.gestures.awaitEachGesture
 import androidx.compose.foundation.gestures.waitForUpOrCancellation
@@ -49,6 +48,7 @@
 import androidx.compose.ui.platform.TextToolbarStatus
 import androidx.compose.ui.text.AnnotatedString
 import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.util.fastFold
 import androidx.compose.ui.util.fastForEach
 import kotlin.math.absoluteValue
 import kotlin.math.max
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SimpleLayout.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SimpleLayout.kt
index 5d19876..ba1865c 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SimpleLayout.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SimpleLayout.kt
@@ -16,10 +16,10 @@
 
 package androidx.compose.foundation.text.selection
 
-import androidx.compose.foundation.fastFold
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.layout.Layout
+import androidx.compose.ui.util.fastFold
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
 import kotlin.math.max
diff --git a/compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.desktop.kt b/compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.desktop.kt
index ba28512..e57ca9b 100644
--- a/compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.desktop.kt
+++ b/compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.desktop.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.gestures
 
 import androidx.compose.foundation.DesktopPlatform
-import androidx.compose.foundation.fastFold
 import androidx.compose.runtime.compositionLocalOf
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.input.pointer.PointerEvent
@@ -26,6 +25,7 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
 import java.awt.event.MouseWheelEvent
 import kotlin.math.sqrt
 
diff --git a/compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/ScrollbarTest.kt b/compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/ScrollbarTest.kt
index 0d918c1..8a0761c 100644
--- a/compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/ScrollbarTest.kt
+++ b/compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/ScrollbarTest.kt
@@ -53,6 +53,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.runBlocking
diff --git a/compose/material/material/lint-baseline.xml b/compose/material/material/lint-baseline.xml
index 564dcc8..c8e0bc4 100644
--- a/compose/material/material/lint-baseline.xml
+++ b/compose/material/material/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.1.0-beta05" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta05)" variant="all" version="8.1.0-beta05">
 
     <issue
         id="BanThreadSleep"
@@ -137,654 +137,6 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val titlePlaceable = measurables.firstOrNull { it.layoutId == &quot;title&quot; }?.measure("
-        errorLine2="                                         ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val textPlaceable = measurables.firstOrNull { it.layoutId == &quot;text&quot; }?.measure("
-        errorLine2="                                        ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            sequences.add(0, currentSequence.toList())"
-        errorLine2="                                             ~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (measurable in measurables) {"
-        errorLine2="                        ~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val badgePlaceable = measurables.first { it.layoutId == &quot;badge&quot; }.measure("
-        errorLine2="                                         ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Badge.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val anchorPlaceable = measurables.first { it.layoutId == &quot;anchor&quot; }.measure(constraints)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Badge.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val iconPlaceable = measurables.first { it.layoutId == &quot;icon&quot; }.measure(constraints)"
-        errorLine2="                                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;label&quot; }.measure("
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.map { it.measure(looseConstraints) }"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .map { it.measure(looseConstraints) }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.map { it.measure(bodyConstraints) }"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            subcompose(BottomSheetScaffoldLayoutSlot.Fab, fab).map { it.measure(looseConstraints) }"
-        errorLine2="                                                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .map { it.measure(looseConstraints) }"
-        errorLine2="             ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeables = measurables.map { it.measure(childConstraints) }"
-        errorLine2="                                     ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/ListItem.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val containerWidth = placeables.fold(0) { maxWidth, placeable ->"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/ListItem.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val iconPlaceable = measurables.first { it.layoutId == &quot;icon&quot; }.measure(constraints)"
-        errorLine2="                                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;label&quot; }.measure("
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingPlaceable = measurables.find {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == TextFieldId }.measure(textConstraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == PlaceholderId }?.measure(placeholderConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val borderPlaceable = measurables.first { it.layoutId == BorderId }.measure("
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                     ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                         ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).map {"
-        errorLine2="                                                                                      ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        tickFractions.groupBy { it > positionFractionEnd || it &lt; positionFractionStart }"
-        errorLine2="                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    list.map {"
-        errorLine2="                         ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        .minByOrNull { abs(lerp(minPx, maxPx, it) - current) }"
-        errorLine2="         ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val buttonPlaceable = measurables.first { it.layoutId == actionTag }.measure(constraints)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Snackbar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val textPlaceable = measurables.first { it.layoutId == textTag }.measure("
-        errorLine2="                                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Snackbar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val keys = state.items.map { it.key }.toMutableList()"
-        errorLine2="                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        keys.filterNotNull().mapTo(state.items) { key ->"
-        errorLine2="             ~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        keys.filterNotNull().mapTo(state.items) { key ->"
-        errorLine2="                             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                val animationDelay = if (isVisible &amp;&amp; keys.filterNotNull().size != 1) delay else 0"
-        errorLine2="                                                           ~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val a = anchors.filter { it &lt;= offset + 0.001 }.maxOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Swipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Swipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;text&quot; }.measure("
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Tab.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;icon&quot; }.measure(constraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/Tab.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val tabPlaceables = tabMeasurables.map {"
-        errorLine2="                                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val tabRowHeight = tabPlaceables.maxByOrNull { it.height }?.height ?: 0"
-        errorLine2="                                             ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabPlaceables.forEachIndexed { index, placeable ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                subcompose(TabSlots.Divider, divider).forEach {"
-        errorLine2="                                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                }.forEach {"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .map { it.measure(tabConstraints) }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            tabPlaceables.forEach {"
-        errorLine2="                          ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabPlaceables.forEach {"
-        errorLine2="                              ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                subcompose(TabSlots.Divider, divider).forEach {"
-        errorLine2="                                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                }.forEach {"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LeadingId }?.measure(looseConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .first { it.layoutId == TextFieldId }"
-        errorLine2="             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .find { it.layoutId == PlaceholderId }"
-        errorLine2="             ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                     ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                         ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material/TextField.kt"/>
-    </issue>
-
-    <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in constructor AnchoredDraggableState has parameter &apos;positionalThreshold&apos; with type Function1&lt;? super Float, Float>."
         errorLine1="    internal val positionalThreshold: (totalDistance: Float) -> Float,"
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
index a469837..e131384 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/AlertDialog.kt
@@ -37,6 +37,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFirstOrNull
+import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastForEachIndexed
 import kotlin.math.max
 
@@ -111,10 +113,10 @@
     ) { measurables, constraints ->
         // Measure with loose constraints for height as we don't want the text to take up more
         // space than it needs
-        val titlePlaceable = measurables.firstOrNull { it.layoutId == "title" }?.measure(
+        val titlePlaceable = measurables.fastFirstOrNull { it.layoutId == "title" }?.measure(
             constraints.copy(minHeight = 0)
         )
-        val textPlaceable = measurables.firstOrNull { it.layoutId == "text" }?.measure(
+        val textPlaceable = measurables.fastFirstOrNull { it.layoutId == "text" }?.measure(
             constraints.copy(minHeight = 0)
         )
 
@@ -215,6 +217,7 @@
                 crossAxisSpace += crossAxisSpacing.roundToPx()
             }
             // Ensures that confirming actions appear above dismissive actions.
+            @Suppress("ListIterator")
             sequences.add(0, currentSequence.toList())
             crossAxisSizes += currentCrossAxisSize
             crossAxisPositions += crossAxisSpace
@@ -227,7 +230,7 @@
             currentCrossAxisSize = 0
         }
 
-        for (measurable in measurables) {
+        measurables.fastForEach { measurable ->
             // Ask the child for its preferred size.
             val placeable = measurable.measure(childConstraints)
 
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Badge.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Badge.kt
index 2e753d5..a8eb298 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Badge.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Badge.kt
@@ -37,6 +37,7 @@
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFirst
 
 /**
  * A BadgeBox is used to decorate [content] with a [badge] that can contain dynamic information,
@@ -76,13 +77,13 @@
         modifier = modifier
     ) { measurables, constraints ->
 
-        val badgePlaceable = measurables.first { it.layoutId == "badge" }.measure(
+        val badgePlaceable = measurables.fastFirst { it.layoutId == "badge" }.measure(
             // Measure with loose constraints for height as we don't want the text to take up more
             // space than it needs.
             constraints.copy(minHeight = 0)
         )
 
-        val anchorPlaceable = measurables.first { it.layoutId == "anchor" }.measure(constraints)
+        val anchorPlaceable = measurables.fastFirst { it.layoutId == "anchor" }.measure(constraints)
 
         val firstBaseline = anchorPlaceable[FirstBaseline]
         val lastBaseline = anchorPlaceable[LastBaseline]
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt
index fb53a4d..c7cf7ba 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomNavigation.kt
@@ -57,6 +57,7 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.max
 import kotlin.math.roundToInt
 
@@ -329,10 +330,10 @@
             }
         }
     ) { measurables, constraints ->
-        val iconPlaceable = measurables.first { it.layoutId == "icon" }.measure(constraints)
+        val iconPlaceable = measurables.fastFirst { it.layoutId == "icon" }.measure(constraints)
 
         val labelPlaceable = label?.let {
-            measurables.first { it.layoutId == "label" }.measure(
+            measurables.fastFirst { it.layoutId == "label" }.measure(
                 // Measure with loose constraints for height as we don't want the label to take up more
                 // space than it needs
                 constraints.copy(minHeight = 0)
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
index c579b53..c3d1131 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
@@ -52,6 +52,7 @@
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.fastMaxBy
 import kotlin.math.roundToInt
 import kotlinx.coroutines.CancellationException
@@ -608,27 +609,29 @@
 
         val sheetPlaceables = subcompose(BottomSheetScaffoldLayoutSlot.Sheet) {
             bottomSheet(layoutHeight)
-        }.map { it.measure(looseConstraints) }
+        }.fastMap { it.measure(looseConstraints) }
 
         val topBarPlaceables = topBar?.let {
             subcompose(BottomSheetScaffoldLayoutSlot.TopBar, topBar)
-                .map { it.measure(looseConstraints) }
+                .fastMap { it.measure(looseConstraints) }
         }
         val topBarHeight = topBarPlaceables?.fastMaxBy { it.height }?.height ?: 0
 
         val bodyConstraints = looseConstraints.copy(maxHeight = layoutHeight - topBarHeight)
         val bodyPlaceables = subcompose(BottomSheetScaffoldLayoutSlot.Body) {
             body(PaddingValues(bottom = sheetPeekHeight))
-        }.map { it.measure(bodyConstraints) }
+        }.fastMap { it.measure(bodyConstraints) }
 
         val fabPlaceable = floatingActionButton?.let { fab ->
-            subcompose(BottomSheetScaffoldLayoutSlot.Fab, fab).map { it.measure(looseConstraints) }
+            subcompose(BottomSheetScaffoldLayoutSlot.Fab, fab).fastMap {
+                it.measure(looseConstraints)
+            }
         }
         val fabWidth = fabPlaceable?.fastMaxBy { it.width }?.width ?: 0
         val fabHeight = fabPlaceable?.fastMaxBy { it.height }?.height ?: 0
 
         val snackbarPlaceables = subcompose(BottomSheetScaffoldLayoutSlot.Snackbar, snackbarHost)
-            .map { it.measure(looseConstraints) }
+            .fastMap { it.measure(looseConstraints) }
         val snackbarWidth = snackbarPlaceables.fastMaxBy { it.width }?.width ?: 0
         val snackbarHeight = snackbarPlaceables.fastMaxBy { it.height }?.height ?: 0
 
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ListItem.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ListItem.kt
index 4d8e6aa..2a24638 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ListItem.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ListItem.kt
@@ -37,7 +37,9 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
 import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import kotlin.math.max
 
 /**
@@ -353,9 +355,9 @@
 ) {
     Layout(content, modifier) { measurables, constraints ->
         val childConstraints = constraints.copy(minHeight = 0, maxHeight = Constraints.Infinity)
-        val placeables = measurables.map { it.measure(childConstraints) }
+        val placeables = measurables.fastMap { it.measure(childConstraints) }
 
-        val containerWidth = placeables.fold(0) { maxWidth, placeable ->
+        val containerWidth = placeables.fastFold(0) { maxWidth, placeable ->
             max(maxWidth, placeable.width)
         }
         val y = Array(placeables.size) { 0 }
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt
index 49943de..bf876d0 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/NavigationRail.kt
@@ -58,6 +58,7 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.max
 import kotlin.math.roundToInt
 
@@ -339,10 +340,10 @@
             }
         }
     ) { measurables, constraints ->
-        val iconPlaceable = measurables.first { it.layoutId == "icon" }.measure(constraints)
+        val iconPlaceable = measurables.fastFirst { it.layoutId == "icon" }.measure(constraints)
 
         val labelPlaceable = label?.let {
-            measurables.first { it.layoutId == "label" }.measure(
+            measurables.fastFirst { it.layoutId == "label" }.measure(
                 // Measure with loose constraints for height as we don't want the label to take up more
                 // space than it needs
                 constraints.copy(minHeight = 0)
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
index 51876ef..fb7fb64 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
@@ -61,6 +61,8 @@
 import androidx.compose.ui.unit.coerceAtLeast
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.max
 import kotlin.math.roundToInt
@@ -576,7 +578,7 @@
 
         // measure leading icon
         val relaxedConstraints = constraints.copy(minWidth = 0, minHeight = 0)
-        val leadingPlaceable = measurables.find {
+        val leadingPlaceable = measurables.fastFirstOrNull {
             it.layoutId == LeadingId
         }?.measure(relaxedConstraints)
         occupiedSpaceHorizontally += widthOrZero(
@@ -584,7 +586,7 @@
         )
 
         // measure trailing icon
-        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }
+        val trailingPlaceable = measurables.fastFirstOrNull { it.layoutId == TrailingId }
             ?.measure(relaxedConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(
             trailingPlaceable
@@ -603,7 +605,7 @@
             vertical = -bottomPadding
         )
         val labelPlaceable =
-            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LabelId }?.measure(labelConstraints)
         labelPlaceable?.let {
             onLabelMeasured(Size(it.width.toFloat(), it.height.toFloat()))
         }
@@ -620,12 +622,12 @@
             vertical = -bottomPadding - topPadding
         ).copy(minHeight = 0)
         val textFieldPlaceable =
-            measurables.first { it.layoutId == TextFieldId }.measure(textConstraints)
+            measurables.fastFirst { it.layoutId == TextFieldId }.measure(textConstraints)
 
         // measure placeholder
         val placeholderConstraints = textConstraints.copy(minWidth = 0)
-        val placeholderPlaceable =
-            measurables.find { it.layoutId == PlaceholderId }?.measure(placeholderConstraints)
+        val placeholderPlaceable = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }
+            ?.measure(placeholderConstraints)
 
         val width =
             calculateWidth(
@@ -652,7 +654,7 @@
                 paddingValues = paddingValues,
             )
 
-        val borderPlaceable = measurables.first { it.layoutId == BorderId }.measure(
+        val borderPlaceable = measurables.fastFirst { it.layoutId == BorderId }.measure(
             Constraints(
                 minWidth = if (width != Constraints.Infinity) width else 0,
                 maxWidth = width,
@@ -721,17 +723,17 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         val textFieldWidth =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)
-        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, height)
+        val labelWidth = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingWidth = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingWidth = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {
+        val placeholderWidth = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
         return calculateWidth(
@@ -753,22 +755,22 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         var remainingWidth = width
-        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingHeight = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
-        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingHeight = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
 
-        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {
+        val labelHeight = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, lerp(remainingWidth, width, animationProgress))
         } ?: 0
 
         val textFieldHeight =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)
-        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, remainingWidth)
+        val placeholderHeight = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Scaffold.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Scaffold.kt
index f5acb86..106f8ad 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Scaffold.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Scaffold.kt
@@ -400,7 +400,7 @@
 
         val topBarHeight = topBarPlaceables.fastMaxBy { it.height }?.height ?: 0
 
-        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).map {
+        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).fastMap {
             // respect only bottom and horizontal for snackbar and fab
             val leftInset = contentWindowInsets
                 .getLeft(this@SubcomposeLayout, layoutDirection)
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
index aa3bd62..31e5a89 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
@@ -93,6 +93,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.abs
 import kotlin.math.floor
@@ -773,10 +775,11 @@
             trackStrokeWidth,
             StrokeCap.Round
         )
+        @Suppress("ListIterator")
         tickFractions.groupBy { it > positionFractionEnd || it < positionFractionStart }
             .forEach { (outsideFraction, list) ->
                 drawPoints(
-                    list.map {
+                    list.fastMap {
                         Offset(lerp(sliderStart, sliderEnd, it).x, center.y)
                     },
                     PointMode.Points,
@@ -796,7 +799,7 @@
 ): Float {
     // target is a closest anchor to the `current`, if exists
     return tickFractions
-        .minByOrNull { abs(lerp(minPx, maxPx, it) - current) }
+        .fastMinByOrNull { abs(lerp(minPx, maxPx, it) - current) }
         ?.run { lerp(minPx, maxPx, this) }
         ?: current
 }
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Snackbar.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Snackbar.kt
index 04bb5c5..29673c2 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Snackbar.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Snackbar.kt
@@ -35,6 +35,7 @@
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.max
 
 /**
@@ -305,11 +306,12 @@
             end = HorizontalSpacingButtonSide
         )
     ) { measurables, constraints ->
-        val buttonPlaceable = measurables.first { it.layoutId == actionTag }.measure(constraints)
+        val buttonPlaceable = measurables.fastFirst { it.layoutId == actionTag }
+            .measure(constraints)
         val textMaxWidth =
             (constraints.maxWidth - buttonPlaceable.width - TextEndExtraSpacing.roundToPx())
                 .coerceAtLeast(constraints.minWidth)
-        val textPlaceable = measurables.first { it.layoutId == textTag }.measure(
+        val textPlaceable = measurables.fastFirst { it.layoutId == textTag }.measure(
             constraints.copy(minHeight = 0, maxWidth = textMaxWidth)
         )
 
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt
index e03647a..f6e201e 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SnackbarHost.kt
@@ -41,7 +41,10 @@
 import androidx.compose.ui.semantics.dismiss
 import androidx.compose.ui.semantics.liveRegion
 import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.util.fastFilterNotNull
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMapTo
 import kotlin.coroutines.resume
 import kotlinx.coroutines.CancellableContinuation
 import kotlinx.coroutines.delay
@@ -262,17 +265,21 @@
     val state = remember { FadeInFadeOutState<SnackbarData?>() }
     if (current != state.current) {
         state.current = current
-        val keys = state.items.map { it.key }.toMutableList()
+        val keys = state.items.fastMap { it.key }.toMutableList()
         if (!keys.contains(current)) {
             keys.add(current)
         }
         state.items.clear()
-        keys.filterNotNull().mapTo(state.items) { key ->
+        keys.fastFilterNotNull().fastMapTo(state.items) { key ->
             FadeInFadeOutAnimationItem(key) { children ->
                 val isVisible = key == current
                 val duration = if (isVisible) SnackbarFadeInMillis else SnackbarFadeOutMillis
                 val delay = SnackbarFadeOutMillis + SnackbarInBetweenDelayMillis
-                val animationDelay = if (isVisible && keys.filterNotNull().size != 1) delay else 0
+                val animationDelay = if (isVisible && keys.fastFilterNotNull().size != 1) {
+                    delay
+                } else {
+                    0
+                }
                 val opacity = animatedOpacity(
                     animation = tween(
                         easing = LinearEasing,
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
index fe11c44c..afacdfd 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
@@ -54,6 +54,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMaxBy
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.PI
 import kotlin.math.abs
@@ -747,8 +749,8 @@
     anchors: Set<Float>
 ): List<Float> {
     // Find the anchors the target lies between with a little bit of rounding error.
-    val a = anchors.filter { it <= offset + 0.001 }.maxOrNull()
-    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()
+    val a = anchors.filter { it <= offset + 0.001 }.fastMaxBy { it }
+    val b = anchors.filter { it >= offset - 0.001 }.fastMinByOrNull { it }
 
     return when {
         a == null ->
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Tab.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Tab.kt
index db4e223..c41b10f 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Tab.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Tab.kt
@@ -51,6 +51,7 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.max
 
 /**
@@ -315,7 +316,7 @@
         }
     ) { measurables, constraints ->
         val textPlaceable = text?.let {
-            measurables.first { it.layoutId == "text" }.measure(
+            measurables.fastFirst { it.layoutId == "text" }.measure(
                 // Measure with loose constraints for height as we don't want the text to take up more
                 // space than it needs
                 constraints.copy(minHeight = 0)
@@ -323,7 +324,7 @@
         }
 
         val iconPlaceable = icon?.let {
-            measurables.first { it.layoutId == "icon" }.measure(constraints)
+            measurables.fastFirst { it.layoutId == "icon" }.measure(constraints)
         }
 
         val tabWidth = max(textPlaceable?.width ?: 0, iconPlaceable?.width ?: 0)
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TabRow.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TabRow.kt
index 78112ad2..8c83d9b 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TabRow.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TabRow.kt
@@ -49,6 +49,10 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMaxBy
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
 
@@ -153,29 +157,29 @@
             val tabMeasurables = subcompose(TabSlots.Tabs, tabs)
             val tabCount = tabMeasurables.size
             val tabWidth = (tabRowWidth / tabCount)
-            val tabPlaceables = tabMeasurables.map {
+            val tabPlaceables = tabMeasurables.fastMap {
                 it.measure(constraints.copy(minWidth = tabWidth, maxWidth = tabWidth))
             }
 
-            val tabRowHeight = tabPlaceables.maxByOrNull { it.height }?.height ?: 0
+            val tabRowHeight = tabPlaceables.fastMaxBy { it.height }?.height ?: 0
 
             val tabPositions = List(tabCount) { index ->
                 TabPosition(tabWidth.toDp() * index, tabWidth.toDp())
             }
 
             layout(tabRowWidth, tabRowHeight) {
-                tabPlaceables.forEachIndexed { index, placeable ->
+                tabPlaceables.fastForEachIndexed { index, placeable ->
                     placeable.placeRelative(index * tabWidth, 0)
                 }
 
-                subcompose(TabSlots.Divider, divider).forEach {
+                subcompose(TabSlots.Divider, divider).fastForEach {
                     val placeable = it.measure(constraints.copy(minHeight = 0))
                     placeable.placeRelative(0, tabRowHeight - placeable.height)
                 }
 
                 subcompose(TabSlots.Indicator) {
                     indicator(tabPositions)
-                }.forEach {
+                }.fastForEach {
                     it.measure(Constraints.fixed(tabRowWidth, tabRowHeight)).placeRelative(0, 0)
                 }
             }
@@ -263,11 +267,11 @@
             val tabConstraints = constraints.copy(minWidth = minTabWidth)
 
             val tabPlaceables = subcompose(TabSlots.Tabs, tabs)
-                .map { it.measure(tabConstraints) }
+                .fastMap { it.measure(tabConstraints) }
 
             var layoutWidth = padding * 2
             var layoutHeight = 0
-            tabPlaceables.forEach {
+            tabPlaceables.fastForEach {
                 layoutWidth += it.width
                 layoutHeight = maxOf(layoutHeight, it.height)
             }
@@ -277,7 +281,7 @@
                 // Place the tabs
                 val tabPositions = mutableListOf<TabPosition>()
                 var left = padding
-                tabPlaceables.forEach {
+                tabPlaceables.fastForEach {
                     it.placeRelative(left, 0)
                     tabPositions.add(TabPosition(left = left.toDp(), width = it.width.toDp()))
                     left += it.width
@@ -285,7 +289,7 @@
 
                 // The divider is measured with its own height, and width equal to the total width
                 // of the tab row, and then placed on top of the tabs.
-                subcompose(TabSlots.Divider, divider).forEach {
+                subcompose(TabSlots.Divider, divider).fastForEach {
                     val placeable = it.measure(
                         constraints.copy(
                             minHeight = 0,
@@ -300,7 +304,7 @@
                 // row, and then placed on top of the divider.
                 subcompose(TabSlots.Indicator) {
                     indicator(tabPositions)
-                }.forEach {
+                }.fastForEach {
                     it.measure(Constraints.fixed(layoutWidth, layoutHeight)).placeRelative(0, 0)
                 }
 
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt
index 473442e..a650cde 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt
@@ -62,6 +62,8 @@
 import androidx.compose.ui.unit.coerceAtLeast
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import kotlin.math.max
 import kotlin.math.roundToInt
 
@@ -559,13 +561,13 @@
         // measure leading icon
         val looseConstraints = constraints.copy(minWidth = 0, minHeight = 0)
         val leadingPlaceable =
-            measurables.find { it.layoutId == LeadingId }?.measure(looseConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LeadingId }?.measure(looseConstraints)
         occupiedSpaceHorizontally += widthOrZero(
             leadingPlaceable
         )
 
         // measure trailing icon
-        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }
+        val trailingPlaceable = measurables.fastFirstOrNull { it.layoutId == TrailingId }
             ?.measure(looseConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(
             trailingPlaceable
@@ -578,7 +580,7 @@
                 horizontal = -occupiedSpaceHorizontally
             )
         val labelPlaceable =
-            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LabelId }?.measure(labelConstraints)
         val lastBaseline = labelPlaceable?.get(LastBaseline)?.let {
             if (it != AlignmentLine.Unspecified) it else labelPlaceable.height
         } ?: 0
@@ -598,13 +600,13 @@
                 horizontal = -occupiedSpaceHorizontally
             )
         val textFieldPlaceable = measurables
-            .first { it.layoutId == TextFieldId }
+            .fastFirst { it.layoutId == TextFieldId }
             .measure(textFieldConstraints)
 
         // measure placeholder
         val placeholderConstraints = textFieldConstraints.copy(minWidth = 0)
         val placeholderPlaceable = measurables
-            .find { it.layoutId == PlaceholderId }
+            .fastFirstOrNull { it.layoutId == PlaceholderId }
             ?.measure(placeholderConstraints)
 
         val width = calculateWidth(
@@ -703,17 +705,17 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         val textFieldWidth =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)
-        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, height)
+        val labelWidth = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingWidth = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingWidth = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {
+        val placeholderWidth = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
         return calculateWidth(
@@ -732,22 +734,22 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         var remainingWidth = width
-        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingHeight = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
-        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingHeight = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
 
-        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {
+        val labelHeight = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
         val textFieldHeight =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)
-        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, remainingWidth)
+        val placeholderHeight = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
diff --git a/compose/material3/material3-adaptive/lint-baseline.xml b/compose/material3/material3-adaptive/lint-baseline.xml
deleted file mode 100644
index 5820cd6..0000000
--- a/compose/material3/material3-adaptive/lint-baseline.xml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    foldingFeatures.forEach {"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/compose/material3/adaptive/AndroidPosture.android.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val navigationPlaceables = navigationMeasurables.map { it.measure(constraints) }"
-        errorLine2="                                                         ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.filterNotNull()"
-        errorLine2="          ~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        if (alignments.all { alignments[0] != it }) {"
-        errorLine2="                       ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val contentPlaceables = contentMeasurables.map { it.measure("
-        errorLine2="                                                   ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    minHeight = layoutHeight - navigationPlaceables.maxOf { it.height },"
-        errorLine2="                                                                    ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    maxHeight = layoutHeight - navigationPlaceables.maxOf { it.height }"
-        errorLine2="                                                                    ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    minWidth = layoutWidth - navigationPlaceables.maxOf { it.width },"
-        errorLine2="                                                                  ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    maxWidth = layoutWidth - navigationPlaceables.maxOf { it.width }"
-        errorLine2="                                                                  ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    navigationPlaceables.forEach {"
-        errorLine2="                                         ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    contentPlaceables.forEach {"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                        it.placeRelative(navigationPlaceables.maxOf { it.width }, 0)"
-        errorLine2="                                                              ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    navigationPlaceables.forEach {"
-        errorLine2="                                         ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                            layoutWidth - navigationPlaceables.maxOf { it.width },"
-        errorLine2="                                                               ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    contentPlaceables.forEach {"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    navigationPlaceables.forEach {"
-        errorLine2="                                         ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    contentPlaceables.forEach {"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                        it.placeRelative(0, navigationPlaceables.maxOf { it.height })"
-        errorLine2="                                                                 ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    contentPlaceables.forEach {"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    navigationPlaceables.forEach {"
-        errorLine2="                                         ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                            layoutHeight - navigationPlaceables.maxOf { it.height })"
-        errorLine2="                                                                ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    paneMeasurables.forEachIndexed { index, paneMeasurable ->"
-        errorLine2="                                    ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        measurables.forEach {"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    measurables.forEach {"
-        errorLine2="                ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt"/>
-    </issue>
-
-</issues>
diff --git a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/AndroidPosture.android.kt b/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/AndroidPosture.android.kt
index 4a461e2..629d238 100644
--- a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/AndroidPosture.android.kt
+++ b/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/AndroidPosture.android.kt
@@ -18,6 +18,7 @@
 
 import androidx.compose.ui.geometry.Rect
 import androidx.compose.ui.graphics.toComposeRect
+import androidx.compose.ui.util.fastForEach
 import androidx.window.layout.FoldingFeature
 
 /**
@@ -32,7 +33,7 @@
     val separatingHingeBounds = mutableListOf<Rect>()
     val occludingHingeBounds = mutableListOf<Rect>()
     val allHingeBounds = mutableListOf<Rect>()
-    foldingFeatures.forEach {
+    foldingFeatures.fastForEach {
         if (it.orientation == FoldingFeature.Orientation.VERTICAL) {
             hasVerticalHinge = true
         }
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt
index 71a31c5..0629248 100644
--- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt
+++ b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt
@@ -59,7 +59,11 @@
 import androidx.compose.ui.node.ParentDataModifierNode
 import androidx.compose.ui.platform.InspectorInfo
 import androidx.compose.ui.unit.Density
+import androidx.compose.ui.util.fastAll
+import androidx.compose.ui.util.fastFilterNotNull
+import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMaxOfOrNull
 
 /**
  * The Navigation Suite Scaffold wraps the provided content and places the adequate provided
@@ -113,28 +117,28 @@
     Layout(
         contents = listOf({ NavigationSuiteScaffoldScopeImpl.navigationSuite() }, content)
     ) { (navigationMeasurables, contentMeasurables), constraints ->
-        val navigationPlaceables = navigationMeasurables.map { it.measure(constraints) }
+        val navigationPlaceables = navigationMeasurables.fastMap { it.measure(constraints) }
         val alignments = navigationPlaceables.fastMap {
             (it.parentData as NavigationSuiteParentData).alignment
-        }.filterNotNull()
-        if (alignments.all { alignments[0] != it }) {
+        }.fastFilterNotNull()
+        if (alignments.fastAll { alignments[0] != it }) {
             throw IllegalArgumentException("There should be only one NavigationSuiteAlignment.")
         }
         val alignment = alignments.firstOrNull() ?: NavigationSuiteAlignment.StartVertical
         val layoutHeight = constraints.maxHeight
         val layoutWidth = constraints.maxWidth
-        val contentPlaceables = contentMeasurables.map { it.measure(
+        val contentPlaceables = contentMeasurables.fastMap { it.measure(
             if (alignment == NavigationSuiteAlignment.TopHorizontal ||
                 alignment == NavigationSuiteAlignment.BottomHorizontal
             ) {
                 constraints.copy(
-                    minHeight = layoutHeight - navigationPlaceables.maxOf { it.height },
-                    maxHeight = layoutHeight - navigationPlaceables.maxOf { it.height }
+                    minHeight = layoutHeight - navigationPlaceables.fastMaxOfOrNull { it.height }!!,
+                    maxHeight = layoutHeight - navigationPlaceables.fastMaxOfOrNull { it.height }!!
                 )
             } else {
                 constraints.copy(
-                    minWidth = layoutWidth - navigationPlaceables.maxOf { it.width },
-                    maxWidth = layoutWidth - navigationPlaceables.maxOf { it.width }
+                    minWidth = layoutWidth - navigationPlaceables.fastMaxOfOrNull { it.width }!!,
+                    maxWidth = layoutWidth - navigationPlaceables.fastMaxOfOrNull { it.width }!!
                 )
             }
         ) }
@@ -143,50 +147,50 @@
             when (alignment) {
                 NavigationSuiteAlignment.StartVertical -> {
                     // Place the navigation component at the start of the screen.
-                    navigationPlaceables.forEach {
+                    navigationPlaceables.fastForEach {
                         it.placeRelative(0, 0)
                     }
                     // Place content to the side of the navigation component.
-                    contentPlaceables.forEach {
-                        it.placeRelative(navigationPlaceables.maxOf { it.width }, 0)
+                    contentPlaceables.fastForEach {
+                        it.placeRelative(navigationPlaceables.fastMaxOfOrNull { it.width }!!, 0)
                     }
                 }
 
                 NavigationSuiteAlignment.EndVertical -> {
                     // Place the navigation component at the end of the screen.
-                    navigationPlaceables.forEach {
+                    navigationPlaceables.fastForEach {
                         it.placeRelative(
-                            layoutWidth - navigationPlaceables.maxOf { it.width },
+                            layoutWidth - navigationPlaceables.fastMaxOfOrNull { it.width }!!,
                             0
                         )
                     }
                     // Place content at the start of the screen.
-                    contentPlaceables.forEach {
+                    contentPlaceables.fastForEach {
                         it.placeRelative(0, 0)
                     }
                 }
 
                 NavigationSuiteAlignment.TopHorizontal -> {
                     // Place the navigation component at the start of the screen.
-                    navigationPlaceables.forEach {
+                    navigationPlaceables.fastForEach {
                         it.placeRelative(0, 0)
                     }
                     // Place content below the navigation component.
-                    contentPlaceables.forEach {
-                        it.placeRelative(0, navigationPlaceables.maxOf { it.height })
+                    contentPlaceables.fastForEach {
+                        it.placeRelative(0, navigationPlaceables.fastMaxOfOrNull { it.height }!!)
                     }
                 }
 
                 NavigationSuiteAlignment.BottomHorizontal -> {
                     // Place content above the navigation component.
-                    contentPlaceables.forEach {
+                    contentPlaceables.fastForEach {
                         it.placeRelative(0, 0)
                     }
                     // Place the navigation component at the bottom of the screen.
-                    navigationPlaceables.forEach {
+                    navigationPlaceables.fastForEach {
                         it.placeRelative(
                             0,
-                            layoutHeight - navigationPlaceables.maxOf { it.height })
+                            layoutHeight - navigationPlaceables.fastMaxOfOrNull { it.height }!!)
                     }
                 }
             }
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt
index a75073e..3dcc396 100644
--- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt
+++ b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt
@@ -29,6 +29,7 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.roundToIntRect
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
 import kotlin.math.max
 import kotlin.math.min
 
@@ -171,7 +172,7 @@
                     }
                 } else {
                     // Layout each pane in a physical partition
-                    paneMeasurables.forEachIndexed { index, paneMeasurable ->
+                    paneMeasurables.fastForEachIndexed { index, paneMeasurable ->
                         measureAndPlacePane(layoutPhysicalPartitions[index], paneMeasurable)
                     }
                 }
@@ -252,12 +253,12 @@
     } else if (allocatableWidth < totalPreferredWidth) {
         // Scale down all panes to fit in the available space.
         val scale = allocatableWidth.toFloat() / totalPreferredWidth
-        measurables.forEach {
+        measurables.fastForEach {
             it.measuredWidth = (it.measuredWidth * scale).toInt()
         }
     }
     var positionX = partitionBounds.left
-    measurables.forEach {
+    measurables.fastForEach {
         it.measure(Constraints.fixed(it.measuredWidth, partitionBounds.height))
             .place(positionX, partitionBounds.top)
         positionX += it.measuredWidth + spacerSize
diff --git a/compose/material3/material3-window-size-class/build.gradle b/compose/material3/material3-window-size-class/build.gradle
index 76cbc23..ae8d2cd 100644
--- a/compose/material3/material3-window-size-class/build.gradle
+++ b/compose/material3/material3-window-size-class/build.gradle
@@ -37,6 +37,7 @@
         commonMain {
             dependencies {
                 implementation(libs.kotlinStdlibCommon)
+                implementation(project(":compose:ui:ui-util"))
                 api(project(":compose:runtime:runtime"))
                 api(project(":compose:ui:ui"))
                 api(project(":compose:ui:ui-unit"))
@@ -61,6 +62,7 @@
                 dependsOn(commonMain)
                 dependencies {
                     // Because dependencies are pinned in the android/common code.
+                    implementation(project(":compose:ui:ui-util"))
                     api(project(":compose:runtime:runtime"))
                     api(project(":compose:ui:ui"))
                     api(project(":compose:ui:ui-unit"))
diff --git a/compose/material3/material3-window-size-class/lint-baseline.xml b/compose/material3/material3-window-size-class/lint-baseline.xml
deleted file mode 100644
index 6b8f7eb..0000000
--- a/compose/material3/material3-window-size-class/lint-baseline.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            sortedSizeClasses.forEach {"
-        errorLine2="                              ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            sortedSizeClasses.forEach {"
-        errorLine2="                              ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt"/>
-    </issue>
-
-</issues>
diff --git a/compose/material3/material3-window-size-class/src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt b/compose/material3/material3-window-size-class/src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt
index 883916f..c6c3ef0 100644
--- a/compose/material3/material3-window-size-class/src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt
+++ b/compose/material3/material3-window-size-class/src/commonMain/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.kt
@@ -22,6 +22,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
 
 /**
  * Window size classes are a set of opinionated viewport breakpoints to design, develop, and test
@@ -199,7 +200,7 @@
             require(supportedSizeClasses.isNotEmpty()) { "Must support at least one size class" }
             val sortedSizeClasses = supportedSizeClasses.sortedDescending()
             // Find the largest supported size class that matches the width
-            sortedSizeClasses.forEach {
+            sortedSizeClasses.fastForEach {
                 if (width >= with(density) { it.breakpoint().toPx() }) {
                     return it
                 }
@@ -297,7 +298,7 @@
             require(supportedSizeClasses.isNotEmpty()) { "Must support at least one size class" }
             val sortedSizeClasses = supportedSizeClasses.sortedDescending()
             // Find the largest supported size class that matches the width
-            sortedSizeClasses.forEach {
+            sortedSizeClasses.fastForEach {
                 if (height >= with(density) { it.breakpoint().toPx() }) {
                     return it
                 }
diff --git a/compose/material3/material3/lint-baseline.xml b/compose/material3/material3/lint-baseline.xml
index a60fd9f..787ecd3 100644
--- a/compose/material3/material3/lint-baseline.xml
+++ b/compose/material3/material3/lint-baseline.xml
@@ -173,1209 +173,12 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            sequences.add(0, currentSequence.toList())"
-        errorLine2="                                             ~~~~~~">
+        id="ExperimentalPropertyAnnotation"
+        message="This property does not have all required annotations to correctly mark it as experimental."
+        errorLine1="    @ExperimentalMaterial3Api"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (measurable in measurables) {"
-        errorLine2="                        ~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            sequences.forEachIndexed { i, placeables ->"
-        errorLine2="                      ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                placeables.forEachIndexed { j, placeable ->"
-        errorLine2="                           ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;navigationIcon&quot; }"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AppBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;actionIcons&quot; }"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AppBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;title&quot; }"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/AppBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val badgePlaceable = measurables.first { it.layoutId == &quot;badge&quot; }.measure("
-        errorLine2="                                         ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Badge.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val anchorPlaceable = measurables.first { it.layoutId == &quot;anchor&quot; }.measure(constraints)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Badge.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                dayNames.forEach {"
-        errorLine2="                         ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        weekdays.drop(2).forEachIndexed { index, day ->"
-        errorLine2="                         ~~~~~~~~~~~~~~">
-        <location
-            file="src/jvmMain/kotlin/androidx/compose/material3/LegacyCalendarModelImpl.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        ).map {"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val x = xCandidates.firstOrNull {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        ).map {"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val y = yCandidates.firstOrNull {"
-        errorLine2="                            ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .first { it.layoutId == IndicatorRippleLayoutIdTag }"
-        errorLine2="                 ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .firstOrNull { it.layoutId == IndicatorLayoutIdTag }"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .first { it.layoutId == LabelLayoutIdTag }"
-        errorLine2="                     ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .first { it.layoutId == IndicatorRippleLayoutIdTag }"
-        errorLine2="                 ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .firstOrNull { it.layoutId == IndicatorLayoutIdTag }"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .first { it.layoutId == LabelLayoutIdTag }"
-        errorLine2="                     ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingPlaceable = measurables.find {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixPlaceable = measurables.find { it.layoutId == PrefixId }"
-        errorLine2="                                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixPlaceable = measurables.find { it.layoutId == SuffixId }"
-        errorLine2="                                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val supportingMeasurable = measurables.find { it.layoutId == SupportingId }"
-        errorLine2="                                               ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == TextFieldId }.measure(textConstraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == PlaceholderId }?.measure(placeholderConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val containerPlaceable = measurables.first { it.layoutId == ContainerId }.measure("
-        errorLine2="                                             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                     ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixWidth = measurables.find { it.layoutId == PrefixId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixWidth = measurables.find { it.layoutId == SuffixId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                         ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixHeight = measurables.find { it.layoutId == PrefixId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixHeight = measurables.find { it.layoutId == SuffixId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val supportingHeight = measurables.find { it.layoutId == SupportingId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val topBarPlaceables = subcompose(ScaffoldLayoutContent.TopBar, topBar).map {"
-        errorLine2="                                                                                ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val topBarHeight = topBarPlaceables.maxByOrNull { it.height }?.height ?: 0"
-        errorLine2="                                            ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).map {"
-        errorLine2="                                                                                      ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val snackbarHeight = snackbarPlaceables.maxByOrNull { it.height }?.height ?: 0"
-        errorLine2="                                                ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val snackbarWidth = snackbarPlaceables.maxByOrNull { it.width }?.width ?: 0"
-        errorLine2="                                               ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            subcompose(ScaffoldLayoutContent.Fab, fab).mapNotNull { measurable ->"
-        errorLine2="                                                       ~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val fabWidth = fabPlaceables.maxByOrNull { it.width }!!.width"
-        errorLine2="                                         ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val fabHeight = fabPlaceables.maxByOrNull { it.height }!!.height"
-        errorLine2="                                          ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.map { it.measure(looseConstraints) }"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val bottomBarHeight = bottomBarPlaceables.maxByOrNull { it.height }?.height"
-        errorLine2="                                                  ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.map { it.measure(looseConstraints) }"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            bodyContentPlaceables.forEach {"
-        errorLine2="                                  ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            topBarPlaceables.forEach {"
-        errorLine2="                             ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            snackbarPlaceables.forEach {"
-        errorLine2="                               ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            bottomBarPlaceables.forEach {"
-        errorLine2="                                ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                fabPlaceables.forEach {"
-        errorLine2="                              ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                val iconPlaceables = iconMeasurables.map { it.measure(constraints) }"
-        errorLine2="                                                     ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                val iconDesiredWidth = iconMeasurables.fold(0) { acc, it ->"
-        errorLine2="                                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                val contentPlaceables = contentMeasurables.map { it.measure(constraints) }"
-        errorLine2="                                                           ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    iconPlaceables.forEach {"
-        errorLine2="                                   ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    contentPlaceables.forEach {"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val thumbPlaceable = measurables.first {"
-        errorLine2="                                         ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trackPlaceable = measurables.first {"
-        errorLine2="                                         ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val startThumbPlaceable = measurables.first {"
-        errorLine2="                                              ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val endThumbPlaceable = measurables.first {"
-        errorLine2="                                            ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trackPlaceable = measurables.first {"
-        errorLine2="                                         ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                        list.map {"
-        errorLine2="                             ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                list.map {"
-        errorLine2="                     ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Slider.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.firstOrNull { it.layoutId == actionTag }?.measure(constraints)"
-        errorLine2="                        ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.firstOrNull { it.layoutId == dismissActionTag }?.measure(constraints)"
-        errorLine2="                        ~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val textPlaceable = measurables.first { it.layoutId == textTag }.measure("
-        errorLine2="                                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val keys = state.items.map { it.key }.toMutableList()"
-        errorLine2="                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        keys.filterNotNull().mapTo(state.items) { key ->"
-        errorLine2="             ~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        keys.filterNotNull().mapTo(state.items) { key ->"
-        errorLine2="                             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                val animationDelay = if (isVisible &amp;&amp; keys.filterNotNull().size != 1) delay else 0"
-        errorLine2="                                                           ~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        state.items.forEach { (item, opacity) ->"
-        errorLine2="                    ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val a = anchors.filter { it &lt;= offset + 0.001 }.maxOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;text&quot; }.measure("
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Tab.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.first { it.layoutId == &quot;icon&quot; }.measure(constraints)"
-        errorLine2="                        ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/Tab.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val tabRowHeight = tabMeasurables.fold(initial = 0) { max, curr ->"
-        errorLine2="                                              ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val tabPlaceables = tabMeasurables.map {"
-        errorLine2="                                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabPlaceables.forEachIndexed { index, placeable ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                subcompose(TabSlots.Divider, divider).forEach {"
-        errorLine2="                                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                }.forEach {"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val layoutHeight = tabMeasurables.fold(initial = 0) { curr, measurable ->"
-        errorLine2="                                              ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            tabMeasurables.forEach {"
-        errorLine2="                           ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val layoutWidth = tabPlaceables.fold(initial = padding * 2) { curr, measurable ->"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabPlaceables.forEachIndexed { index, placeable ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                subcompose(TabSlots.Divider, divider).forEach {"
-        errorLine2="                                                      ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                }.forEach {"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LeadingId }?.measure(looseConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixPlaceable = measurables.find { it.layoutId == PrefixId }"
-        errorLine2="                                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixPlaceable = measurables.find { it.layoutId == SuffixId }"
-        errorLine2="                                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)"
-        errorLine2="                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val supportingMeasurable = measurables.find { it.layoutId == SupportingId }"
-        errorLine2="                                               ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .first { it.layoutId == TextFieldId }"
-        errorLine2="             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .find { it.layoutId == PlaceholderId }"
-        errorLine2="             ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val containerPlaceable = measurables.first { it.layoutId == ContainerId }.measure("
-        errorLine2="                                             ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                     ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixWidth = measurables.find { it.layoutId == PrefixId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixWidth = measurables.find { it.layoutId == SuffixId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {"
-        errorLine2="                                        ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {"
-        errorLine2="                                         ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {"
-        errorLine2="                                      ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val prefixHeight = measurables.find { it.layoutId == PrefixId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val suffixHeight = measurables.find { it.layoutId == SuffixId }?.let {"
-        errorLine2="                                       ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)"
-        errorLine2="                                          ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {"
-        errorLine2="                                            ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val supportingHeight = measurables.find { it.layoutId == SupportingId }?.let {"
-        errorLine2="                                           ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TextField.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val spacer = measurables.first { it.layoutId == &quot;Spacer&quot; }"
-        errorLine2="                                     ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val items = measurables.filter { it.layoutId != &quot;Spacer&quot; }.map { item ->"
-        errorLine2="                                    ~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val items = measurables.filter { it.layoutId != &quot;Spacer&quot; }.map { item ->"
-        errorLine2="                                                                       ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val spacer = measurables.first { it.layoutId == &quot;Spacer&quot; }"
-        errorLine2="                                     ~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val items = measurables.filter { it.layoutId != &quot;Spacer&quot; }.map { item ->"
-        errorLine2="                                    ~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val items = measurables.filter { it.layoutId != &quot;Spacer&quot; }.map { item ->"
-        errorLine2="                                                                       ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeables = measurables.filter {"
-        errorLine2="                                     ~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.map { measurable -> measurable.measure(itemConstraints) }"
-        errorLine2="          ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val selectorMeasurable = measurables.find { it.layoutId == LayoutId.Selector }"
-        errorLine2="                                             ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val innerMeasurable = measurables.find { it.layoutId == LayoutId.InnerCircle }"
-        errorLine2="                                          ~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            placeables.forEachIndexed { i, it ->"
-        errorLine2="                       ~~~~~~~~~~~~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="private val ExtraHours = Hours.map { (it % 12 + 12) }"
-        errorLine2="                               ~~~">
-        <location
-            file="src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt"/>
+            file="src/commonMain/kotlin/androidx/compose/material3/SwipeableV2.kt"/>
     </issue>
 
     <issue
@@ -1398,6 +201,15 @@
 
     <issue
         id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method BottomSheetScaffoldAnchorChangeHandler has parameter &apos;animateTo&apos; with type Function2&lt;? super SheetValue, ? super Float, Unit>."
+        errorLine1="    animateTo: (target: SheetValue, velocity: Float) -> Unit,"
+        errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/material3/BottomSheetScaffold.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method DateInputContent has parameter &apos;onDateSelectionChange&apos; with type Function1&lt;? super Long, Unit>."
         errorLine1="    onDateSelectionChange: (dateInMillis: Long?) -> Unit,"
         errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1605,6 +417,24 @@
 
     <issue
         id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method modalBottomSheetSwipeable has parameter &apos;onDragStopped&apos; with type Function2&lt;? super CoroutineScope, ? super Float, Unit>."
+        errorLine1="    onDragStopped: CoroutineScope.(velocity: Float) -> Unit,"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidMain/kotlin/androidx/compose/material3/ModalBottomSheet.android.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method ModalBottomSheetAnchorChangeHandler has parameter &apos;animateTo&apos; with type Function2&lt;? super SheetValue, ? super Float, Unit>."
+        errorLine1="    animateTo: (target: SheetValue, velocity: Float) -> Unit,"
+        errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidMain/kotlin/androidx/compose/material3/ModalBottomSheet.android.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method Scrim has parameter &apos;fraction&apos; with type Function0&lt;Float>."
         errorLine1="    fraction: () -> Float,"
         errorLine2="              ~~~~~~~~~~~">
@@ -1848,6 +678,15 @@
 
     <issue
         id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method swipeAnchors has parameter &apos;calculateAnchor&apos; with type Function2&lt;? super T, ? super IntSize, Float>."
+        errorLine1="    calculateAnchor: (value: T, layoutSize: IntSize) -> Float?,"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/commonMain/kotlin/androidx/compose/material3/SwipeableV2.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in variable &apos;valueToOffset&apos; with type Function1&lt;? super Boolean, ? extends Float>."
         errorLine1="    val valueToOffset = remember&lt;(Boolean) -> Float>(minBound, maxBound) {"
         errorLine2="    ^">
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
index 62a0006..d1f7e33 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AlertDialog.kt
@@ -32,6 +32,8 @@
 import androidx.compose.ui.layout.Placeable
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
 import kotlin.math.max
 
 @Composable
@@ -150,6 +152,7 @@
                 crossAxisSpace += crossAxisSpacing.roundToPx()
             }
             // Ensures that confirming actions appear above dismissive actions.
+            @Suppress("ListIterator")
             sequences.add(0, currentSequence.toList())
             crossAxisSizes += currentCrossAxisSize
             crossAxisPositions += crossAxisSpace
@@ -162,7 +165,7 @@
             currentCrossAxisSize = 0
         }
 
-        for (measurable in measurables) {
+        measurables.fastForEach { measurable ->
             // Ask the child for its preferred size.
             val placeable = measurable.measure(constraints)
 
@@ -189,7 +192,7 @@
         val layoutHeight = crossAxisLayoutSize
 
         layout(layoutWidth, layoutHeight) {
-            sequences.forEachIndexed { i, placeables ->
+            sequences.fastForEachIndexed { i, placeables ->
                 val childrenMainAxisSizes = IntArray(placeables.size) { j ->
                     placeables[j].width +
                         if (j < placeables.lastIndex) mainAxisSpacing.roundToPx() else 0
@@ -200,7 +203,7 @@
                     arrange(mainAxisLayoutSize, childrenMainAxisSizes,
                         layoutDirection, mainAxisPositions)
                 }
-                placeables.forEachIndexed { j, placeable ->
+                placeables.fastForEachIndexed { j, placeable ->
                     placeable.place(
                         x = mainAxisPositions[j],
                         y = crossAxisPositions[i]
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AppBar.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AppBar.kt
index c63eeb4..cd79a42 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AppBar.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AppBar.kt
@@ -81,6 +81,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.abs
 import kotlin.math.max
 import kotlin.math.roundToInt
@@ -1346,10 +1347,10 @@
         modifier = modifier
     ) { measurables, constraints ->
         val navigationIconPlaceable =
-            measurables.first { it.layoutId == "navigationIcon" }
+            measurables.fastFirst { it.layoutId == "navigationIcon" }
                 .measure(constraints.copy(minWidth = 0))
         val actionIconsPlaceable =
-            measurables.first { it.layoutId == "actionIcons" }
+            measurables.fastFirst { it.layoutId == "actionIcons" }
                 .measure(constraints.copy(minWidth = 0))
 
         val maxTitleWidth = if (constraints.maxWidth == Constraints.Infinity) {
@@ -1359,7 +1360,7 @@
                 .coerceAtLeast(0)
         }
         val titlePlaceable =
-            measurables.first { it.layoutId == "title" }
+            measurables.fastFirst { it.layoutId == "title" }
                 .measure(constraints.copy(minWidth = 0, maxWidth = maxTitleWidth))
 
         // Locate the title's baseline.
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Badge.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Badge.kt
index bc2ff8e..81f545c 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Badge.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Badge.kt
@@ -42,6 +42,7 @@
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.layout.onGloballyPositioned
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.roundToInt
 
 /**
@@ -103,13 +104,13 @@
             }
     ) { measurables, constraints ->
 
-        val badgePlaceable = measurables.first { it.layoutId == "badge" }.measure(
+        val badgePlaceable = measurables.fastFirst { it.layoutId == "badge" }.measure(
             // Measure with loose constraints for height as we don't want the text to take up more
             // space than it needs.
             constraints.copy(minHeight = 0)
         )
 
-        val anchorPlaceable = measurables.first { it.layoutId == "anchor" }.measure(constraints)
+        val anchorPlaceable = measurables.fastFirst { it.layoutId == "anchor" }.measure(constraints)
 
         val firstBaseline = anchorPlaceable[FirstBaseline]
         val lastBaseline = anchorPlaceable[LastBaseline]
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt
index 00c2306..a2f3885 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt
@@ -110,6 +110,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
 import kotlin.math.max
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
@@ -1568,7 +1569,7 @@
                 horizontalArrangement = Arrangement.SpaceEvenly,
                 verticalAlignment = Alignment.CenterVertically
             ) {
-                for (it in dayNames) {
+                dayNames.fastForEach {
                     Box(
                         modifier = Modifier
                             .clearAndSetSemantics { contentDescription = it.first }
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt
index 7167832..5853b39 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MenuPosition.kt
@@ -26,6 +26,8 @@
 import androidx.compose.ui.unit.IntRect
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.LayoutDirection
+import androidx.compose.ui.util.fastFirstOrNull
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.window.PopupPositionProvider
 
 /**
@@ -366,7 +368,7 @@
             } else {
                 rightToWindowRight
             }
-        ).map {
+        ).fastMap {
             it.position(
                 anchorBounds = anchorBounds,
                 windowSize = windowSize,
@@ -374,7 +376,7 @@
                 layoutDirection = layoutDirection
             )
         }
-        val x = xCandidates.firstOrNull {
+        val x = xCandidates.fastFirstOrNull {
             it >= 0 && it + popupContentSize.width <= windowSize.width
         } ?: xCandidates.last()
 
@@ -387,14 +389,14 @@
             } else {
                 bottomToWindowBottom
             }
-        ).map {
+        ).fastMap {
             it.position(
                 anchorBounds = anchorBounds,
                 windowSize = windowSize,
                 menuHeight = popupContentSize.height
             )
         }
-        val y = yCandidates.firstOrNull {
+        val y = yCandidates.fastFirstOrNull {
             it >= verticalMargin &&
                 it + popupContentSize.height <= windowSize.height - verticalMargin
         } ?: yCandidates.last()
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
index a6c347d..169f74d 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationBar.kt
@@ -65,6 +65,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import kotlin.math.roundToInt
 
 /**
@@ -468,14 +470,14 @@
     }) { measurables, constraints ->
         val looseConstraints = constraints.copy(minWidth = 0, minHeight = 0)
         val iconPlaceable =
-            measurables.first { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)
+            measurables.fastFirst { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)
 
         val totalIndicatorWidth = iconPlaceable.width + (IndicatorHorizontalPadding * 2).roundToPx()
         val animatedIndicatorWidth = (totalIndicatorWidth * animationProgress).roundToInt()
         val indicatorHeight = iconPlaceable.height + (IndicatorVerticalPadding * 2).roundToPx()
         val indicatorRipplePlaceable =
             measurables
-                .first { it.layoutId == IndicatorRippleLayoutIdTag }
+                .fastFirst { it.layoutId == IndicatorRippleLayoutIdTag }
                 .measure(
                     Constraints.fixed(
                         width = totalIndicatorWidth,
@@ -484,7 +486,7 @@
                 )
         val indicatorPlaceable =
             measurables
-                .firstOrNull { it.layoutId == IndicatorLayoutIdTag }
+                .fastFirstOrNull { it.layoutId == IndicatorLayoutIdTag }
                 ?.measure(
                     Constraints.fixed(
                         width = animatedIndicatorWidth,
@@ -495,7 +497,7 @@
         val labelPlaceable =
             label?.let {
                 measurables
-                    .first { it.layoutId == LabelLayoutIdTag }
+                    .fastFirst { it.layoutId == LabelLayoutIdTag }
                     .measure(looseConstraints)
             }
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt
index d5caf4e..dff1aad 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationRail.kt
@@ -66,6 +66,8 @@
 import androidx.compose.ui.unit.constrainHeight
 import androidx.compose.ui.unit.constrainWidth
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import kotlin.math.roundToInt
 
 /**
@@ -465,7 +467,7 @@
     }) { measurables, constraints ->
         val looseConstraints = constraints.copy(minWidth = 0, minHeight = 0)
         val iconPlaceable =
-            measurables.first { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)
+            measurables.fastFirst { it.layoutId == IconLayoutIdTag }.measure(looseConstraints)
 
         val totalIndicatorWidth = iconPlaceable.width + (IndicatorHorizontalPadding * 2).roundToPx()
         val animatedIndicatorWidth = (totalIndicatorWidth * animationProgress).roundToInt()
@@ -478,7 +480,7 @@
 
         val indicatorRipplePlaceable =
             measurables
-                .first { it.layoutId == IndicatorRippleLayoutIdTag }
+                .fastFirst { it.layoutId == IndicatorRippleLayoutIdTag }
                 .measure(
                     Constraints.fixed(
                         width = totalIndicatorWidth,
@@ -487,7 +489,7 @@
                 )
         val indicatorPlaceable =
             measurables
-                .firstOrNull { it.layoutId == IndicatorLayoutIdTag }
+                .fastFirstOrNull { it.layoutId == IndicatorLayoutIdTag }
                 ?.measure(
                     Constraints.fixed(
                         width = animatedIndicatorWidth,
@@ -498,7 +500,7 @@
         val labelPlaceable =
             label?.let {
                 measurables
-                    .first { it.layoutId == LabelLayoutIdTag }
+                    .fastFirst { it.layoutId == LabelLayoutIdTag }
                     .measure(looseConstraints)
             }
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt
index 9dfb9eac..25b024d 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/OutlinedTextField.kt
@@ -65,6 +65,8 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.lerp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.max
 import kotlin.math.roundToInt
@@ -648,26 +650,26 @@
         val relaxedConstraints = constraints.copy(minWidth = 0, minHeight = 0)
 
         // measure leading icon
-        val leadingPlaceable = measurables.find {
+        val leadingPlaceable = measurables.fastFirstOrNull {
             it.layoutId == LeadingId
         }?.measure(relaxedConstraints)
         occupiedSpaceHorizontally += widthOrZero(leadingPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(leadingPlaceable))
 
         // measure trailing icon
-        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }
+        val trailingPlaceable = measurables.fastFirstOrNull { it.layoutId == TrailingId }
             ?.measure(relaxedConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(trailingPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(trailingPlaceable))
 
         // measure prefix
-        val prefixPlaceable = measurables.find { it.layoutId == PrefixId }
+        val prefixPlaceable = measurables.fastFirstOrNull { it.layoutId == PrefixId }
             ?.measure(relaxedConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(prefixPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(prefixPlaceable))
 
         // measure suffix
-        val suffixPlaceable = measurables.find { it.layoutId == SuffixId }
+        val suffixPlaceable = measurables.fastFirstOrNull { it.layoutId == SuffixId }
             ?.measure(relaxedConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(suffixPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(suffixPlaceable))
@@ -685,14 +687,14 @@
             vertical = -bottomPadding
         )
         val labelPlaceable =
-            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LabelId }?.measure(labelConstraints)
         labelPlaceable?.let {
             onLabelMeasured(Size(it.width.toFloat(), it.height.toFloat()))
         }
 
         // supporting text must be measured after other elements, but we
         // reserve space for it using its intrinsic height as a heuristic
-        val supportingMeasurable = measurables.find { it.layoutId == SupportingId }
+        val supportingMeasurable = measurables.fastFirstOrNull { it.layoutId == SupportingId }
         val supportingIntrinsicHeight =
             supportingMeasurable?.minIntrinsicHeight(constraints.minWidth) ?: 0
 
@@ -706,12 +708,12 @@
             vertical = -bottomPadding - topPadding - supportingIntrinsicHeight
         ).copy(minHeight = 0)
         val textFieldPlaceable =
-            measurables.first { it.layoutId == TextFieldId }.measure(textConstraints)
+            measurables.fastFirst { it.layoutId == TextFieldId }.measure(textConstraints)
 
         // measure placeholder
         val placeholderConstraints = textConstraints.copy(minWidth = 0)
-        val placeholderPlaceable =
-            measurables.find { it.layoutId == PlaceholderId }?.measure(placeholderConstraints)
+        val placeholderPlaceable = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }
+            ?.measure(placeholderConstraints)
 
         occupiedSpaceVertically = max(
             occupiedSpaceVertically,
@@ -758,7 +760,7 @@
             )
         val height = totalHeight - supportingHeight
 
-        val containerPlaceable = measurables.first { it.layoutId == ContainerId }.measure(
+        val containerPlaceable = measurables.fastFirst { it.layoutId == ContainerId }.measure(
             Constraints(
                 minWidth = if (width != Constraints.Infinity) width else 0,
                 maxWidth = width,
@@ -830,23 +832,23 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         val textFieldWidth =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)
-        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, height)
+        val labelWidth = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingWidth = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingWidth = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val prefixWidth = measurables.find { it.layoutId == PrefixId }?.let {
+        val prefixWidth = measurables.fastFirstOrNull { it.layoutId == PrefixId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val suffixWidth = measurables.find { it.layoutId == SuffixId }?.let {
+        val suffixWidth = measurables.fastFirstOrNull { it.layoutId == SuffixId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {
+        val placeholderWidth = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
         return calculateWidth(
@@ -870,38 +872,38 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         var remainingWidth = width
-        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingHeight = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
-        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingHeight = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
 
-        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {
+        val labelHeight = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, lerp(remainingWidth, width, animationProgress))
         } ?: 0
 
-        val prefixHeight = measurables.find { it.layoutId == PrefixId }?.let {
+        val prefixHeight = measurables.fastFirstOrNull { it.layoutId == PrefixId }?.let {
             val height = intrinsicMeasurer(it, remainingWidth)
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             height
         } ?: 0
-        val suffixHeight = measurables.find { it.layoutId == SuffixId }?.let {
+        val suffixHeight = measurables.fastFirstOrNull { it.layoutId == SuffixId }?.let {
             val height = intrinsicMeasurer(it, remainingWidth)
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             height
         } ?: 0
 
         val textFieldHeight =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, remainingWidth)
 
-        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {
+        val placeholderHeight = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
-        val supportingHeight = measurables.find { it.layoutId == SupportingId }?.let {
+        val supportingHeight = measurables.fastFirstOrNull { it.layoutId == SupportingId }?.let {
             intrinsicMeasurer(it, width)
         } ?: 0
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt
index 355aae6..b346d44 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Scaffold.kt
@@ -35,6 +35,10 @@
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMapNotNull
+import androidx.compose.ui.util.fastMaxBy
 
 /**
  * <a href="https://material.io/design/layout/understanding-layout.html" class="external" target="_blank">Material Design layout</a>.
@@ -139,13 +143,13 @@
 
         val looseConstraints = constraints.copy(minWidth = 0, minHeight = 0)
 
-        val topBarPlaceables = subcompose(ScaffoldLayoutContent.TopBar, topBar).map {
+        val topBarPlaceables = subcompose(ScaffoldLayoutContent.TopBar, topBar).fastMap {
             it.measure(looseConstraints)
         }
 
-        val topBarHeight = topBarPlaceables.maxByOrNull { it.height }?.height ?: 0
+        val topBarHeight = topBarPlaceables.fastMaxBy { it.height }?.height ?: 0
 
-        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).map {
+        val snackbarPlaceables = subcompose(ScaffoldLayoutContent.Snackbar, snackbar).fastMap {
             // respect only bottom and horizontal for snackbar and fab
             val leftInset = contentWindowInsets
                 .getLeft(this@SubcomposeLayout, layoutDirection)
@@ -161,11 +165,11 @@
             )
         }
 
-        val snackbarHeight = snackbarPlaceables.maxByOrNull { it.height }?.height ?: 0
-        val snackbarWidth = snackbarPlaceables.maxByOrNull { it.width }?.width ?: 0
+        val snackbarHeight = snackbarPlaceables.fastMaxBy { it.height }?.height ?: 0
+        val snackbarWidth = snackbarPlaceables.fastMaxBy { it.width }?.width ?: 0
 
         val fabPlaceables =
-            subcompose(ScaffoldLayoutContent.Fab, fab).mapNotNull { measurable ->
+            subcompose(ScaffoldLayoutContent.Fab, fab).fastMapNotNull { measurable ->
                 // respect only bottom and horizontal for snackbar and fab
                 val leftInset =
                     contentWindowInsets.getLeft(this@SubcomposeLayout, layoutDirection)
@@ -182,8 +186,8 @@
             }
 
         val fabPlacement = if (fabPlaceables.isNotEmpty()) {
-            val fabWidth = fabPlaceables.maxByOrNull { it.width }!!.width
-            val fabHeight = fabPlaceables.maxByOrNull { it.height }!!.height
+            val fabWidth = fabPlaceables.fastMaxBy { it.width }!!.width
+            val fabHeight = fabPlaceables.fastMaxBy { it.height }!!.height
             // FAB distance from the left of the layout, taking into account LTR / RTL
             val fabLeftOffset = when (fabPosition) {
                 FabPosition.Start -> {
@@ -217,9 +221,9 @@
                 LocalFabPlacement provides fabPlacement,
                 content = bottomBar
             )
-        }.map { it.measure(looseConstraints) }
+        }.fastMap { it.measure(looseConstraints) }
 
-        val bottomBarHeight = bottomBarPlaceables.maxByOrNull { it.height }?.height
+        val bottomBarHeight = bottomBarPlaceables.fastMaxBy { it.height }?.height
         val fabOffsetFromBottom = fabPlacement?.let {
             if (bottomBarHeight == null) {
                 it.height + FabSpacing.roundToPx() +
@@ -258,18 +262,18 @@
                 end = insets.calculateEndPadding((this@SubcomposeLayout).layoutDirection)
             )
             content(innerPadding)
-        }.map { it.measure(looseConstraints) }
+        }.fastMap { it.measure(looseConstraints) }
 
         layout(layoutWidth, layoutHeight) {
             // Placing to control drawing order to match default elevation of each placeable
 
-            bodyContentPlaceables.forEach {
+            bodyContentPlaceables.fastForEach {
                 it.place(0, 0)
             }
-            topBarPlaceables.forEach {
+            topBarPlaceables.fastForEach {
                 it.place(0, 0)
             }
-            snackbarPlaceables.forEach {
+            snackbarPlaceables.fastForEach {
                 it.place(
                     (layoutWidth - snackbarWidth) / 2 +
                         contentWindowInsets.getLeft(this@SubcomposeLayout, layoutDirection),
@@ -277,12 +281,12 @@
                 )
             }
             // The bottom bar is always at the bottom of the layout
-            bottomBarPlaceables.forEach {
+            bottomBarPlaceables.fastForEach {
                 it.place(0, layoutHeight - (bottomBarHeight ?: 0))
             }
             // Explicitly not using placeRelative here as `leftOffset` already accounts for RTL
             fabPlacement?.let { placement ->
-                fabPlaceables.forEach {
+                fabPlaceables.fastForEach {
                     it.place(placement.left, layoutHeight - fabOffsetFromBottom!!)
                 }
             }
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt
index 8c6bb95..860b1a8 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt
@@ -79,6 +79,9 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.fastMaxBy
 import kotlinx.coroutines.launch
 
@@ -323,12 +326,12 @@
             val scope = rememberCoroutineScope()
 
             Layout(listOf(icon, content)) { (iconMeasurables, contentMeasurables), constraints ->
-                val iconPlaceables = iconMeasurables.map { it.measure(constraints) }
-                val iconDesiredWidth = iconMeasurables.fold(0) { acc, it ->
+                val iconPlaceables = iconMeasurables.fastMap { it.measure(constraints) }
+                val iconDesiredWidth = iconMeasurables.fastFold(0) { acc, it ->
                     maxOf(acc, it.maxIntrinsicWidth(Constraints.Infinity))
                 }
                 val iconWidth = iconPlaceables.fastMaxBy { it.width }?.width ?: 0
-                val contentPlaceables = contentMeasurables.map { it.measure(constraints) }
+                val contentPlaceables = contentMeasurables.fastMap { it.measure(constraints) }
                 val contentWidth = contentPlaceables.fastMaxBy { it.width }?.width
                 val width = maxOf(SegmentedButtonDefaults.IconSize.roundToPx(), iconDesiredWidth) +
                     IconSpacing.roundToPx() +
@@ -350,14 +353,14 @@
                 }
 
                 layout(width, constraints.maxHeight) {
-                    iconPlaceables.forEach {
+                    iconPlaceables.fastForEach {
                         it.place(0, (constraints.maxHeight - it.height) / 2)
                     }
 
                     val contentOffsetX = SegmentedButtonDefaults.IconSize.roundToPx() +
                         IconSpacing.roundToPx() + anim.value
 
-                    contentPlaceables.forEach {
+                    contentPlaceables.fastForEach {
                         it.place(contentOffsetX, (constraints.maxHeight - it.height) / 2)
                     }
                 }
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Slider.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Slider.kt
index 8f3afa4..5aa3895 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Slider.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Slider.kt
@@ -86,6 +86,8 @@
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.lerp
 import androidx.compose.ui.util.packFloats
 import androidx.compose.ui.util.unpackFloat1
@@ -712,11 +714,11 @@
             .then(drag)
     ) { measurables, constraints ->
 
-        val thumbPlaceable = measurables.first {
+        val thumbPlaceable = measurables.fastFirst {
             it.layoutId == SliderComponents.THUMB
         }.measure(constraints)
 
-        val trackPlaceable = measurables.first {
+        val trackPlaceable = measurables.fastFirst {
             it.layoutId == SliderComponents.TRACK
         }.measure(
             constraints.offset(
@@ -807,19 +809,19 @@
             )
             .then(pressDrag)
     ) { measurables, constraints ->
-        val startThumbPlaceable = measurables.first {
+        val startThumbPlaceable = measurables.fastFirst {
             it.layoutId == RangeSliderComponents.STARTTHUMB
         }.measure(
             constraints
         )
 
-        val endThumbPlaceable = measurables.first {
+        val endThumbPlaceable = measurables.fastFirst {
             it.layoutId == RangeSliderComponents.ENDTHUMB
         }.measure(
             constraints
         )
 
-        val trackPlaceable = measurables.first {
+        val trackPlaceable = measurables.fastFirst {
             it.layoutId == RangeSliderComponents.TRACK
         }.measure(
             constraints.offset(
@@ -1072,7 +1074,7 @@
                     it < sliderPositions.activeRange.start
             }.forEach { (outsideFraction, list) ->
                     drawPoints(
-                        list.map {
+                        list.fastMap {
                             Offset(lerp(sliderStart, sliderEnd, it).x, center.y)
                         },
                         PointMode.Points,
@@ -1211,7 +1213,7 @@
                 it < activeRangeStart
         }.forEach { (outsideFraction, list) ->
             drawPoints(
-                list.map {
+                list.fastMap {
                     Offset(lerp(sliderStart, sliderEnd, it).x, center.y)
                 },
                 PointMode.Points,
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt
index fa89582..771613c 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt
@@ -39,6 +39,8 @@
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import kotlin.math.max
 import kotlin.math.min
 
@@ -333,9 +335,9 @@
     ) { measurables, constraints ->
         val containerWidth = min(constraints.maxWidth, ContainerMaxWidth.roundToPx())
         val actionButtonPlaceable =
-            measurables.firstOrNull { it.layoutId == actionTag }?.measure(constraints)
+            measurables.fastFirstOrNull { it.layoutId == actionTag }?.measure(constraints)
         val dismissButtonPlaceable =
-            measurables.firstOrNull { it.layoutId == dismissActionTag }?.measure(constraints)
+            measurables.fastFirstOrNull { it.layoutId == dismissActionTag }?.measure(constraints)
         val actionButtonWidth = actionButtonPlaceable?.width ?: 0
         val actionButtonHeight = actionButtonPlaceable?.height ?: 0
         val dismissButtonWidth = dismissButtonPlaceable?.width ?: 0
@@ -344,7 +346,7 @@
         val textMaxWidth =
             (containerWidth - actionButtonWidth - dismissButtonWidth - extraSpacingWidth)
                 .coerceAtLeast(constraints.minWidth)
-        val textPlaceable = measurables.first { it.layoutId == textTag }.measure(
+        val textPlaceable = measurables.fastFirst { it.layoutId == textTag }.measure(
             constraints.copy(minHeight = 0, maxWidth = textMaxWidth)
         )
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt
index dce3b38..dfd2279 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SnackbarHost.kt
@@ -41,6 +41,10 @@
 import androidx.compose.ui.semantics.dismiss
 import androidx.compose.ui.semantics.liveRegion
 import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.util.fastFilterNotNull
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMapTo
 import kotlin.coroutines.resume
 import kotlinx.coroutines.CancellableContinuation
 import kotlinx.coroutines.delay
@@ -344,17 +348,21 @@
     val state = remember { FadeInFadeOutState<SnackbarData?>() }
     if (current != state.current) {
         state.current = current
-        val keys = state.items.map { it.key }.toMutableList()
+        val keys = state.items.fastMap { it.key }.toMutableList()
         if (!keys.contains(current)) {
             keys.add(current)
         }
         state.items.clear()
-        keys.filterNotNull().mapTo(state.items) { key ->
+        keys.fastFilterNotNull().fastMapTo(state.items) { key ->
             FadeInFadeOutAnimationItem(key) { children ->
                 val isVisible = key == current
                 val duration = if (isVisible) SnackbarFadeInMillis else SnackbarFadeOutMillis
                 val delay = SnackbarFadeOutMillis + SnackbarInBetweenDelayMillis
-                val animationDelay = if (isVisible && keys.filterNotNull().size != 1) delay else 0
+                val animationDelay = if (isVisible && keys.fastFilterNotNull().size != 1) {
+                    delay
+                } else {
+                    0
+                }
                 val opacity = animatedOpacity(
                     animation = tween(
                         easing = LinearEasing,
@@ -397,7 +405,7 @@
     }
     Box(modifier) {
         state.scope = currentRecomposeScope
-        state.items.forEach { (item, opacity) ->
+        state.items.fastForEach { (item, opacity) ->
             key(item) {
                 opacity {
                     content(item!!)
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt
index f06b0e3..73e1b1e 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Swipeable.kt
@@ -53,6 +53,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMaxBy
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.PI
 import kotlin.math.abs
@@ -60,7 +62,6 @@
 import kotlin.math.sin
 import kotlinx.coroutines.CancellationException
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.collect
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.take
 import kotlinx.coroutines.launch
@@ -734,8 +735,8 @@
     anchors: Set<Float>
 ): List<Float> {
     // Find the anchors the target lies between with a little bit of rounding error.
-    val a = anchors.filter { it <= offset + 0.001 }.maxOrNull()
-    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()
+    val a = anchors.filter { it <= offset + 0.001 }.fastMaxBy { it }
+    val b = anchors.filter { it >= offset - 0.001 }.fastMinByOrNull { it }
 
     return when {
         a == null ->
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Tab.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Tab.kt
index bc9ab02..c02ecd2 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Tab.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Tab.kt
@@ -52,6 +52,7 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFirst
 import kotlin.math.max
 
 /**
@@ -319,7 +320,7 @@
         }
     ) { measurables, constraints ->
         val textPlaceable = text?.let {
-            measurables.first { it.layoutId == "text" }.measure(
+            measurables.fastFirst { it.layoutId == "text" }.measure(
                 // Measure with loose constraints for height as we don't want the text to take up more
                 // space than it needs
                 constraints.copy(minHeight = 0)
@@ -327,7 +328,7 @@
         }
 
         val iconPlaceable = icon?.let {
-            measurables.first { it.layoutId == "icon" }.measure(constraints)
+            measurables.fastFirst { it.layoutId == "icon" }.measure(constraints)
         }
 
         val tabWidth = max(textPlaceable?.width ?: 0, iconPlaceable?.width ?: 0)
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TabRow.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TabRow.kt
index 26dabf2..861e5d4 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TabRow.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TabRow.kt
@@ -53,6 +53,10 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
 
@@ -170,11 +174,11 @@
             if (tabCount > 0) {
                 tabWidth = (tabRowWidth / tabCount)
             }
-            val tabRowHeight = tabMeasurables.fold(initial = 0) { max, curr ->
+            val tabRowHeight = tabMeasurables.fastFold(initial = 0) { max, curr ->
                 maxOf(curr.maxIntrinsicHeight(tabWidth), max)
             }
 
-            val tabPlaceables = tabMeasurables.map {
+            val tabPlaceables = tabMeasurables.fastMap {
                 it.measure(
                     constraints.copy(
                         minWidth = tabWidth,
@@ -195,18 +199,18 @@
             }
 
             layout(tabRowWidth, tabRowHeight) {
-                tabPlaceables.forEachIndexed { index, placeable ->
+                tabPlaceables.fastForEachIndexed { index, placeable ->
                     placeable.placeRelative(index * tabWidth, 0)
                 }
 
-                subcompose(TabSlots.Divider, divider).forEach {
+                subcompose(TabSlots.Divider, divider).fastForEach {
                     val placeable = it.measure(constraints.copy(minHeight = 0))
                     placeable.placeRelative(0, tabRowHeight - placeable.height)
                 }
 
                 subcompose(TabSlots.Indicator) {
                     indicator(tabPositions)
-                }.forEach {
+                }.fastForEach {
                     it.measure(Constraints.fixed(tabRowWidth, tabRowHeight)).placeRelative(0, 0)
                 }
             }
@@ -290,7 +294,7 @@
 
             val tabMeasurables = subcompose(TabSlots.Tabs, tabs)
 
-            val layoutHeight = tabMeasurables.fold(initial = 0) { curr, measurable ->
+            val layoutHeight = tabMeasurables.fastFold(initial = 0) { curr, measurable ->
                 maxOf(curr, measurable.maxIntrinsicHeight(Constraints.Infinity))
             }
 
@@ -302,7 +306,7 @@
 
             val tabPlaceables = mutableListOf<Placeable>()
             val tabContentWidths = mutableListOf<Dp>()
-            tabMeasurables.forEach {
+            tabMeasurables.fastForEach {
                 val placeable = it.measure(tabConstraints)
                 var contentWidth =
                     minOf(
@@ -314,7 +318,7 @@
                 tabContentWidths.add(contentWidth)
             }
 
-            val layoutWidth = tabPlaceables.fold(initial = padding * 2) { curr, measurable ->
+            val layoutWidth = tabPlaceables.fastFold(initial = padding * 2) { curr, measurable ->
                 curr + measurable.width
             }
 
@@ -323,7 +327,7 @@
                 // Place the tabs
                 val tabPositions = mutableListOf<TabPosition>()
                 var left = padding
-                tabPlaceables.forEachIndexed { index, placeable ->
+                tabPlaceables.fastForEachIndexed { index, placeable ->
                     placeable.placeRelative(left, 0)
                     tabPositions.add(
                         TabPosition(
@@ -337,7 +341,7 @@
 
                 // The divider is measured with its own height, and width equal to the total width
                 // of the tab row, and then placed on top of the tabs.
-                subcompose(TabSlots.Divider, divider).forEach {
+                subcompose(TabSlots.Divider, divider).fastForEach {
                     val placeable = it.measure(
                         constraints.copy(
                             minHeight = 0,
@@ -352,7 +356,7 @@
                 // row, and then placed on top of the divider.
                 subcompose(TabSlots.Indicator) {
                     indicator(tabPositions)
-                }.forEach {
+                }.fastForEach {
                     it.measure(Constraints.fixed(layoutWidth, layoutHeight)).placeRelative(0, 0)
                 }
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextField.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextField.kt
index 2af0c17d..1ab2a13 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextField.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TextField.kt
@@ -63,6 +63,8 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.lerp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.max
 import kotlin.math.roundToInt
@@ -648,24 +650,24 @@
 
         // measure leading icon
         val leadingPlaceable =
-            measurables.find { it.layoutId == LeadingId }?.measure(looseConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LeadingId }?.measure(looseConstraints)
         occupiedSpaceHorizontally += widthOrZero(leadingPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(leadingPlaceable))
 
         // measure trailing icon
-        val trailingPlaceable = measurables.find { it.layoutId == TrailingId }
+        val trailingPlaceable = measurables.fastFirstOrNull { it.layoutId == TrailingId }
             ?.measure(looseConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(trailingPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(trailingPlaceable))
 
         // measure prefix
-        val prefixPlaceable = measurables.find { it.layoutId == PrefixId }
+        val prefixPlaceable = measurables.fastFirstOrNull { it.layoutId == PrefixId }
             ?.measure(looseConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(prefixPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(prefixPlaceable))
 
         // measure suffix
-        val suffixPlaceable = measurables.find { it.layoutId == SuffixId }
+        val suffixPlaceable = measurables.fastFirstOrNull { it.layoutId == SuffixId }
             ?.measure(looseConstraints.offset(horizontal = -occupiedSpaceHorizontally))
         occupiedSpaceHorizontally += widthOrZero(suffixPlaceable)
         occupiedSpaceVertically = max(occupiedSpaceVertically, heightOrZero(suffixPlaceable))
@@ -677,11 +679,11 @@
                 horizontal = -occupiedSpaceHorizontally
             )
         val labelPlaceable =
-            measurables.find { it.layoutId == LabelId }?.measure(labelConstraints)
+            measurables.fastFirstOrNull { it.layoutId == LabelId }?.measure(labelConstraints)
 
         // supporting text must be measured after other elements, but we
         // reserve space for it using its intrinsic height as a heuristic
-        val supportingMeasurable = measurables.find { it.layoutId == SupportingId }
+        val supportingMeasurable = measurables.fastFirstOrNull { it.layoutId == SupportingId }
         val supportingIntrinsicHeight =
             supportingMeasurable?.minIntrinsicHeight(constraints.minWidth) ?: 0
 
@@ -694,13 +696,13 @@
                 horizontal = -occupiedSpaceHorizontally
             )
         val textFieldPlaceable = measurables
-            .first { it.layoutId == TextFieldId }
+            .fastFirst { it.layoutId == TextFieldId }
             .measure(textFieldConstraints)
 
         // measure placeholder
         val placeholderConstraints = textFieldConstraints.copy(minWidth = 0)
         val placeholderPlaceable = measurables
-            .find { it.layoutId == PlaceholderId }
+            .fastFirstOrNull { it.layoutId == PlaceholderId }
             ?.measure(placeholderConstraints)
 
         occupiedSpaceVertically = max(
@@ -742,7 +744,7 @@
         )
         val height = totalHeight - supportingHeight
 
-        val containerPlaceable = measurables.first { it.layoutId == ContainerId }.measure(
+        val containerPlaceable = measurables.fastFirst { it.layoutId == ContainerId }.measure(
             Constraints(
                 minWidth = if (width != Constraints.Infinity) width else 0,
                 maxWidth = width,
@@ -833,23 +835,23 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         val textFieldWidth =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, height)
-        val labelWidth = measurables.find { it.layoutId == LabelId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, height)
+        val labelWidth = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val trailingWidth = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingWidth = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val prefixWidth = measurables.find { it.layoutId == PrefixId }?.let {
+        val prefixWidth = measurables.fastFirstOrNull { it.layoutId == PrefixId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val suffixWidth = measurables.find { it.layoutId == SuffixId }?.let {
+        val suffixWidth = measurables.fastFirstOrNull { it.layoutId == SuffixId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val leadingWidth = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingWidth = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
-        val placeholderWidth = measurables.find { it.layoutId == PlaceholderId }?.let {
+        val placeholderWidth = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, height)
         } ?: 0
         return calculateWidth(
@@ -870,37 +872,37 @@
         intrinsicMeasurer: (IntrinsicMeasurable, Int) -> Int
     ): Int {
         var remainingWidth = width
-        val leadingHeight = measurables.find { it.layoutId == LeadingId }?.let {
+        val leadingHeight = measurables.fastFirstOrNull { it.layoutId == LeadingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
-        val trailingHeight = measurables.find { it.layoutId == TrailingId }?.let {
+        val trailingHeight = measurables.fastFirstOrNull { it.layoutId == TrailingId }?.let {
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             intrinsicMeasurer(it, width)
         } ?: 0
 
-        val labelHeight = measurables.find { it.layoutId == LabelId }?.let {
+        val labelHeight = measurables.fastFirstOrNull { it.layoutId == LabelId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
-        val prefixHeight = measurables.find { it.layoutId == PrefixId }?.let {
+        val prefixHeight = measurables.fastFirstOrNull { it.layoutId == PrefixId }?.let {
             val height = intrinsicMeasurer(it, remainingWidth)
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             height
         } ?: 0
-        val suffixHeight = measurables.find { it.layoutId == SuffixId }?.let {
+        val suffixHeight = measurables.fastFirstOrNull { it.layoutId == SuffixId }?.let {
             val height = intrinsicMeasurer(it, remainingWidth)
             remainingWidth -= it.maxIntrinsicWidth(Constraints.Infinity)
             height
         } ?: 0
 
         val textFieldHeight =
-            intrinsicMeasurer(measurables.first { it.layoutId == TextFieldId }, remainingWidth)
-        val placeholderHeight = measurables.find { it.layoutId == PlaceholderId }?.let {
+            intrinsicMeasurer(measurables.fastFirst { it.layoutId == TextFieldId }, remainingWidth)
+        val placeholderHeight = measurables.fastFirstOrNull { it.layoutId == PlaceholderId }?.let {
             intrinsicMeasurer(it, remainingWidth)
         } ?: 0
 
-        val supportingHeight = measurables.find { it.layoutId == SupportingId }?.let {
+        val supportingHeight = measurables.fastFirstOrNull { it.layoutId == SupportingId }?.let {
             intrinsicMeasurer(it, width)
         } ?: 0
 
diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt
index 22feae8..2699a0e 100644
--- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt
+++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt
@@ -158,6 +158,11 @@
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.center
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFilter
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFirstOrNull
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.zIndex
 import kotlin.math.PI
 import kotlin.math.abs
@@ -924,7 +929,7 @@
 ) {
     val measurePolicy = remember {
         MeasurePolicy { measurables, constraints ->
-            val spacer = measurables.first { it.layoutId == "Spacer" }
+            val spacer = measurables.fastFirst { it.layoutId == "Spacer" }
             val spacerPlaceable = spacer.measure(
                 constraints.copy(
                     minWidth = 0,
@@ -932,7 +937,7 @@
                 )
             )
 
-            val items = measurables.filter { it.layoutId != "Spacer" }.map { item ->
+            val items = measurables.fastFilter { it.layoutId != "Spacer" }.fastMap { item ->
                 item.measure(
                     constraints.copy(
                         minWidth = 0,
@@ -969,7 +974,7 @@
 ) {
     val measurePolicy = remember {
         MeasurePolicy { measurables, constraints ->
-            val spacer = measurables.first { it.layoutId == "Spacer" }
+            val spacer = measurables.fastFirst { it.layoutId == "Spacer" }
             val spacerPlaceable = spacer.measure(
                 constraints.copy(
                     minHeight = 0,
@@ -977,7 +982,7 @@
                 )
             )
 
-            val items = measurables.filter { it.layoutId != "Spacer" }.map { item ->
+            val items = measurables.fastFilter { it.layoutId != "Spacer" }.fastMap { item ->
                 item.measure(
                     constraints.copy(
                         minHeight = 0,
@@ -1604,11 +1609,11 @@
     ) { measurables, constraints ->
         val radiusPx = radius.toPx()
         val itemConstraints = constraints.copy(minWidth = 0, minHeight = 0)
-        val placeables = measurables.filter {
+        val placeables = measurables.fastFilter {
             it.layoutId != LayoutId.Selector && it.layoutId != LayoutId.InnerCircle
-        }.map { measurable -> measurable.measure(itemConstraints) }
-        val selectorMeasurable = measurables.find { it.layoutId == LayoutId.Selector }
-        val innerMeasurable = measurables.find { it.layoutId == LayoutId.InnerCircle }
+        }.fastMap { measurable -> measurable.measure(itemConstraints) }
+        val selectorMeasurable = measurables.fastFirstOrNull { it.layoutId == LayoutId.Selector }
+        val innerMeasurable = measurables.fastFirstOrNull { it.layoutId == LayoutId.InnerCircle }
         val theta = FullCircle / (placeables.count())
         val selectorPlaceable = selectorMeasurable?.measure(itemConstraints)
         val innerCirclePlaceable = innerMeasurable?.measure(itemConstraints)
@@ -1619,7 +1624,7 @@
         ) {
             selectorPlaceable?.place(0, 0)
 
-            placeables.forEachIndexed { i, it ->
+            placeables.fastForEachIndexed { i, it ->
                 val centerOffsetX = constraints.maxWidth / 2 - it.width / 2
                 val centerOffsetY = constraints.maxHeight / 2 - it.height / 2
                 val offsetX = radiusPx * cos(theta * i - QuarterCircle) + centerOffsetX
@@ -1717,7 +1722,7 @@
 private val MinimumInteractiveSize = 48.dp
 private val Minutes = listOf(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55)
 private val Hours = listOf(12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-private val ExtraHours = Hours.map { (it % 12 + 12) }
+private val ExtraHours = Hours.fastMap { (it % 12 + 12) }
 private val PeriodToggleMargin = 12.dp
 
 /**
diff --git a/compose/material3/material3/src/jvmMain/kotlin/androidx/compose/material3/LegacyCalendarModelImpl.kt b/compose/material3/material3/src/jvmMain/kotlin/androidx/compose/material3/LegacyCalendarModelImpl.kt
index 1220153..7fea1e3 100644
--- a/compose/material3/material3/src/jvmMain/kotlin/androidx/compose/material3/LegacyCalendarModelImpl.kt
+++ b/compose/material3/material3/src/jvmMain/kotlin/androidx/compose/material3/LegacyCalendarModelImpl.kt
@@ -16,6 +16,7 @@
 
 package androidx.compose.material3
 
+import androidx.compose.ui.util.fastForEachIndexed
 import java.text.DateFormat
 import java.text.DateFormatSymbols
 import java.text.ParseException
@@ -56,7 +57,7 @@
         val shortWeekdays = DateFormatSymbols(locale).shortWeekdays
         // Skip the first item, as it's empty, and the second item, as it represents Sunday while it
         // should be last according to ISO-8601.
-        weekdays.drop(2).forEachIndexed { index, day ->
+        weekdays.drop(2).fastForEachIndexed { index, day ->
             add(Pair(day, shortWeekdays[index + 2]))
         }
         // Add Sunday to the end.
diff --git a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/PlatformTypefaces.kt b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/PlatformTypefaces.kt
index b86a1f0..9b8893e 100644
--- a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/PlatformTypefaces.kt
+++ b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/PlatformTypefaces.kt
@@ -23,8 +23,8 @@
 import androidx.annotation.RequiresApi
 import androidx.annotation.VisibleForTesting
 import androidx.compose.ui.text.ExperimentalTextApi
-import androidx.compose.ui.text.fastJoinToString
 import androidx.compose.ui.unit.Density
+import androidx.compose.ui.util.fastJoinToString
 
 /**
  * Primary internal interface for resolving typefaces from Android platform
diff --git a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidFontListTypeface.android.kt b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidFontListTypeface.android.kt
index 1d1caa0..e745347 100644
--- a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidFontListTypeface.android.kt
+++ b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidFontListTypeface.android.kt
@@ -25,9 +25,6 @@
 import androidx.collection.LruCache
 import androidx.compose.ui.text.ExperimentalTextApi
 import androidx.compose.ui.text.android.InternalPlatformTextApi
-import androidx.compose.ui.text.fastDistinctBy
-import androidx.compose.ui.text.fastFilter
-import androidx.compose.ui.text.fastFilterNotNull
 import androidx.compose.ui.text.font.AndroidFont
 import androidx.compose.ui.text.font.AndroidPreloadedFont
 import androidx.compose.ui.text.font.Font
@@ -40,6 +37,9 @@
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.text.font.ResourceFont
 import androidx.compose.ui.text.font.synthesizeTypeface
+import androidx.compose.ui.util.fastDistinctBy
+import androidx.compose.ui.util.fastFilter
+import androidx.compose.ui.util.fastFilterNotNull
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
 import androidx.core.content.res.ResourcesCompat
diff --git a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/extensions/SpannableExtensions.android.kt b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/extensions/SpannableExtensions.android.kt
index 972b324..1d92b39 100644
--- a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/extensions/SpannableExtensions.android.kt
+++ b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/extensions/SpannableExtensions.android.kt
@@ -51,7 +51,6 @@
 import androidx.compose.ui.text.android.style.SkewXSpan
 import androidx.compose.ui.text.android.style.TextDecorationSpan
 import androidx.compose.ui.text.android.style.TypefaceSpan
-import androidx.compose.ui.text.fastFilter
 import androidx.compose.ui.text.font.Font
 import androidx.compose.ui.text.font.FontFamily
 import androidx.compose.ui.text.font.FontStyle
@@ -72,6 +71,7 @@
 import androidx.compose.ui.unit.TextUnitType
 import androidx.compose.ui.unit.isUnspecified
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastForEachIndexed
 import kotlin.math.ceil
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
index 3398b6a..99dba45 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
@@ -22,6 +22,7 @@
 import androidx.compose.ui.text.AnnotatedString.Range
 import androidx.compose.ui.text.intl.LocaleList
 import androidx.compose.ui.util.fastAny
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
 
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraph.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraph.kt
index d6a9bbd..3ec3103 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraph.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraph.kt
@@ -34,6 +34,7 @@
 import androidx.compose.ui.text.style.TextDecoration
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
+import androidx.compose.ui.util.fastFlatMap
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
 import kotlin.math.max
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraphIntrinsics.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraphIntrinsics.kt
index cd86a8f..b1f07cb 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraphIntrinsics.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraphIntrinsics.kt
@@ -22,6 +22,7 @@
 import androidx.compose.ui.text.style.TextDirection
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.util.fastAny
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.fastMaxBy
 
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter.kt
index 9d0e94c..6d6662d 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter.kt
@@ -22,10 +22,10 @@
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.text.caches.LruCache
 import androidx.compose.ui.text.caches.SimpleArrayMap
-import androidx.compose.ui.text.fastDistinctBy
-import androidx.compose.ui.text.fastFilter
 import androidx.compose.ui.text.platform.createSynchronizedObject
 import androidx.compose.ui.text.platform.synchronized
+import androidx.compose.ui.util.fastDistinctBy
+import androidx.compose.ui.util.fastFilter
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastMap
 import kotlin.coroutines.CoroutineContext
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontMatcher.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontMatcher.kt
index b227277..bfe532b 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontMatcher.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/font/FontMatcher.kt
@@ -16,7 +16,7 @@
 
 package androidx.compose.ui.text.font
 
-import androidx.compose.ui.text.fastFilter
+import androidx.compose.ui.util.fastFilter
 
 /**
  * Given a [FontFamily], [FontWeight] and [FontStyle], matches the best font in the [FontFamily]
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextDecoration.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextDecoration.kt
index 3244f63..c107fbc 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextDecoration.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextDecoration.kt
@@ -17,8 +17,8 @@
 
 import androidx.compose.runtime.Immutable
 import androidx.compose.runtime.Stable
-import androidx.compose.ui.text.fastFold
-import androidx.compose.ui.text.fastJoinToString
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastJoinToString
 
 /**
  * Defines a horizontal line to be drawn on the text.
diff --git a/compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt b/compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt
index 62a82c2..d500695 100644
--- a/compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt
+++ b/compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt
@@ -17,6 +17,7 @@
 package androidx.compose.ui.text
 
 import androidx.compose.ui.text.AnnotatedString.Range
+import androidx.compose.ui.util.fastFold
 import androidx.compose.ui.util.fastMap
 import java.util.SortedSet
 
diff --git a/compose/ui/ui-text/src/test/java/androidx/compose/ui/text/TextStyleTest.kt b/compose/ui/ui-text/src/test/java/androidx/compose/ui/text/TextStyleTest.kt
index 66378f5..040d279 100644
--- a/compose/ui/ui-text/src/test/java/androidx/compose/ui/text/TextStyleTest.kt
+++ b/compose/ui/ui-text/src/test/java/androidx/compose/ui/text/TextStyleTest.kt
@@ -49,6 +49,7 @@
 import androidx.compose.ui.unit.em
 import androidx.compose.ui.unit.isUnspecified
 import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastDistinctBy
 import com.google.common.truth.Truth.assertThat
 import kotlin.reflect.KClass
 import kotlin.reflect.KParameter
diff --git a/compose/ui/ui-util/src/commonMain/kotlin/androidx/compose/ui/util/ListUtils.kt b/compose/ui/ui-util/src/commonMain/kotlin/androidx/compose/ui/util/ListUtils.kt
index ca028b0..bb8caf3 100644
--- a/compose/ui/ui-util/src/commonMain/kotlin/androidx/compose/ui/util/ListUtils.kt
+++ b/compose/ui/ui-util/src/commonMain/kotlin/androidx/compose/ui/util/ListUtils.kt
@@ -249,8 +249,6 @@
  * **Do not use for collections that come from public APIs**, since they may not support random
  * access in an efficient way, and this method may actually be a lot slower. Only use for
  * collections that are created by code we control and are known to support random access.
- *
- * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.
  */
 @Suppress("BanInlineOptIn") // Treat Kotlin Contracts as non-experimental.
 @OptIn(ExperimentalContracts::class)
@@ -365,6 +363,8 @@
  *
  * @param [operation] function that takes current accumulator value and an element,
  * and calculates the next accumulator value.
+ *
+ * @throws UnsupportedOperationException if this collection is empty
  */
 @Suppress("BanInlineOptIn")
 @OptIn(ExperimentalContracts::class)
@@ -532,11 +532,11 @@
 /**
  * Returns the first value that [predicate] returns `true` for
  *
- * @throws [NoSuchElementException] if no such element is found.
- *
  * **Do not use for collections that come from public APIs**, since they may not support random
  * access in an efficient way, and this method may actually be a lot slower. Only use for
  * collections that are created by code we control and are known to support random access.
+ *
+ * @throws [NoSuchElementException] if no such element is found
  */
 @Suppress("BanInlineOptIn")
 @OptIn(ExperimentalContracts::class)
diff --git a/compose/ui/ui/lint-baseline.xml b/compose/ui/ui/lint-baseline.xml
index 5a92c32..017bacd 100644
--- a/compose/ui/ui/lint-baseline.xml
+++ b/compose/ui/ui/lint-baseline.xml
@@ -427,6 +427,15 @@
     <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in variable &apos;scrollAction&apos; with type AccessibilityAction&lt;Function2&lt;? super Float, ? super Float, ? extends Boolean>>."
+        errorLine1="                val scrollAction ="
+        errorLine2="                ^">
+        <location
+            file="src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt"/>
+    </issue>
+
+    <issue
+        id="PrimitiveInLambda"
+        message="Use a functional interface instead of lambda syntax for lambdas with primitive values in variable &apos;scrollAction&apos; with type AccessibilityAction&lt;Function2&lt;? super Float, ? super Float, ? extends Boolean>>."
         errorLine1="                var scrollAction = scrollableAncestor?.config?.getOrNull(SemanticsActions.ScrollBy)"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
index 18e0502..ff887d0 100644
--- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
+++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
@@ -52,7 +52,6 @@
 import androidx.collection.SparseArrayCompat
 import androidx.compose.ui.ExperimentalComposeUiApi
 import androidx.compose.ui.R
-import androidx.compose.ui.fastJoinToString
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.geometry.Rect
 import androidx.compose.ui.graphics.toComposeRect
@@ -94,6 +93,7 @@
 import androidx.compose.ui.unit.toSize
 import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastJoinToString
 import androidx.compose.ui.util.fastMap
 import androidx.core.util.keyIterator
 import androidx.core.view.AccessibilityDelegateCompat
diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/accessibility/CollectionInfo.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/accessibility/CollectionInfo.kt
index 212864c..9a9447e 100644
--- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/accessibility/CollectionInfo.kt
+++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/accessibility/CollectionInfo.kt
@@ -16,8 +16,6 @@
 
 package androidx.compose.ui.platform.accessibility
 
-import androidx.compose.ui.fastReduce
-import androidx.compose.ui.fastZipWithNext
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.semantics.CollectionInfo
 import androidx.compose.ui.semantics.CollectionItemInfo
@@ -25,6 +23,8 @@
 import androidx.compose.ui.semantics.SemanticsProperties
 import androidx.compose.ui.semantics.getOrNull
 import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastReduce
+import androidx.compose.ui.util.fastZipWithNext
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
 import kotlin.math.abs
 
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
index ddf5d9e..b4743ae 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.runtime.collection.mutableVectorOf
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.fastMapNotNull
 import androidx.compose.ui.geometry.Size
 import androidx.compose.ui.internal.JvmDefaultWithCompatibility
 import androidx.compose.ui.node.ModifierNodeElement
@@ -31,6 +30,7 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.util.fastAll
+import androidx.compose.ui.util.fastMapNotNull
 import kotlin.coroutines.Continuation
 import kotlin.coroutines.ContinuationInterceptor
 import kotlin.coroutines.CoroutineContext
diff --git a/constraintlayout/constraintlayout-compose/lint-baseline.xml b/constraintlayout/constraintlayout-compose/lint-baseline.xml
index c1c9585..cacb99a 100644
--- a/constraintlayout/constraintlayout-compose/lint-baseline.xml
+++ b/constraintlayout/constraintlayout-compose/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.2.0-alpha14" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha14)" variant="all" version="8.2.0-alpha14">
 
     <issue
         id="BanInlineOptIn"
@@ -47,123 +47,6 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val a = anchors.filter { it &lt;= offset + 0.001 }.maxOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (child in root.children) {"
-        errorLine2="                   ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            root.children.forEach { child ->"
-        errorLine2="                          ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            for (child in root.children) {"
-        errorLine2="                       ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            for (child in root.children) {"
-        errorLine2="                       ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (element in designElements) {"
-        errorLine2="                     ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            root.children.forEach { child ->"
-        errorLine2="                          ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (child in root.children) {"
-        errorLine2="                   ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (child in root.children) {"
-        errorLine2="                   ~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    root.children.forEach { constraintWidget ->"
-        errorLine2="                  ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        constraintWidget.anchors.forEach { anchor ->"
-        errorLine2="                                 ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    helperReferences.forEach(helperReferencesArray::put)"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt"/>
-    </issue>
-
-    <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method setThresholds$lint_module has parameter &apos;&lt;set-?>&apos; with type Function2&lt;? super Float, ? super Float, Float>."
         errorLine1="    internal var thresholds: (Float, Float) -> Float by mutableStateOf({ _, _ -> 0f })"
diff --git a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt
index 02423cd..337d63a 100644
--- a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt
+++ b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ConstraintLayout.kt
@@ -1765,6 +1765,7 @@
         json.append("  bottom:  ${root.height} ,")
         json.append(" } }")
 
+        @Suppress("ListIterator")
         for (child in root.children) {
             val measurable = child.companionWidget
             if (measurable !is Measurable) {
@@ -1906,13 +1907,13 @@
 
         if (DEBUG) {
             root.debugName = "ConstraintLayout"
-            root.children.forEach { child ->
+            root.children.fastForEach { child ->
                 child.debugName =
                     (child.companionWidget as? Measurable)?.layoutId?.toString() ?: "NOTAG"
             }
             Log.d("CCL", "ConstraintLayout is asked to measure with $constraints")
             Log.d("CCL", root.toDebugString())
-            for (child in root.children) {
+            root.children.fastForEach { child ->
                 Log.d("CCL", child.toDebugString())
             }
         }
@@ -1969,6 +1970,7 @@
 
     fun Placeable.PlacementScope.performLayout(measurables: List<Measurable>) {
         if (frameCache.isEmpty()) {
+            @Suppress("ListIterator")
             for (child in root.children) {
                 val measurable = child.companionWidget
                 if (measurable !is Measurable) continue
@@ -2108,7 +2110,7 @@
 
     @Composable
     fun createDesignElements() {
-        for (element in designElements) {
+        designElements.fastForEach { element ->
             var id = element.id
             var function = DesignElements.map[element.type]
             if (function != null) {
diff --git a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt
index dd09496..63edc79 100644
--- a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt
+++ b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionMeasurer.kt
@@ -64,7 +64,7 @@
 
         if (DEBUG) {
             root.debugName = "ConstraintLayout"
-            root.children.forEach { child ->
+            root.children.fastForEach { child ->
                 child.debugName =
                     (child.companionWidget as? Measurable)?.layoutId?.toString() ?: "NOTAG"
             }
@@ -284,7 +284,7 @@
         val pos = IntArray(50)
         val key = FloatArray(100)
 
-        for (child in root.children) {
+        root.children.fastForEach { child ->
             val start = transition.getStart(child.stringId)
             val end = transition.getEnd(child.stringId)
             val interpolated = transition.getInterpolated(child.stringId)
@@ -325,7 +325,7 @@
     ) {
         val pathEffect = PathEffect.dashPathEffect(floatArrayOf(10f, 10f), 0f)
 
-        for (child in root.children) {
+        root.children.fastForEach { child ->
             val startFrame = transition.getStart(child)
             val endFrame = transition.getEnd(child)
             if (drawBounds) {
diff --git a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt
index 0cd828b..515abc7 100644
--- a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt
+++ b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/ToolingUtils.kt
@@ -20,6 +20,7 @@
 import androidx.compose.ui.layout.layoutId
 import androidx.compose.ui.semantics.SemanticsPropertyKey
 import androidx.compose.ui.semantics.SemanticsPropertyReceiver
+import androidx.compose.ui.util.fastForEach
 import androidx.constraintlayout.core.state.State.PARENT
 import androidx.constraintlayout.core.widgets.ConstraintWidget
 import androidx.constraintlayout.core.widgets.ConstraintWidgetContainer
@@ -76,7 +77,7 @@
         withConstraints = it shr CONSTRAINTS == 1
     }
 
-    root.children.forEach { constraintWidget ->
+    root.children.fastForEach { constraintWidget ->
         val constraintsInfoArray = JSONArray()
         val helperReferences = mutableListOf<String>()
         val isHelper = constraintWidget is HelperWidget
@@ -86,7 +87,7 @@
             addReferencesIds(constraintWidget as HelperWidget, helperReferences, root, rootId)
         }
 
-        constraintWidget.anchors.forEach { anchor ->
+        constraintWidget.anchors.fastForEach { anchor ->
             if (anchor.isConnected) {
                 val targetWidget = anchor.target.owner
                 val targetIsParent = root == targetWidget
@@ -186,7 +187,7 @@
     viewWithBoundsAndConstraints.put("isRoot", isRoot)
 
     val helperReferencesArray = JSONArray()
-    helperReferences.forEach(helperReferencesArray::put)
+    helperReferences.fastForEach(helperReferencesArray::put)
     viewWithBoundsAndConstraints.put("helperReferences", helperReferencesArray)
 
     if (withConstraints) {
diff --git a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt
index a0bb06f..4a1d531 100644
--- a/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt
+++ b/constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/carousel/CarouselSwipeable.kt
@@ -48,6 +48,8 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMaxBy
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.PI
 import kotlin.math.abs
@@ -717,8 +719,8 @@
     anchors: Set<Float>
 ): List<Float> {
     // Find the anchors the target lies between with a little bit of rounding error.
-    val a = anchors.filter { it <= offset + 0.001 }.maxOrNull()
-    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()
+    val a = anchors.filter { it <= offset + 0.001 }.fastMaxBy { it }
+    val b = anchors.filter { it >= offset - 0.001 }.fastMinByOrNull { it }
 
     return when {
         a == null ->
diff --git a/glance/glance-appwidget-preview/lint-baseline.xml b/glance/glance-appwidget-preview/lint-baseline.xml
deleted file mode 100644
index 88ba6f5..0000000
--- a/glance/glance-appwidget-preview/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .all { it }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/preview/ComposableInvoker.kt"/>
-    </issue>
-
-</issues>
diff --git a/glance/glance-appwidget-preview/src/main/java/androidx/glance/appwidget/preview/ComposableInvoker.kt b/glance/glance-appwidget-preview/src/main/java/androidx/glance/appwidget/preview/ComposableInvoker.kt
index 799ee8e..2e1cba7 100644
--- a/glance/glance-appwidget-preview/src/main/java/androidx/glance/appwidget/preview/ComposableInvoker.kt
+++ b/glance/glance-appwidget-preview/src/main/java/androidx/glance/appwidget/preview/ComposableInvoker.kt
@@ -33,6 +33,7 @@
      * Returns true if the [methodTypes] and [actualTypes] are compatible. This means that every
      * `actualTypes[n]` are assignable to `methodTypes[n]`.
      */
+    @Suppress("ListIterator")
     private fun compatibleTypes(
         methodTypes: Array<Class<*>>,
         actualTypes: Array<Class<*>>
diff --git a/glance/glance-appwidget/lint-baseline.xml b/glance/glance-appwidget/lint-baseline.xml
index 79615c9..87160dc 100644
--- a/glance/glance-appwidget/lint-baseline.xml
+++ b/glance/glance-appwidget/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
+<issues format="6" by="lint 8.2.0-alpha14" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha14)" variant="all" version="8.2.0-alpha14">
 
     <issue
         id="BanThreadSleep"
@@ -29,465 +29,6 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/AndroidRemoteViews.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    lambdas[event.key]?.forEach { it.block() }"
-        errorLine2="                                        ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/AppWidgetSession.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        sizes.map { DpSize(it.width.dp, it.height.dp) }"
-        errorLine2="              ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    }.minByOrNull { it.second }?.first"
-        errorLine2="      ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            rv.setContentDescription(viewDef.mainViewId, contentDescription.joinToString())"
-        errorLine2="                                                                            ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/ApplyModifiers.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    manager.getGlanceIds(javaClass).forEach { update(context, it) }"
-        errorLine2="                                    ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    manager.getGlanceIds(javaClass).forEach { glanceId ->"
-        errorLine2="                                    ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            }.toMap()"
-        errorLine2="              ~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        return receivers.flatMap { receiver ->"
-        errorLine2="                         ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    val info = appWidgetManager.installedProviders.first {"
-        errorLine2="                                                                   ~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .filter { it.provider.packageName == packageName }"
-        errorLine2="             ~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .map { it.provider.className }"
-        errorLine2="             ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .toSet()"
-        errorLine2="             ~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                toRemove.forEach { receiver -> remove(providerKey(receiver)) }"
-        errorLine2="                         ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        if (children.any { it.shouldIgnoreResult() }) return true"
-        errorLine2="                     ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/IgnoreResult.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        .forEach {"
-        errorLine2="         ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/LayoutSelection.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        itemList.forEachIndexed { index, (itemId, composable) ->"
-        errorLine2="                 ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyList.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyList.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyList.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        element.children.foldIndexed(false) { position, previous, itemEmittable ->"
-        errorLine2="                         ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/translators/LazyListTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        itemList.forEachIndexed { index, (itemId, composable) ->"
-        errorLine2="                 ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        element.children.foldIndexed(false) { position, previous, itemEmittable ->"
-        errorLine2="                         ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/translators/LazyVerticalGridTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    if (container.children.isNotEmpty() &amp;&amp; container.children.all { it is EmittableSizeBox }) {"
-        errorLine2="                                                              ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (item in container.children) {"
-        errorLine2="                  ~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.forEach { child ->"
-        errorLine2="             ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.any { child ->"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.any { child ->"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.forEachIndexed { index, child ->"
-        errorLine2="             ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.foldIndexed("
-        errorLine2="             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    fold(GlanceModifier) { acc: GlanceModifier, mod: GlanceModifier? ->"
-        errorLine2="    ~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val layoutIdCount = views.map { it.layoutId }.distinct().count()"
-        errorLine2="                                                      ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                viewTypeCount = views.map { it.layoutId }.distinct().count()"
-        errorLine2="                                      ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                viewTypeCount = views.map { it.layoutId }.distinct().count()"
-        errorLine2="                                                          ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsRoot.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    if (children.all { it is EmittableSizeBox }) {"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val views = children.map { child ->"
-        errorLine2="                             ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    Api31Impl.createRemoteViews(views.toMap())"
-        errorLine2="                                                      ~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    combineLandscapeAndPortrait(views.map { it.second })"
-        errorLine2="                                                      ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    element.children.forEach {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    check(children.count { it is EmittableRadioButton &amp;&amp; it.checked } &lt;= 1) {"
-        errorLine2="                   ~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            element.children.forEachIndexed { index, child ->"
-        errorLine2="                             ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.take(10).forEachIndexed { index, child ->"
-        errorLine2="             ~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.take(10).forEachIndexed { index, child ->"
-        errorLine2="                      ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/SizeBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .map { findBestSize(it, sizeMode.sizes) ?: smallestSize }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/SizeBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    sizes.distinct().map { size ->"
-        errorLine2="                     ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/SizeBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    spans.forEach { span ->"
-        errorLine2="          ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val layouts = config.layoutList.associate {"
-        errorLine2="                                            ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/WidgetLayout.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            addAllChildren(element.children.map { createNode(context, it) })"
-        errorLine2="                                            ~~~">
-        <location
-            file="src/main/java/androidx/glance/appwidget/WidgetLayout.kt"/>
-    </issue>
-
-    <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in method extractAllSizes has parameter &apos;minSize&apos; with type Function0&lt;DpSize>."
         errorLine1="internal fun Bundle.extractAllSizes(minSize: () -> DpSize): List&lt;DpSize> {"
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AndroidRemoteViews.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AndroidRemoteViews.kt
index f199042..8450bff 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AndroidRemoteViews.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AndroidRemoteViews.kt
@@ -20,6 +20,7 @@
 import android.widget.RemoteViews
 import androidx.annotation.IdRes
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -79,7 +80,7 @@
             it.remoteViews = remoteViews
         }
         it.containerViewId = containerViewId
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "AndroidRemoteViews(" +
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt
index 74bc2e5..314e095 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetSession.kt
@@ -32,6 +32,7 @@
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.snapshots.Snapshot
 import androidx.compose.ui.unit.DpSize
+import androidx.compose.ui.util.fastForEach
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceComposable
 import androidx.glance.LocalContext
@@ -183,7 +184,7 @@
             is RunLambda -> {
                 if (DEBUG) Log.i(TAG, "Received RunLambda(${event.key}) action for session($key)")
                 Snapshot.withMutableSnapshot {
-                    lambdas[event.key]?.forEach { it.block() }
+                    lambdas[event.key]?.fastForEach { it.block() }
                 } ?: Log.w(TAG, "Triggering Action(${event.key}) for session($key) failed")
             }
             is WaitForReady -> event.resume.send(Unit)
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
index 1b39006..514a998 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
@@ -32,6 +32,8 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.glance.GlanceComposable
 import androidx.glance.GlanceId
 import java.util.concurrent.atomic.AtomicBoolean
@@ -85,7 +87,7 @@
     return if (sizes.isNullOrEmpty()) {
         estimateSizes(minSize)
     } else {
-        sizes.map { DpSize(it.width.dp, it.height.dp) }
+        sizes.fastMap { DpSize(it.width.dp, it.height.dp) }
     }
 }
 
@@ -143,7 +145,7 @@
         } else {
             null
         }
-    }.minByOrNull { it.second }?.first
+    }.fastMinByOrNull { it.second }?.first
 
 /**
  * @return the minimum size as configured by the App Widget provider.
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/ApplyModifiers.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/ApplyModifiers.kt
index 51d1774..5fb7402 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/ApplyModifiers.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/ApplyModifiers.kt
@@ -28,6 +28,7 @@
 import androidx.annotation.DoNotInline
 import androidx.annotation.RequiresApi
 import androidx.compose.ui.graphics.toArgb
+import androidx.compose.ui.util.fastJoinToString
 import androidx.core.widget.RemoteViewsCompat.setTextViewHeight
 import androidx.core.widget.RemoteViewsCompat.setTextViewWidth
 import androidx.core.widget.RemoteViewsCompat.setViewBackgroundColor
@@ -135,7 +136,7 @@
         val contentDescription: List<String>? =
             semantics.configuration.getOrNull(SemanticsProperties.ContentDescription)
         if (contentDescription != null) {
-            rv.setContentDescription(viewDef.mainViewId, contentDescription.joinToString())
+            rv.setContentDescription(viewDef.mainViewId, contentDescription.fastJoinToString())
         }
     }
     rv.setViewVisibility(viewDef.mainViewId, visibility.toViewVisibility())
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt
index a1d03ba..2b0d9fa 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidget.kt
@@ -26,6 +26,7 @@
 import androidx.annotation.RestrictTo
 import androidx.annotation.RestrictTo.Scope
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastForEach
 import androidx.glance.GlanceComposable
 import androidx.glance.GlanceId
 import androidx.glance.appwidget.state.getAppWidgetState
@@ -202,7 +203,7 @@
 /** Update all App Widgets managed by the [GlanceAppWidget] class. */
 suspend fun GlanceAppWidget.updateAll(@Suppress("ContextFirst") context: Context) {
     val manager = GlanceAppWidgetManager(context)
-    manager.getGlanceIds(javaClass).forEach { update(context, it) }
+    manager.getGlanceIds(javaClass).fastForEach { update(context, it) }
 }
 
 /**
@@ -215,7 +216,7 @@
     val stateDef = stateDefinition
     requireNotNull(stateDef) { "GlanceAppWidget.updateIf cannot be used if no state is defined." }
     val manager = GlanceAppWidgetManager(context)
-    manager.getGlanceIds(javaClass).forEach { glanceId ->
+    manager.getGlanceIds(javaClass).fastForEach { glanceId ->
         val state = getAppWidgetState(context, stateDef, glanceId) as State
         if (predicate(state)) update(context, glanceId)
     }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt
index 41c7633..089f713 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt
@@ -27,6 +27,11 @@
 import androidx.annotation.RequiresApi
 import androidx.annotation.VisibleForTesting
 import androidx.compose.ui.unit.DpSize
+import androidx.compose.ui.util.fastFilter
+import androidx.compose.ui.util.fastFirst
+import androidx.compose.ui.util.fastFlatMap
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.datastore.core.DataStore
 import androidx.datastore.preferences.core.Preferences
 import androidx.datastore.preferences.core.stringPreferencesKey
@@ -84,6 +89,7 @@
         val packageName = context.packageName
         val receivers = prefs[providersKey] ?: return State()
         return State(
+            @Suppress("ListIterator")
             receivers.mapNotNull { receiverName ->
                 val comp = ComponentName(packageName, receiverName)
                 val providerName = prefs[providerKey(receiverName)] ?: return@mapNotNull null
@@ -102,7 +108,7 @@
         val state = getState()
         val providerName = requireNotNull(provider.canonicalName) { "no canonical provider name" }
         val receivers = state.providerNameToReceivers[providerName] ?: return emptyList()
-        return receivers.flatMap { receiver ->
+        return receivers.fastFlatMap { receiver ->
             appWidgetManager.getAppWidgetIds(receiver).map { AppWidgetId(it) }
         }
     }
@@ -196,7 +202,7 @@
             val target = ComponentName(context.packageName, receiver.name)
             val previewBundle = Bundle().apply {
                 if (preview != null) {
-                    val info = appWidgetManager.installedProviders.first {
+                    val info = appWidgetManager.installedProviders.fastFirst {
                         it.provider == target
                     }
                     val snapshot = preview.compose(
@@ -222,9 +228,10 @@
     /** Check which receivers still exist, and clean the data store to only keep those. */
     internal suspend fun cleanReceivers() {
         val packageName = context.packageName
+        @Suppress("ListIterator")
         val receivers = appWidgetManager.installedProviders
-            .filter { it.provider.packageName == packageName }
-            .map { it.provider.className }
+            .fastFilter { it.provider.packageName == packageName }
+            .fastMap { it.provider.className }
             .toSet()
         dataStore.updateData { prefs ->
             val knownReceivers = prefs[providersKey] ?: return@updateData prefs
@@ -232,7 +239,7 @@
             if (toRemove.isEmpty()) return@updateData prefs
             prefs.toMutablePreferences().apply {
                 this[providersKey] = knownReceivers - toRemove
-                toRemove.forEach { receiver -> remove(providerKey(receiver)) }
+                toRemove.fastForEach { receiver -> remove(providerKey(receiver)) }
             }.toPreferences()
         }
     }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/IgnoreResult.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/IgnoreResult.kt
index 59062de..d6711c1 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/IgnoreResult.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/IgnoreResult.kt
@@ -17,6 +17,7 @@
 package androidx.glance.appwidget
 
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastAny
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceComposable
@@ -51,7 +52,7 @@
     if (this is EmittableIgnoreResult) {
         return true
     } else if (this is EmittableWithChildren) {
-        if (children.any { it.shouldIgnoreResult() }) return true
+        if (children.fastAny { it.shouldIgnoreResult() }) return true
     }
     return false
 }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
index e4ce545..b9bb899 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
@@ -26,6 +26,7 @@
 import androidx.annotation.LayoutRes
 import androidx.annotation.RequiresApi
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
 import androidx.glance.GlanceModifier
 import androidx.glance.findModifier
 import androidx.glance.layout.Alignment
@@ -362,7 +363,7 @@
         ?: throw IllegalStateException("No child for position $pos and size $width x $height")
     children.values
         .filter { it != stubId }
-        .forEach {
+        .fastForEach {
             inflateViewStub(
                 translationContext, it, R.layout.glance_deleted_view, R.id.deletedViewId)
         }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt
index 2b86729..ec3d23d 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/NormalizeCompositionTree.kt
@@ -18,6 +18,11 @@
 import android.os.Build
 import android.util.Log
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastAll
+import androidx.compose.ui.util.fastAny
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
 import androidx.glance.BackgroundModifier
 import androidx.glance.Emittable
 import androidx.glance.EmittableButton
@@ -63,7 +68,8 @@
  * [EmittableBox].
  */
 private fun coerceToOneChild(container: EmittableWithChildren) {
-    if (container.children.isNotEmpty() && container.children.all { it is EmittableSizeBox }) {
+    if (container.children.isNotEmpty() && container.children.fastAll { it is EmittableSizeBox }) {
+        @Suppress("ListIterator")
         for (item in container.children) {
             item as EmittableSizeBox
             if (item.children.size == 1) continue
@@ -89,20 +95,20 @@
  * fillMaxSize. Otherwise, the behavior depends on the version of Android.
  */
 private fun EmittableWithChildren.normalizeSizes() {
-    children.forEach { child ->
+    children.fastForEach { child ->
         if (child is EmittableWithChildren) {
             child.normalizeSizes()
         }
     }
     if ((modifier.findModifier<HeightModifier>()?.height ?: Dimension.Wrap) is Dimension.Wrap &&
-        children.any { child ->
+        children.fastAny { child ->
             child.modifier.findModifier<HeightModifier>()?.height is Dimension.Fill
         }
     ) {
         modifier = modifier.fillMaxHeight()
     }
     if ((modifier.findModifier<WidthModifier>()?.width ?: Dimension.Wrap) is Dimension.Wrap &&
-        children.any { child ->
+        children.fastAny { child ->
             child.modifier.findModifier<WidthModifier>()?.width is Dimension.Fill
         }
     ) {
@@ -112,7 +118,7 @@
 
 /** Transform each node in the tree. */
 private fun EmittableWithChildren.transformTree(block: (Emittable) -> Emittable) {
-    children.forEachIndexed { index, child ->
+    children.fastForEachIndexed { index, child ->
         val newChild = block(child)
         children[index] = newChild
         if (newChild is EmittableWithChildren) newChild.transformTree(block)
@@ -133,6 +139,7 @@
  * will be updated for the composition in all sizes. This is why there can be multiple LambdaActions
  * for each key, even after de-duping.
  */
+@Suppress("ListIterator")
 internal fun EmittableWithChildren.updateLambdaActionKeys(): Map<String, List<LambdaAction>> =
     children.foldIndexed(
         mutableMapOf<String, MutableList<LambdaAction>>()
@@ -337,6 +344,6 @@
 }
 
 private fun MutableList<GlanceModifier?>.collect(): GlanceModifier =
-    fold(GlanceModifier) { acc: GlanceModifier, mod: GlanceModifier? ->
+    fastFold(GlanceModifier) { acc: GlanceModifier, mod: GlanceModifier? ->
         mod?.let { acc.then(mod) } ?: acc
     }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt
index 61c8bcb..8fff92a 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteCollectionItems.kt
@@ -18,6 +18,7 @@
 
 import android.annotation.SuppressLint
 import android.widget.RemoteViews
+import androidx.compose.ui.util.fastMap
 
 /** Representation of a fixed list of items to be displayed in a RemoteViews collection.  */
 internal class RemoteCollectionItems private constructor(
@@ -31,6 +32,7 @@
             "RemoteCollectionItems has different number of ids and views"
         }
         require(_viewTypeCount >= 1) { "View type count must be >= 1" }
+        @Suppress("ListIterator")
         val layoutIdCount = views.map { it.layoutId }.distinct().count()
         require(layoutIdCount <= _viewTypeCount) {
             "View type count is set to $_viewTypeCount, but the collection contains " +
@@ -131,7 +133,8 @@
             if (viewTypeCount < 1) {
                 // If a view type count wasn't specified, set it to be the number of distinct
                 // layout ids used in the items.
-                viewTypeCount = views.map { it.layoutId }.distinct().count()
+                @Suppress("ListIterator")
+                viewTypeCount = views.fastMap { it.layoutId }.distinct().count()
             }
             return RemoteCollectionItems(
                 ids.toLongArray(),
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsRoot.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsRoot.kt
index df0e178..7ca531c 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsRoot.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsRoot.kt
@@ -18,6 +18,7 @@
 
 import androidx.annotation.RestrictTo
 import androidx.annotation.RestrictTo.Scope
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -31,7 +32,7 @@
     override var modifier: GlanceModifier = GlanceModifier
     override fun copy(): Emittable = RemoteViewsRoot(maxDepth).also {
         it.modifier = modifier
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "RemoteViewsRoot(" +
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt
index d94e52f..edb9d83 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt
@@ -31,6 +31,10 @@
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.isSpecified
+import androidx.compose.ui.util.fastAll
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import androidx.core.widget.RemoteViewsCompat.setLinearLayoutGravity
 import androidx.glance.Emittable
 import androidx.glance.EmittableButton
@@ -105,13 +109,13 @@
     children: List<Emittable>,
     rootViewIndex: Int
 ): RemoteViews {
-    if (children.all { it is EmittableSizeBox }) {
+    if (children.fastAll { it is EmittableSizeBox }) {
         // If the children of root are all EmittableSizeBoxes, then we must translate each
         // EmittableSizeBox into a distinct RemoteViews object. Then, we combine them into one
         // multi-sized RemoteViews (a RemoteViews that contains either landscape & portrait RVs or
         // multiple RVs mapped by size).
         val sizeMode = (children.first() as EmittableSizeBox).sizeMode
-        val views = children.map { child ->
+        val views = children.fastMap { child ->
             val size = (child as EmittableSizeBox).size
             val remoteViewsInfo = createRootView(translationContext, child.modifier, rootViewIndex)
             val rv = remoteViewsInfo.remoteViews.apply {
@@ -126,10 +130,11 @@
             is SizeMode.Single -> views.single().second
             is SizeMode.Responsive, SizeMode.Exact -> {
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+                    @Suppress("ListIterator")
                     Api31Impl.createRemoteViews(views.toMap())
                 } else {
                     require(views.size == 1 || views.size == 2) { "unsupported views size" }
-                    combineLandscapeAndPortrait(views.map { it.second })
+                    combineLandscapeAndPortrait(views.fastMap { it.second })
                 }
             }
         }
@@ -307,7 +312,7 @@
         element.modifier,
         viewDef
     )
-    element.children.forEach {
+    element.children.fastForEach {
         it.modifier = it.modifier.then(AlignmentModifier(element.contentAlignment))
     }
     setChildren(
@@ -392,6 +397,7 @@
 }
 
 private fun checkSelectableGroupChildren(children: List<Emittable>) {
+    @Suppress("ListIterator")
     check(children.count { it is EmittableRadioButton && it.checked } <= 1) {
         "When using GlanceModifier.selectableGroup(), no more than one RadioButton " +
         "may be checked at a time."
@@ -410,7 +416,7 @@
         }
         element.remoteViews.copy().apply {
             removeAllViews(element.containerViewId)
-            element.children.forEachIndexed { index, child ->
+            element.children.fastForEachIndexed { index, child ->
                 val rvInfo = createRootView(translationContext, child.modifier, index)
                 val rv = rvInfo.remoteViews
                 rv.translateChild(translationContext.forRoot(rvInfo), child)
@@ -466,7 +472,8 @@
     parentDef: InsertedViewInfo,
     children: List<Emittable>
 ) {
-    children.take(10).forEachIndexed { index, child ->
+    @Suppress("ListIterator")
+    children.take(10).fastForEachIndexed { index, child ->
         translateChild(
             translationContext.forChild(parent = parentDef, pos = index),
             child,
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/SizeBox.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/SizeBox.kt
index 4c41537..e1727c0 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/SizeBox.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/SizeBox.kt
@@ -20,6 +20,7 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.unit.DpSize
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -48,7 +49,7 @@
     override fun copy(): Emittable = EmittableSizeBox().also {
         it.size = size
         it.sizeMode = sizeMode
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "EmittableSizeBox(" +
@@ -106,11 +107,11 @@
         } else {
             val smallestSize = sizeMode.sizes.sortedBySize()[0]
             LocalAppWidgetOptions.current.extractOrientationSizes()
-                .map { findBestSize(it, sizeMode.sizes) ?: smallestSize }
+                .fastMap { findBestSize(it, sizeMode.sizes) ?: smallestSize }
                 .ifEmpty { listOf(smallestSize, smallestSize) }
         }
     }
-    sizes.distinct().map { size ->
+    sizes.distinct().fastMap { size ->
         SizeBox(size, sizeMode, content)
     }
 }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
index 49e0d30..bae572a 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
@@ -22,6 +22,7 @@
 import androidx.annotation.DoNotInline
 import androidx.annotation.RequiresApi
 import androidx.annotation.VisibleForTesting
+import androidx.compose.ui.util.fastMap
 import androidx.datastore.core.CorruptionException
 import androidx.datastore.core.DataStore
 import androidx.datastore.core.DataStoreFactory
@@ -114,6 +115,7 @@
                 )
                 LayoutProto.LayoutConfig.getDefaultInstance()
             }
+            @Suppress("ListIterator")
             val layouts = config.layoutList.associate {
                 it.layout to it.layoutIndex
             }.toMutableMap()
@@ -241,7 +243,7 @@
             is EmittableLazyColumn -> setLazyListColumn(element)
         }
         if (element is EmittableWithChildren && element !is EmittableLazyList) {
-            addAllChildren(element.children.map { createNode(context, it) })
+            addAllChildren(element.children.fastMap { createNode(context, it) })
         }
     }.build()
 
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyList.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyList.kt
index 2430387..17e4528 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyList.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyList.kt
@@ -19,6 +19,8 @@
 import android.os.Bundle
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.key
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableLazyItemWithChildren
 import androidx.glance.EmittableWithChildren
@@ -121,7 +123,7 @@
     }
     listScopeImpl.apply(content)
     return {
-        itemList.forEachIndexed { index, (itemId, composable) ->
+        itemList.fastForEachIndexed { index, (itemId, composable) ->
             val id = itemId.takeIf { it != LazyListScope.UnspecifiedItemId }
                 ?: (ReservedItemIdRangeEnd - index)
             check(id != LazyListScope.UnspecifiedItemId) { "Implicit list item ids exhausted." }
@@ -297,7 +299,7 @@
     override fun copy(): Emittable = EmittableLazyListItem().also {
         it.itemId = itemId
         it.alignment = alignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString() =
@@ -310,6 +312,6 @@
         it.modifier = modifier
         it.horizontalAlignment = horizontalAlignment
         it.activityOptions = activityOptions
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 }
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt
index 53a41ce..72b8eb4 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/lazy/LazyVerticalGrid.kt
@@ -20,6 +20,8 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.key
 import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableLazyItemWithChildren
 import androidx.glance.EmittableWithChildren
@@ -128,7 +130,7 @@
     }
     listScopeImpl.apply(content)
     return {
-        itemList.forEachIndexed { index, (itemId, composable) ->
+        itemList.fastForEachIndexed { index, (itemId, composable) ->
             val id = itemId.takeIf { it != LazyVerticalGridScope.UnspecifiedItemId }
                 ?: (ReservedItemIdRangeEnd - index)
             check(id != LazyVerticalGridScope.UnspecifiedItemId) {
@@ -298,7 +300,7 @@
     override fun copy(): Emittable = EmittableLazyVerticalGridListItem().also {
         it.itemId = itemId
         it.alignment = alignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String =
@@ -314,7 +316,7 @@
         it.horizontalAlignment = horizontalAlignment
         it.gridCells = gridCells
         it.activityOptions = activityOptions
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 }
 
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyListTranslator.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyListTranslator.kt
index 4810dd6..eb1c6fe 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyListTranslator.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyListTranslator.kt
@@ -75,6 +75,7 @@
     )
     val items = RemoteCollectionItems.Builder().apply {
         val childContext = translationContext.forLazyCollection(viewDef.mainViewId)
+        @Suppress("ListIterator")
         element.children.foldIndexed(false) { position, previous, itemEmittable ->
             itemEmittable as EmittableLazyListItem
             val itemId = itemEmittable.itemId
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyVerticalGridTranslator.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyVerticalGridTranslator.kt
index eda245b..d9b74d0 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyVerticalGridTranslator.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/LazyVerticalGridTranslator.kt
@@ -88,6 +88,7 @@
     )
     val items = RemoteCollectionItems.Builder().apply {
         val childContext = translationContext.forLazyCollection(viewDef.mainViewId)
+        @Suppress("ListIterator")
         element.children.foldIndexed(false) { position, previous, itemEmittable ->
             itemEmittable as EmittableLazyVerticalGridListItem
             val itemId = itemEmittable.itemId
diff --git a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt
index 6a219a7..806a7cc 100644
--- a/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt
+++ b/glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt
@@ -35,6 +35,7 @@
 import androidx.annotation.DoNotInline
 import androidx.annotation.RequiresApi
 import androidx.compose.ui.graphics.toArgb
+import androidx.compose.ui.util.fastForEach
 import androidx.core.widget.RemoteViewsCompat.setTextViewGravity
 import androidx.core.widget.RemoteViewsCompat.setTextViewMaxLines
 import androidx.core.widget.RemoteViewsCompat.setTextViewTextColor
@@ -130,7 +131,7 @@
             spans.add(AlignmentSpan.Standard(align.toAlignment(translationContext.isRtl)))
         }
     }
-    spans.forEach { span ->
+    spans.fastForEach { span ->
         content.setSpan(span, 0, length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
     }
     setTextViewText(resId, content)
diff --git a/glance/glance-template/lint-baseline.xml b/glance/glance-template/lint-baseline.xml
deleted file mode 100644
index 8a73870..0000000
--- a/glance/glance-template/lint-baseline.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="cli" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        textList.forEachIndexed { index, item ->"
-        errorLine2="                 ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            actionBlock.actionButtons.forEach { button ->"
-        errorLine2="                                      ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt"/>
-    </issue>
-
-</issues>
diff --git a/glance/glance-template/src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt b/glance/glance-template/src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt
index d5804bd..9937ec6 100644
--- a/glance/glance-template/src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt
+++ b/glance/glance-template/src/main/java/androidx/glance/template/GlanceAppWidgetTemplates.kt
@@ -104,6 +104,7 @@
  *
  * @param textList the ordered list of text fields to display in the block
  */
+@Suppress("ListIterator")
 @Composable
 internal fun AppWidgetTextSection(textList: List<TemplateText>) {
     if (textList.isEmpty()) return
@@ -217,6 +218,7 @@
  *
  * @param actionBlock The [ActionBlock] data containing a list of buttons for display
  */
+@Suppress("ListIterator")
 @Composable
 internal fun ActionBlockTemplate(actionBlock: ActionBlock?) {
     if (actionBlock?.actionButtons?.isNotEmpty() == true) {
diff --git a/glance/glance-testing/lint-baseline.xml b/glance/glance-testing/lint-baseline.xml
deleted file mode 100644
index c7ffb94..0000000
--- a/glance/glance-testing/lint-baseline.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            return emittable.children.map { child ->"
-        errorLine2="                                      ~~~">
-        <location
-            file="src/main/java/androidx/glance/testing/unit/GlanceMappedNode.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        for (child in node.children()) {"
-        errorLine2="                   ~~">
-        <location
-            file="src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        return matching.toList()"
-        errorLine2="                        ~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            ?.joinToString()"
-        errorLine2="              ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/testing/unit/UnitTestFilters.kt"/>
-    </issue>
-
-</issues>
diff --git a/glance/glance-testing/src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt b/glance/glance-testing/src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt
index 31a1c99..ed47355 100644
--- a/glance/glance-testing/src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt
+++ b/glance/glance-testing/src/main/java/androidx/glance/testing/GlanceNodeAssertion.kt
@@ -118,6 +118,7 @@
         return testContext.cachedMatchedNodes
     }
 
+    @Suppress("ListIterator")
     private fun findMatchingNodes(node: GlanceNode<R>): List<GlanceNode<R>> {
         val matching = mutableListOf<GlanceNode<R>>()
         if (matcher.matches(node)) {
diff --git a/glance/glance-testing/src/main/java/androidx/glance/testing/unit/GlanceMappedNode.kt b/glance/glance-testing/src/main/java/androidx/glance/testing/unit/GlanceMappedNode.kt
index 8b20029..0ac92ee 100644
--- a/glance/glance-testing/src/main/java/androidx/glance/testing/unit/GlanceMappedNode.kt
+++ b/glance/glance-testing/src/main/java/androidx/glance/testing/unit/GlanceMappedNode.kt
@@ -59,6 +59,7 @@
     @RestrictTo(Scope.LIBRARY_GROUP)
     override fun children(): List<GlanceNode<MappedNode>> {
         val emittable = mappedNode.emittable
+        @Suppress("ListIterator")
         if (emittable is EmittableWithChildren) {
             return emittable.children.map { child ->
                 GlanceMappedNode(child)
diff --git a/glance/glance-testing/src/main/java/androidx/glance/testing/unit/UnitTestFilters.kt b/glance/glance-testing/src/main/java/androidx/glance/testing/unit/UnitTestFilters.kt
index 1e3d858..577caa5 100644
--- a/glance/glance-testing/src/main/java/androidx/glance/testing/unit/UnitTestFilters.kt
+++ b/glance/glance-testing/src/main/java/androidx/glance/testing/unit/UnitTestFilters.kt
@@ -93,6 +93,7 @@
     substring: Boolean = false,
     ignoreCase: Boolean = false
 ): Boolean {
+    @Suppress("ListIterator")
     val contentDescription =
         semanticsModifier.configuration.getOrNull(SemanticsProperties.ContentDescription)
             ?.joinToString()
diff --git a/glance/glance-wear-tiles-preview/lint-baseline.xml b/glance/glance-wear-tiles-preview/lint-baseline.xml
deleted file mode 100644
index d2965f7..0000000
--- a/glance/glance-wear-tiles-preview/lint-baseline.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                .all { it }"
-        errorLine2="                 ~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/preview/ComposableInvoker.kt"/>
-    </issue>
-
-</issues>
diff --git a/glance/glance-wear-tiles-preview/src/main/java/androidx/glance/wear/tiles/preview/ComposableInvoker.kt b/glance/glance-wear-tiles-preview/src/main/java/androidx/glance/wear/tiles/preview/ComposableInvoker.kt
index 2105f3c..dcfe376 100644
--- a/glance/glance-wear-tiles-preview/src/main/java/androidx/glance/wear/tiles/preview/ComposableInvoker.kt
+++ b/glance/glance-wear-tiles-preview/src/main/java/androidx/glance/wear/tiles/preview/ComposableInvoker.kt
@@ -33,6 +33,7 @@
      * Returns true if the [methodTypes] and [actualTypes] are compatible. This means that every
      * `actualTypes[n]` are assignable to `methodTypes[n]`.
      */
+    @Suppress("ListIterator")
     private fun compatibleTypes(
         methodTypes: Array<Class<*>>,
         actualTypes: Array<Class<*>>
diff --git a/glance/glance-wear-tiles/lint-baseline.xml b/glance/glance-wear-tiles/lint-baseline.xml
deleted file mode 100644
index 5a135eb..0000000
--- a/glance/glance-wear-tiles/lint-baseline.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        curvedChildList.forEach { composable ->"
-        errorLine2="                        ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    children.mapIndexed { index, child ->"
-        errorLine2="             ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    toDelete.forEach {"
-        errorLine2="             ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            children.forEach { child ->"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        textList.forEach { item ->"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/template/SingleEntityTemplateLayouts.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .setContentDescription(it.joinToString())"
-        errorLine2="                                      ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .setContentDescription(it.joinToString())"
-        errorLine2="                                      ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            element.children.forEach {"
-        errorLine2="                             ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                element.children.forEach {"
-        errorLine2="                                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                element.children.forEach {"
-        errorLine2="                                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    element.children.forEach { curvedChild ->"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            curvedChild.children.forEach {"
-        errorLine2="                                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt"/>
-    </issue>
-
-</issues>
diff --git a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
index 557632d..8666f31 100644
--- a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
+++ b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
@@ -20,6 +20,8 @@
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMapIndexed
 import androidx.glance.AndroidResourceImageProvider
 import androidx.glance.BitmapImageProvider
 import androidx.glance.Emittable
@@ -53,7 +55,7 @@
 /** Transform each node in the tree. */
 private fun EmittableWithChildren.transformTree(block: (Emittable) -> Emittable?) {
     val toDelete = mutableListOf<Int>()
-    children.mapIndexed { index, child ->
+    children.fastMapIndexed { index, child ->
         val newChild = block(child)
         if (newChild == null) {
             toDelete += index
@@ -63,7 +65,7 @@
         if (newChild is EmittableWithChildren) newChild.transformTree(block)
     }
     toDelete.reverse()
-    toDelete.forEach {
+    toDelete.fastForEach {
         children.removeAt(it)
     }
 }
@@ -86,7 +88,7 @@
     return when (this) {
         is EmittableWithChildren -> {
             modifier = GlanceModifier.then(WidthModifier(width)).then(HeightModifier(height))
-            children.forEach { child ->
+            children.fastForEach { child ->
                 val visibility =
                     child.modifier.findModifier<VisibilityModifier>()?.visibility
                         ?: Visibility.Visible
diff --git a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt
index 3d90666..99565c4 100644
--- a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt
+++ b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/WearCompositionTranslator.kt
@@ -23,6 +23,8 @@
 import android.view.ViewGroup
 import androidx.compose.ui.graphics.toArgb
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastJoinToString
 import androidx.glance.AndroidResourceImageProvider
 import androidx.glance.BackgroundModifier
 import androidx.glance.BitmapImageProvider
@@ -146,7 +148,7 @@
 private fun SemanticsModifier.toProto(): androidx.wear.tiles.ModifiersBuilders.Semantics? =
     this.configuration.getOrNull(SemanticsProperties.ContentDescription)?.let {
         androidx.wear.tiles.ModifiersBuilders.Semantics.Builder()
-            .setContentDescription(it.joinToString())
+            .setContentDescription(it.fastJoinToString())
             .build()
     }
 
@@ -154,7 +156,7 @@
 private fun SemanticsCurvedModifier.toProto(): androidx.wear.tiles.ModifiersBuilders.Semantics? =
     this.configuration.getOrNull(SemanticsProperties.ContentDescription)?.let {
         androidx.wear.tiles.ModifiersBuilders.Semantics.Builder()
-            .setContentDescription(it.joinToString())
+            .setContentDescription(it.fastJoinToString())
             .build()
     }
 
@@ -329,7 +331,7 @@
         .setWidth(element.modifier.getWidth(context).toContainerDimension())
         .setHeight(element.modifier.getHeight(context).toContainerDimension())
         .also { box ->
-            element.children.forEach {
+            element.children.fastForEach {
                 box.addContent(translateComposition(context, resourceBuilder, it))
             }
         }
@@ -349,7 +351,7 @@
             .setHeight(height.toContainerDimension())
             .setVerticalAlignment(element.verticalAlignment.toProto())
             .also { row ->
-                element.children.forEach {
+                element.children.fastForEach {
                     row.addContent(translateComposition(context, resourceBuilder, it))
                 }
             }
@@ -389,7 +391,7 @@
             .setWidth(width.toContainerDimension())
             .setHorizontalAlignment(element.horizontalAlignment.toProto())
             .also { column ->
-                element.children.forEach {
+                element.children.fastForEach {
                     column.addContent(translateComposition(context, resourceBuilder, it))
                 }
             }
@@ -635,9 +637,9 @@
             .setVerticalAlign(element.radialAlignment.toProto())
 
     // Add all the children first...
-    element.children.forEach { curvedChild ->
+    element.children.fastForEach { curvedChild ->
         if (curvedChild is EmittableCurvedChild) {
-            curvedChild.children.forEach {
+            curvedChild.children.fastForEach {
                 arcBuilder.addContent(
                     translateEmittableElementInArc(
                         context,
diff --git a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt
index 58489b1..06e5801 100644
--- a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt
+++ b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/curved/CurvedRow.kt
@@ -18,6 +18,8 @@
 
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -123,7 +125,7 @@
     curvedScopeImpl.apply(content)
 
     return {
-        curvedChildList.forEach { composable ->
+        curvedChildList.fastForEach { composable ->
             object : CurvedChildScope {}.apply { composable() }
         }
     }
@@ -155,7 +157,7 @@
         it.anchorDegrees = anchorDegrees
         it.anchorType = anchorType
         it.radialAlignment = radialAlignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String =
@@ -171,7 +173,7 @@
     override fun copy(): Emittable = EmittableCurvedChild().also {
         it.modifier = modifier
         it.rotateContent = rotateContent
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "EmittableCurvedChild(" +
diff --git a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/template/SingleEntityTemplateLayouts.kt b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/template/SingleEntityTemplateLayouts.kt
index 8d5016b..f22097a 100644
--- a/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/template/SingleEntityTemplateLayouts.kt
+++ b/glance/glance-wear-tiles/src/main/java/androidx/glance/wear/tiles/template/SingleEntityTemplateLayouts.kt
@@ -114,6 +114,7 @@
     }
 }
 
+@Suppress("ListIterator")
 @Composable
 private fun TextSection(textList: List<TemplateText>) {
     if (textList.isEmpty()) return
diff --git a/glance/glance/build.gradle b/glance/glance/build.gradle
index 0a8e136..a27703a 100644
--- a/glance/glance/build.gradle
+++ b/glance/glance/build.gradle
@@ -25,6 +25,7 @@
 
 dependencies {
 
+    api(project(":compose:ui:ui-util"))
     api("androidx.annotation:annotation:1.2.0")
     api("androidx.compose.runtime:runtime:1.2.1")
     api("androidx.compose.ui:ui-graphics:1.1.1")
diff --git a/glance/glance/lint-baseline.xml b/glance/glance/lint-baseline.xml
index d2fb308..362729b4 100644
--- a/glance/glance/lint-baseline.xml
+++ b/glance/glance/lint-baseline.xml
@@ -20,87 +20,6 @@
     </issue>
 
     <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/layout/Box.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/layout/Column.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.joinToString(&quot;,\n&quot;).prependIndent(&quot;  &quot;)"
-        errorLine2="                 ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/Emittables.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            events.forEach { addAction(it) }"
-        errorLine2="                   ~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    fold(0.dp) { acc, res ->"
-        errorLine2="    ~~~~">
-        <location
-            file="src/main/java/androidx/glance/layout/Padding.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        it.children.addAll(children.map { it.copy() })"
-        errorLine2="                                    ~~~">
-        <location
-            file="src/main/java/androidx/glance/layout/Row.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            .any { it.state == WorkInfo.State.RUNNING } &amp;&amp; synchronized(sessions) {"
-        errorLine2="             ~~~">
-        <location
-            file="src/main/java/androidx/glance/session/SessionManager.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val mask = decorations.fold(0) { acc, decoration ->"
-        errorLine2="                                   ~~~~">
-        <location
-            file="src/main/java/androidx/glance/text/TextDecoration.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        return &quot;TextDecoration[${values.joinToString(separator = &quot;, &quot;)}]&quot;"
-        errorLine2="                                        ~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/glance/text/TextDecoration.kt"/>
-    </issue>
-
-    <issue
         id="PrimitiveInLambda"
         message="Use a functional interface instead of lambda syntax for lambdas with primitive values in constructor InteractiveFrameClock has parameter &apos;nanoTime&apos; with type Function0&lt;Long>."
         errorLine1="    private val nanoTime: () -> Long = { System.nanoTime() }"
diff --git a/glance/glance/src/main/java/androidx/glance/Emittables.kt b/glance/glance/src/main/java/androidx/glance/Emittables.kt
index b9cf2f2..84d50c2 100644
--- a/glance/glance/src/main/java/androidx/glance/Emittables.kt
+++ b/glance/glance/src/main/java/androidx/glance/Emittables.kt
@@ -17,6 +17,7 @@
 package androidx.glance
 
 import androidx.annotation.RestrictTo
+import androidx.compose.ui.util.fastJoinToString
 import androidx.glance.layout.Alignment
 import androidx.glance.text.TextStyle
 
@@ -34,7 +35,7 @@
     val children: MutableList<Emittable> = mutableListOf<Emittable>()
 
     protected fun childrenToString(): String =
-        children.joinToString(",\n").prependIndent("  ")
+        children.fastJoinToString(",\n").prependIndent("  ")
 }
 
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
diff --git a/glance/glance/src/main/java/androidx/glance/layout/Box.kt b/glance/glance/src/main/java/androidx/glance/layout/Box.kt
index acc6c2e..9392c48 100644
--- a/glance/glance/src/main/java/androidx/glance/layout/Box.kt
+++ b/glance/glance/src/main/java/androidx/glance/layout/Box.kt
@@ -18,6 +18,7 @@
 
 import androidx.annotation.RestrictTo
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -32,7 +33,7 @@
     override fun copy(): Emittable = EmittableBox().also {
         it.modifier = modifier
         it.contentAlignment = contentAlignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "EmittableBox(" +
diff --git a/glance/glance/src/main/java/androidx/glance/layout/Column.kt b/glance/glance/src/main/java/androidx/glance/layout/Column.kt
index 6e1e4e1..d489c7f 100644
--- a/glance/glance/src/main/java/androidx/glance/layout/Column.kt
+++ b/glance/glance/src/main/java/androidx/glance/layout/Column.kt
@@ -18,6 +18,7 @@
 
 import androidx.annotation.RestrictTo
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -34,7 +35,7 @@
         it.modifier = modifier
         it.verticalAlignment = verticalAlignment
         it.horizontalAlignment = horizontalAlignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "EmittableColumn(" +
diff --git a/glance/glance/src/main/java/androidx/glance/layout/Padding.kt b/glance/glance/src/main/java/androidx/glance/layout/Padding.kt
index a5027be..95ebe2c 100644
--- a/glance/glance/src/main/java/androidx/glance/layout/Padding.kt
+++ b/glance/glance/src/main/java/androidx/glance/layout/Padding.kt
@@ -20,6 +20,7 @@
 import androidx.annotation.RestrictTo
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFold
 import androidx.glance.GlanceModifier
 
 /**
@@ -193,7 +194,7 @@
     collectPadding()?.toDp(resources)
 
 private fun List<Int>.toDp(resources: Resources) =
-    fold(0.dp) { acc, res ->
+    fastFold(0.dp) { acc, res ->
         acc + (resources.getDimension(res) / resources.displayMetrics.density).dp
     }
 
diff --git a/glance/glance/src/main/java/androidx/glance/layout/Row.kt b/glance/glance/src/main/java/androidx/glance/layout/Row.kt
index 4fe0201..fa7bb50 100644
--- a/glance/glance/src/main/java/androidx/glance/layout/Row.kt
+++ b/glance/glance/src/main/java/androidx/glance/layout/Row.kt
@@ -18,6 +18,7 @@
 
 import androidx.annotation.RestrictTo
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.util.fastMap
 import androidx.glance.Emittable
 import androidx.glance.EmittableWithChildren
 import androidx.glance.GlanceModifier
@@ -34,7 +35,7 @@
         it.modifier = modifier
         it.horizontalAlignment = horizontalAlignment
         it.verticalAlignment = verticalAlignment
-        it.children.addAll(children.map { it.copy() })
+        it.children.addAll(children.fastMap { it.copy() })
     }
 
     override fun toString(): String = "EmittableRow(" +
diff --git a/glance/glance/src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt b/glance/glance/src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt
index 7929994..5801903 100644
--- a/glance/glance/src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt
+++ b/glance/glance/src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt
@@ -34,6 +34,7 @@
             PowerManager.ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED,
             PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED
         )
+        @Suppress("ListIterator")
         val filter = IntentFilter().apply {
             events.forEach { addAction(it) }
         }
diff --git a/glance/glance/src/main/java/androidx/glance/session/SessionManager.kt b/glance/glance/src/main/java/androidx/glance/session/SessionManager.kt
index 5b83da2..3213cd3 100644
--- a/glance/glance/src/main/java/androidx/glance/session/SessionManager.kt
+++ b/glance/glance/src/main/java/androidx/glance/session/SessionManager.kt
@@ -96,6 +96,7 @@
     }
 
     override suspend fun isSessionRunning(context: Context, key: String) =
+        @Suppress("ListIterator")
         (WorkManager.getInstance(context).getWorkInfosForUniqueWork(key).await()
             .any { it.state == WorkInfo.State.RUNNING } && synchronized(sessions) {
             sessions.containsKey(key)
diff --git a/glance/glance/src/main/java/androidx/glance/text/TextDecoration.kt b/glance/glance/src/main/java/androidx/glance/text/TextDecoration.kt
index 6f100c0..386a8e2 100644
--- a/glance/glance/src/main/java/androidx/glance/text/TextDecoration.kt
+++ b/glance/glance/src/main/java/androidx/glance/text/TextDecoration.kt
@@ -17,6 +17,8 @@
 package androidx.glance.text
 
 import androidx.compose.runtime.Stable
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastJoinToString
 
 /**
  * Defines a horizontal line to be drawn on the text.
@@ -44,7 +46,7 @@
          * @param decorations The decorations to be added
          */
         fun combine(decorations: List<TextDecoration>): TextDecoration {
-            val mask = decorations.fold(0) { acc, decoration ->
+            val mask = decorations.fastFold(0) { acc, decoration ->
                 acc or decoration.mask
             }
             return TextDecoration(mask)
@@ -81,6 +83,6 @@
         if ((values.size == 1)) {
             return "TextDecoration.${values[0]}"
         }
-        return "TextDecoration[${values.joinToString(separator = ", ")}]"
+        return "TextDecoration[${values.fastJoinToString(separator = ", ")}]"
     }
 }
diff --git a/text/text/lint-baseline.xml b/text/text/lint-baseline.xml
deleted file mode 100644
index 7bcb892..0000000
--- a/text/text/lint-baseline.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="BanInlineOptIn"
-        message="Inline functions cannot opt into experimental APIs."
-        errorLine1="internal inline fun &lt;T> List&lt;T>.fastForEach(action: (T) -> Unit) {"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/compose/ui/text/android/TempListUtils.kt"/>
-    </issue>
-
-    <issue
-        id="BanInlineOptIn"
-        message="Inline functions cannot opt into experimental APIs."
-        errorLine1="internal inline fun &lt;T, R, C : MutableCollection&lt;in R>> List&lt;T>.fastMapTo("
-        errorLine2="                                                                ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/compose/ui/text/android/TempListUtils.kt"/>
-    </issue>
-
-    <issue
-        id="BanInlineOptIn"
-        message="Inline functions cannot opt into experimental APIs."
-        errorLine1="internal inline fun &lt;T, R> List&lt;T>.fastZipWithNext(transform: (T, T) -> R): List&lt;R> {"
-        errorLine2="                                   ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/compose/ui/text/android/TempListUtils.kt"/>
-    </issue>
-
-</issues>
diff --git a/tv/tv-foundation/build.gradle b/tv/tv-foundation/build.gradle
index 96e8a5e..d99a8ab 100644
--- a/tv/tv-foundation/build.gradle
+++ b/tv/tv-foundation/build.gradle
@@ -40,11 +40,11 @@
     api("androidx.compose.runtime:runtime:$composeVersion")
 
     api(project(":compose:foundation:foundation"))
+    api(project(":compose:ui:ui-util"))
     api("androidx.compose.ui:ui:$composeVersion")
     api("androidx.compose.foundation:foundation-layout:$composeVersion")
     api("androidx.compose.ui:ui-graphics:$composeVersion")
     api("androidx.compose.ui:ui-text:$composeVersion")
-    api("androidx.compose.ui:ui-util:$composeVersion")
 
     androidTestImplementation(libs.truth)
     androidTestImplementation(project(":compose:runtime:runtime"))
diff --git a/tv/tv-material/lint-baseline.xml b/tv/tv-material/lint-baseline.xml
index 5087d0f..68659db 100644
--- a/tv/tv-material/lint-baseline.xml
+++ b/tv/tv-material/lint-baseline.xml
@@ -1,50 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabMeasurables.map { it.measure(constraints.copy(minWidth = 0, minHeight = 0)) }"
-        errorLine2="                               ~~~">
-        <location
-            file="src/main/java/androidx/tv/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                separatorMeasurables.map {"
-        errorLine2="                                     ~~~">
-        <location
-            file="src/main/java/androidx/tv/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                (tabMeasurables.maxOfOrNull { it.maxIntrinsicHeight(Constraints.Infinity) } ?: 0)"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/tv/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                tabPlaceables.forEachIndexed { index, tabPlaceable ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/tv/material3/TabRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .forEach {"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/tv/material3/TabRow.kt"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta05" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta05)" variant="all" version="8.1.0-beta05">
 
     <issue
         id="PrimitiveInLambda"
diff --git a/tv/tv-material/src/main/java/androidx/tv/material3/TabRow.kt b/tv/tv-material/src/main/java/androidx/tv/material3/TabRow.kt
index 7fb80c5..a76a111 100644
--- a/tv/tv-material/src/main/java/androidx/tv/material3/TabRow.kt
+++ b/tv/tv-material/src/main/java/androidx/tv/material3/TabRow.kt
@@ -49,6 +49,10 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.height
 import androidx.compose.ui.unit.width
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMaxOfOrNull
 import androidx.compose.ui.zIndex
 
 /**
@@ -119,7 +123,7 @@
 
             // Tab placeables
             val tabPlaceables =
-                tabMeasurables.map { it.measure(constraints.copy(minWidth = 0, minHeight = 0)) }
+                tabMeasurables.fastMap { it.measure(constraints.copy(minWidth = 0, minHeight = 0)) }
             val tabsCount = tabMeasurables.size
             val separatorsCount = tabsCount - 1
 
@@ -127,7 +131,7 @@
             val separators = @Composable { repeat(separatorsCount) { separator() } }
             val separatorMeasurables = subcompose(TabRowSlots.Separator, separators)
             val separatorPlaceables =
-                separatorMeasurables.map {
+                separatorMeasurables.fastMap {
                     it.measure(
                         constraints.copy(
                             minWidth = 0,
@@ -138,9 +142,9 @@
             val separatorWidth = separatorPlaceables.firstOrNull()?.width ?: 0
 
             val layoutWidth = tabPlaceables.sumOf { it.width } + separatorsCount * separatorWidth
-            val layoutHeight =
-                (tabMeasurables.maxOfOrNull { it.maxIntrinsicHeight(Constraints.Infinity) } ?: 0)
-                    .coerceAtLeast(0)
+            val layoutHeight = (tabMeasurables.fastMaxOfOrNull {
+                it.maxIntrinsicHeight(Constraints.Infinity)
+            } ?: 0).coerceAtLeast(0)
 
             // Position the children
             layout(layoutWidth, layoutHeight) {
@@ -148,7 +152,7 @@
                 // Place the tabs
                 val tabPositions = mutableListOf<DpRect>()
                 var left = 0
-                tabPlaceables.forEachIndexed { index, tabPlaceable ->
+                tabPlaceables.fastForEachIndexed { index, tabPlaceable ->
                     // place the tab
                     tabPlaceable.placeRelative(left, 0)
 
@@ -172,7 +176,7 @@
                 subcompose(TabRowSlots.Indicator) {
                     indicator(tabPositions, isActivated)
                 }
-                    .forEach {
+                    .fastForEach {
                         it.measure(Constraints.fixed(layoutWidth, layoutHeight)).placeRelative(0, 0)
                     }
             }
diff --git a/wear/compose/compose-foundation/lint-baseline.xml b/wear/compose/compose-foundation/lint-baseline.xml
index 3557074..83c5cbf 100644
--- a/wear/compose/compose-foundation/lint-baseline.xml
+++ b/wear/compose/compose-foundation/lint-baseline.xml
@@ -1,284 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.maxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val maxSweep = children.maxOfOrNull { child ->"
-        errorLine2="                                ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.forEach { child ->"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedBox.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        maxRadius - children.fold(maxRadius) { currentMaxRadius, node ->"
-        errorLine2="                             ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val weights = childrenInLayoutOrder.map { node ->"
-        errorLine2="                                            ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val extraSpace = parentThickness - childrenInLayoutOrder.mapIndexed { ix, node ->"
-        errorLine2="                                                                 ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        childrenInLayoutOrder.forEachIndexed { ix, node ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        var maxSweep = childrenInLayoutOrder.maxOfOrNull { it.sweepRadians } ?: 0f"
-        errorLine2="                                             ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.forEach { child ->"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.forEach {"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    ) = children.forEach { node ->"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    override fun DrawScope.draw() = children.forEach { with(it) { draw() } }"
-        errorLine2="                                             ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.forEach { with(it) { placeIfNeeded() } }"
-        errorLine2="                 ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        }.reversed().toTypedArray()),"
-        errorLine2="          ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    }.sortedBy { it.first }"
-        errorLine2="      ~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        children.maxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f"
-        errorLine2="                 ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        var totalSweep = children.sumOf { child ->"
-        errorLine2="                                  ~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val weights = childrenInLayoutOrder.map { node ->"
-        errorLine2="                                            ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val extraSpace = parentSweepRadians - childrenInLayoutOrder.mapIndexed { ix, node ->"
-        errorLine2="                                                                    ~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        childrenInLayoutOrder.forEachIndexed { ix, node ->"
-        errorLine2="                              ~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/CurvedRow.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val placeables = measurables.map { it.measure(constraints) }"
-        errorLine2="                                         ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/Expandable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val currentItem = items.find { it.index == index }"
-        errorLine2="                                    ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .map { animationState.value + it.unadjustedOffset + snapOffset }"
-        errorLine2="                     ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .minByOrNull { abs(it - decayTarget) } ?: decayTarget)"
-        errorLine2="                     ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.find { it.index == itemIndexToFind }"
-        errorLine2="                         ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.map {"
-        errorLine2="                         ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.find { it.index == itemIndexToFind }"
-        errorLine2="                         ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.map {"
-        errorLine2="                         ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    return this.visibleItemsInfo.find { it.index == index }"
-        errorLine2="                                 ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    visibleItemsInfo.forEach { totalSize += it.unadjustedSize }"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                        awaitPointerEvent(PointerEventPass.Initial).changes.forEach { change ->"
-        errorLine2="                                                                            ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt"/>
-    </issue>
+<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
 
     <issue
         id="PrimitiveInLambda"
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedBox.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedBox.kt
index 71d9aa0..a360536 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedBox.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedBox.kt
@@ -18,6 +18,8 @@
 
 import androidx.compose.foundation.layout.Box
 import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMaxOfOrNull
 
 /**
  * A layout composable that places its children on top of each other and on an arc. This is
@@ -67,14 +69,14 @@
 ) : ContainerChild(curvedLayoutDirection, reverseLayout = false, contentBuilder) {
 
     override fun doEstimateThickness(maxRadius: Float) =
-        children.maxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f
+        children.fastMaxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f
 
     override fun doRadialPosition(
         parentOuterRadius: Float,
         parentThickness: Float,
     ): PartialLayoutInfo {
         // position children, take max sweep.
-        val maxSweep = children.maxOfOrNull { child ->
+        val maxSweep = children.fastMaxOfOrNull { child ->
             var childRadialPosition = parentOuterRadius
             var childThickness = parentThickness
             if (radialAlignment != null) {
@@ -102,7 +104,7 @@
         parentSweepRadians: Float,
         centerOffset: Offset
     ): Float {
-        children.forEach { child ->
+        children.fastForEach { child ->
             var childAngularPosition = parentStartAngleRadians
             var childSweep = parentSweepRadians
             if (angularAlignment != null) {
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt
index 2980e45..825a3ee 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedColumn.kt
@@ -18,6 +18,12 @@
 
 import androidx.compose.foundation.layout.Column
 import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.util.fastFold
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMapIndexed
+import androidx.compose.ui.util.fastMaxOfOrNull
 
 /**
  * A curved layout composable that places its children stacked as part of an arc (the first child
@@ -59,7 +65,7 @@
     contentBuilder: CurvedScope.() -> Unit
 ) : ContainerChild(curvedLayoutDirection, !curvedLayoutDirection.outsideIn(), contentBuilder) {
     override fun doEstimateThickness(maxRadius: Float): Float =
-        maxRadius - children.fold(maxRadius) { currentMaxRadius, node ->
+        maxRadius - children.fastFold(maxRadius) { currentMaxRadius, node ->
             currentMaxRadius - node.estimateThickness(currentMaxRadius)
         }
 
@@ -68,11 +74,11 @@
         parentThickness: Float,
     ): PartialLayoutInfo {
         // Compute space used by weighted children and space left
-        val weights = childrenInLayoutOrder.map { node ->
+        val weights = childrenInLayoutOrder.fastMap { node ->
             (node.computeParentData() as? CurvedScopeParentData)?.weight ?: 0f
         }
         val sumWeights = weights.sum()
-        val extraSpace = parentThickness - childrenInLayoutOrder.mapIndexed { ix, node ->
+        val extraSpace = parentThickness - childrenInLayoutOrder.fastMapIndexed { ix, node ->
             if (weights[ix] == 0f) {
                 node.estimatedThickness
             } else {
@@ -82,7 +88,7 @@
 
         // position children
         var outerRadius = parentOuterRadius
-        childrenInLayoutOrder.forEachIndexed { ix, node ->
+        childrenInLayoutOrder.fastForEachIndexed { ix, node ->
             val actualThickness = if (weights[ix] > 0f) {
                     extraSpace * weights[ix] / sumWeights
                 } else {
@@ -95,7 +101,7 @@
             )
             outerRadius -= actualThickness
         }
-        var maxSweep = childrenInLayoutOrder.maxOfOrNull { it.sweepRadians } ?: 0f
+        var maxSweep = childrenInLayoutOrder.fastMaxOfOrNull { it.sweepRadians } ?: 0f
 
         return PartialLayoutInfo(
             maxSweep,
@@ -110,7 +116,7 @@
         parentSweepRadians: Float,
         centerOffset: Offset
     ): Float {
-        children.forEach { child ->
+        children.fastForEach { child ->
             var childAngularPosition = parentStartAngleRadians
             var childSweep = parentSweepRadians
             if (angularAlignment != null) {
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt
index 5a6622e..32e7a1f 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedContainer.kt
@@ -21,6 +21,7 @@
 import androidx.compose.ui.graphics.drawscope.DrawScope
 import androidx.compose.ui.layout.Measurable
 import androidx.compose.ui.layout.Placeable
+import androidx.compose.ui.util.fastForEach
 
 /**
  * Layout scope used for curved containers.
@@ -53,14 +54,14 @@
 
     @Composable
     override fun SubComposition() {
-        children.forEach {
+        children.fastForEach {
             it.SubComposition()
         }
     }
 
     override fun CurvedMeasureScope.initializeMeasure(
         measurables: Iterator<Measurable>
-    ) = children.forEach { node ->
+    ) = children.fastForEach { node ->
             with(CurvedMeasureScope(
                 subDensity = this,
                 curvedContainerScope.curvedLayoutDirection,
@@ -72,9 +73,9 @@
             }
         }
 
-    override fun DrawScope.draw() = children.forEach { with(it) { draw() } }
+    override fun DrawScope.draw() = children.fastForEach { with(it) { draw() } }
 
     override fun (Placeable.PlacementScope).placeIfNeeded() {
-        children.forEach { with(it) { placeIfNeeded() } }
+        children.fastForEach { with(it) { placeIfNeeded() } }
     }
 }
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt
index 28421be..c9ad3fb 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedDraw.kt
@@ -53,6 +53,7 @@
     cap: StrokeCap = StrokeCap.Butt
 ) = background(cap) { layoutInfo ->
     val radiusRatio = layoutInfo.innerRadius / layoutInfo.outerRadius
+    @Suppress("ListIterator")
     Brush.radialGradient(
         *(colorStops.map { (step, color) ->
             1f - step * (1f - radiusRatio) to color
@@ -89,6 +90,7 @@
     vararg colorStops: Pair<Float, Color>,
     cap: StrokeCap = StrokeCap.Butt
 ) = background(cap) { layoutInfo ->
+    @Suppress("ListIterator")
     val actualStops = colorStops.map { (step, color) ->
         (layoutInfo.startAngleRadians + layoutInfo.sweepRadians * step) /
             (2 * PI).toFloat() to color
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedRow.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedRow.kt
index af2d5f2..f4fa3ca 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedRow.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CurvedRow.kt
@@ -18,6 +18,10 @@
 
 import androidx.compose.foundation.layout.Row
 import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.util.fastForEachIndexed
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMapIndexed
+import androidx.compose.ui.util.fastMaxOfOrNull
 
 /**
  * A layout composable that places its children in an arc, rotating them as needed. This is
@@ -60,13 +64,14 @@
 ) : ContainerChild(curvedLayoutDirection, !curvedLayoutDirection.clockwise(), contentBuilder) {
 
     override fun doEstimateThickness(maxRadius: Float) =
-        children.maxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f
+        children.fastMaxOfOrNull { it.estimateThickness(maxRadius) } ?: 0f
 
     override fun doRadialPosition(
         parentOuterRadius: Float,
         parentThickness: Float,
     ): PartialLayoutInfo {
         // position children, sum angles.
+        @Suppress("ListIterator")
         var totalSweep = children.sumOf { child ->
             var childRadialPosition = parentOuterRadius
             var childThickness = parentThickness
@@ -96,11 +101,11 @@
         parentSweepRadians: Float,
         centerOffset: Offset
     ): Float {
-        val weights = childrenInLayoutOrder.map { node ->
+        val weights = childrenInLayoutOrder.fastMap { node ->
             (node.computeParentData() as? CurvedScopeParentData)?.weight ?: 0f
         }
         val sumWeights = weights.sum()
-        val extraSpace = parentSweepRadians - childrenInLayoutOrder.mapIndexed { ix, node ->
+        val extraSpace = parentSweepRadians - childrenInLayoutOrder.fastMapIndexed { ix, node ->
             if (weights[ix] == 0f) {
                 node.sweepRadians
             } else {
@@ -109,7 +114,7 @@
         }.sum()
 
         var currentStartAngle = parentStartAngleRadians
-        childrenInLayoutOrder.forEachIndexed { ix, node ->
+        childrenInLayoutOrder.fastForEachIndexed { ix, node ->
             val actualSweep = if (weights[ix] > 0f) {
                     extraSpace * weights[ix] / sumWeights
                 } else {
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/Expandable.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/Expandable.kt
index 20ebcae..92117e1 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/Expandable.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/Expandable.kt
@@ -28,6 +28,7 @@
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clipToBounds
 import androidx.compose.ui.layout.Layout
+import androidx.compose.ui.util.fastMap
 import androidx.compose.ui.util.lerp
 import androidx.wear.compose.foundation.lazy.ScalingLazyListScope
 import kotlin.math.roundToInt
@@ -189,7 +190,7 @@
             },
             modifier = Modifier.clipToBounds()
         ) { measurables, constraints ->
-            val placeables = measurables.map { it.measure(constraints) }
+            val placeables = measurables.fastMap { it.measure(constraints) }
 
             val width = lerp(placeables[0].width, placeables[1].width, progress)
             val height = lerp(placeables[0].height, placeables[1].height, progress)
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt
index f4e9c56..c1c7213 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt
@@ -53,6 +53,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.Velocity
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastForEach
 import androidx.compose.ui.util.lerp
 import kotlin.math.max
 import kotlin.math.min
@@ -494,7 +495,7 @@
             coroutineScope {
                 awaitPointerEventScope {
                     while (isActive) {
-                        awaitPointerEvent(PointerEventPass.Initial).changes.forEach { change ->
+                        awaitPointerEvent(PointerEventPass.Initial).changes.fastForEach { change ->
                             // By default swipeState is WaitingForTouch.
                             // If it is in this state and a first touch hit an edge area, we
                             // set swipeState to EdgeClickedWaitingForDirection.
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
index 51ca1f9..843150a 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
@@ -56,6 +56,7 @@
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.wear.compose.foundation.ExperimentalWearFoundationApi
 import androidx.wear.compose.foundation.LocalReduceMotion
 
@@ -655,7 +656,7 @@
             val reverseLayout = state.reverseLayout.value!!
             val anchorType = state.anchorType.value!!
             val items = state.layoutInfo.internalVisibleItemInfo()
-            val currentItem = items.find { it.index == index }
+            val currentItem = items.fastFirstOrNull { it.index == index }
             if (currentItem != null) {
                 alpha = currentItem.alpha
                 scaleX = currentItem.scale
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt
index 8b20123..3245cf7 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumnSnapFlingBehavior.kt
@@ -26,6 +26,8 @@
 import androidx.compose.animation.core.tween
 import androidx.compose.foundation.gestures.FlingBehavior
 import androidx.compose.foundation.gestures.ScrollScope
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.abs
 import kotlin.math.roundToInt
@@ -76,8 +78,8 @@
                 // to the original target. Note that the target may be off-screen, in that case we
                 // will land on the last visible item in that direction.
                 (state.layoutInfo.visibleItemsInfo
-                    .map { animationState.value + it.unadjustedOffset + snapOffset }
-                    .minByOrNull { abs(it - decayTarget) } ?: decayTarget)
+                    .fastMap { animationState.value + it.unadjustedOffset + snapOffset }
+                    .fastMinByOrNull { abs(it - decayTarget) } ?: decayTarget)
             }
         } else {
             // Not a fling, just snap to the current item.
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt
index 9241dd6..0711517 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyListState.kt
@@ -32,6 +32,9 @@
 import androidx.compose.runtime.saveable.listSaver
 import androidx.compose.runtime.saveable.rememberSaveable
 import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.util.fastFirstOrNull
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import kotlin.math.roundToInt
 
 /**
@@ -554,14 +557,14 @@
         // we have more than enough content before it to make sure it can be scrolled to the center
         // of the viewport
         val initialCenterItem =
-            visibleItems.find { it.index == itemIndexToFind }
+            visibleItems.fastFirstOrNull { it.index == itemIndexToFind }
 
         // Determine how much space we actually need
         var spaceNeeded = spaceNeeded(initialCenterItem)
 
         if (spaceNeeded > 0f) {
             // Now see how much content we already have
-            visibleItems.map {
+            visibleItems.fastMap {
                 if (it.index < itemIndexToFind) {
                     // Reduce the space needed
                     spaceNeeded = spaceNeeded - gapBetweenItemsPx.value!! - it.unadjustedSize
@@ -593,14 +596,14 @@
         // we have more than enough content before it to make sure it can be scrolled to the center
         // of the viewport
         val initialCenterItem =
-            visibleItems.find { it.index == itemIndexToFind }
+            visibleItems.fastFirstOrNull { it.index == itemIndexToFind }
 
         // Determine how much space we actually need
         var spaceNeeded = spaceNeeded(initialCenterItem)
 
         if (spaceNeeded > 0f) {
             // Now see how much content we already have
-            visibleItems.map {
+            visibleItems.fastMap {
                 if (it.index != 0 && it.index < itemIndexToFind) {
                     // Reduce the space needed
                     spaceNeeded = spaceNeeded - gapBetweenItemsPx.value!! - it.size
@@ -679,7 +682,7 @@
 }
 
 private fun LazyListLayoutInfo.findItemInfoWithIndex(index: Int): LazyListItemInfo? {
-    return this.visibleItemsInfo.find { it.index == index }
+    return this.visibleItemsInfo.fastFirstOrNull { it.index == index }
 }
 
 private suspend fun LazyListState.scrollToItem(animated: Boolean, index: Int, offset: Int) {
@@ -688,7 +691,7 @@
 
 private fun ScalingLazyListLayoutInfo.averageUnadjustedItemSize(): Int {
     var totalSize = 0
-    visibleItemsInfo.forEach { totalSize += it.unadjustedSize }
+    visibleItemsInfo.fastForEach { totalSize += it.unadjustedSize }
     return if (visibleItemsInfo.isNotEmpty())
         (totalSize.toFloat() / visibleItemsInfo.size).roundToInt()
     else 0
diff --git a/wear/compose/compose-material/lint-baseline.xml b/wear/compose/compose-material/lint-baseline.xml
index 11bfe8a..3ebc76a 100644
--- a/wear/compose/compose-material/lint-baseline.xml
+++ b/wear/compose/compose-material/lint-baseline.xml
@@ -1,176 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.2.0-alpha15" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha15)" variant="all" version="8.2.0-alpha15">
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                                    visibleItems.find { info ->"
-        errorLine2="                                                 ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/Picker.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="        val placeables = measurables.map { it.measure(constraints) }"
-        errorLine2="                                     ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/PickerGroup.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            placeables.forEach {"
-        errorLine2="                       ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/PickerGroup.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    placeables.forEach { p ->"
-        errorLine2="               ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/PickerGroup.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val maxChildrenHeight = placeables.maxOf { it.height }"
-        errorLine2="                                       ~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/PickerGroup.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            val currentItem = items.find { it.index == index }"
-        errorLine2="                                    ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyColumn.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .map { animationState.value + it.unadjustedOffset + snapOffset }"
-        errorLine2="                     ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="                    .minByOrNull { abs(it - decayTarget) } ?: decayTarget)"
-        errorLine2="                     ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.find { it.index == itemIndexToFind }"
-        errorLine2="                         ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.map {"
-        errorLine2="                         ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.find { it.index == itemIndexToFind }"
-        errorLine2="                         ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            visibleItems.map {"
-        errorLine2="                         ~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    return this.visibleItemsInfo.find { it.index == index }"
-        errorLine2="                                 ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    visibleItemsInfo.forEach { totalSize += it.unadjustedSize }"
-        errorLine2="                     ~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {"
-        errorLine2="                                                          ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScrollAway.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {"
-        errorLine2="                                                          ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScrollAway.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {"
-        errorLine2="                                                          ~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/ScrollAway.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val a = anchors.filter { it &lt;= offset + 0.001 }.maxOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/Swipeable.kt"/>
-    </issue>
-
-    <issue
-        id="ListIterator"
-        message="Creating an unnecessary Iterator to iterate through a List"
-        errorLine1="    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()"
-        errorLine2="                                                    ~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/compose/material/Swipeable.kt"/>
-    </issue>
+<issues format="6" by="lint 8.2.0-alpha14" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.0-alpha14)" variant="all" version="8.2.0-alpha14">
 
     <issue
         id="PrimitiveInLambda"
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Picker.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Picker.kt
index 6587a21..315b05a 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Picker.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Picker.kt
@@ -60,6 +60,7 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.wear.compose.foundation.lazy.AutoCenteringParams
 import androidx.wear.compose.foundation.lazy.ScalingLazyColumn
 import androidx.wear.compose.foundation.lazy.ScalingLazyColumnDefaults
@@ -171,7 +172,7 @@
                                 state.scalingLazyListState.layoutInfo.visibleItemsInfo
                             if (visibleItems.isNotEmpty()) {
                                 val centerItem =
-                                    visibleItems.find { info ->
+                                    visibleItems.fastFirstOrNull { info ->
                                         info.index == state.scalingLazyListState.centerItemIndex
                                     } ?: visibleItems[visibleItems.size / 2]
                                 val shimHeight =
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PickerGroup.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PickerGroup.kt
index 8588ee8..fbeb706 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PickerGroup.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/PickerGroup.kt
@@ -40,6 +40,9 @@
 import androidx.compose.ui.layout.Placeable
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMaxOfOrNull
 import androidx.wear.compose.foundation.ExperimentalWearFoundationApi
 import androidx.wear.compose.foundation.HierarchicalFocusCoordinator
 import androidx.wear.compose.foundation.rememberActiveFocusRequester
@@ -266,7 +269,7 @@
         } else {
             parentConstraints.copy(minWidth = 0, minHeight = 0)
         }
-        val placeables = measurables.map { it.measure(constraints) }
+        val placeables = measurables.fastMap { it.measure(constraints) }
         val centeringOffset = computeCenteringOffset(placeables)
         val rowWidth =
             if (constraints.hasBoundedWidth) constraints.maxWidth
@@ -274,7 +277,7 @@
         val rowHeight = calculateHeight(constraints, placeables)
         layout(width = rowWidth, height = rowHeight) {
             var x = rowWidth / 2f - centeringOffset
-            placeables.forEach {
+            placeables.fastForEach {
                 it.placeRelative(x.roundToInt(), ((rowHeight - it.height) / 2f).roundToInt())
                 x += it.width
             }
@@ -304,7 +307,7 @@
  */
 private fun computeCenteringOffset(placeables: List<Placeable>): Int {
     var sumWidth = 0
-    placeables.forEach { p ->
+    placeables.fastForEach { p ->
         if (p.isAutoCenteringTarget()) {
             // The target centering offset is at the middle of this child.
             return sumWidth + p.width / 2
@@ -322,7 +325,7 @@
  * [Constraints].
  */
 private fun calculateHeight(constraints: Constraints, placeables: List<Placeable>): Int {
-    val maxChildrenHeight = placeables.maxOf { it.height }
+    val maxChildrenHeight = placeables.fastMaxOfOrNull { it.height }!!
     return maxChildrenHeight.coerceIn(constraints.minHeight, constraints.maxHeight)
 }
 
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumn.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumn.kt
index 3c93e35..5ca39eb 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumn.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumn.kt
@@ -55,6 +55,7 @@
 import androidx.compose.ui.unit.IntOffset
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.offset
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.wear.compose.foundation.lazy.CombinedPaddingValues
 import androidx.wear.compose.foundation.lazy.verticalNegativePadding
 
@@ -673,7 +674,7 @@
             val reverseLayout = state.reverseLayout.value!!
             val anchorType = state.anchorType.value!!
             val items = state.layoutInfo.internalVisibleItemInfo()
-            val currentItem = items.find { it.index == index }
+            val currentItem = items.fastFirstOrNull { it.index == index }
             if (currentItem != null) {
                 alpha = currentItem.alpha
                 scaleX = currentItem.scale
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt
index 36268aa9..fb71229 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyColumnSnapFlingBehavior.kt
@@ -26,6 +26,8 @@
 import androidx.compose.animation.core.tween
 import androidx.compose.foundation.gestures.FlingBehavior
 import androidx.compose.foundation.gestures.ScrollScope
+import androidx.compose.ui.util.fastMap
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import kotlin.math.abs
 import kotlin.math.roundToInt
@@ -77,8 +79,8 @@
                 // to the original target. Note that the target may be off-screen, in that case we
                 // will land on the last visible item in that direction.
                 (state.layoutInfo.visibleItemsInfo
-                    .map { animationState.value + it.unadjustedOffset + snapOffset }
-                    .minByOrNull { abs(it - decayTarget) } ?: decayTarget)
+                    .fastMap { animationState.value + it.unadjustedOffset + snapOffset }
+                    .fastMinByOrNull { abs(it - decayTarget) } ?: decayTarget)
             }
         } else {
             // Not a fling, just snap to the current item.
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt
index 2926cca..2109674 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScalingLazyListState.kt
@@ -34,6 +34,9 @@
 import androidx.compose.runtime.saveable.listSaver
 import androidx.compose.runtime.saveable.rememberSaveable
 import androidx.compose.ui.unit.IntSize
+import androidx.compose.ui.util.fastFirstOrNull
+import androidx.compose.ui.util.fastForEach
+import androidx.compose.ui.util.fastMap
 import kotlin.math.roundToInt
 
 /**
@@ -559,14 +562,14 @@
         // we have more than enough content before it to make sure it can be scrolled to the center
         // of the viewport
         val initialCenterItem =
-            visibleItems.find { it.index == itemIndexToFind }
+            visibleItems.fastFirstOrNull { it.index == itemIndexToFind }
 
         // Determine how much space we actually need
         var spaceNeeded = spaceNeeded(initialCenterItem)
 
         if (spaceNeeded > 0f) {
             // Now see how much content we already have
-            visibleItems.map {
+            visibleItems.fastMap {
                 if (it.index < itemIndexToFind) {
                     // Reduce the space needed
                     spaceNeeded = spaceNeeded - gapBetweenItemsPx.value!! - it.unadjustedSize
@@ -598,14 +601,14 @@
         // we have more than enough content before it to make sure it can be scrolled to the center
         // of the viewport
         val initialCenterItem =
-            visibleItems.find { it.index == itemIndexToFind }
+            visibleItems.fastFirstOrNull { it.index == itemIndexToFind }
 
         // Determine how much space we actually need
         var spaceNeeded = spaceNeeded(initialCenterItem)
 
         if (spaceNeeded > 0f) {
             // Now see how much content we already have
-            visibleItems.map {
+            visibleItems.fastMap {
                 if (it.index != 0 && it.index < itemIndexToFind) {
                     // Reduce the space needed
                     spaceNeeded = spaceNeeded - gapBetweenItemsPx.value!! - it.size
@@ -684,7 +687,7 @@
 }
 
 private fun LazyListLayoutInfo.findItemInfoWithIndex(index: Int): LazyListItemInfo? {
-    return this.visibleItemsInfo.find { it.index == index }
+    return this.visibleItemsInfo.fastFirstOrNull { it.index == index }
 }
 
 private suspend fun LazyListState.scrollToItem(animated: Boolean, index: Int, offset: Int) {
@@ -693,7 +696,7 @@
 
 private fun ScalingLazyListLayoutInfo.averageUnadjustedItemSize(): Int {
     var totalSize = 0
-    visibleItemsInfo.forEach { totalSize += it.unadjustedSize }
+    visibleItemsInfo.fastForEach { totalSize += it.unadjustedSize }
     return if (visibleItemsInfo.isNotEmpty())
         (totalSize.toFloat() / visibleItemsInfo.size).roundToInt()
     else 0
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScrollAway.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScrollAway.kt
index c15fd01..5a6fd04d 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScrollAway.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/ScrollAway.kt
@@ -30,6 +30,7 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastFirstOrNull
 import androidx.compose.ui.util.lerp
 import androidx.wear.compose.foundation.lazy.ScalingLazyColumn
 import androidx.wear.compose.foundation.lazy.ScalingLazyListState
@@ -71,9 +72,10 @@
     scrollAway {
         ScrollParams(
             valid = itemIndex < scrollState.layoutInfo.totalItemsCount,
-            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {
-                -it.offset - offset.toPx()
-            }
+            yPx = scrollState.layoutInfo.visibleItemsInfo.fastFirstOrNull { it.index == itemIndex }
+                ?.let {
+                    -it.offset - offset.toPx()
+                }
         )
     }
 
@@ -95,9 +97,10 @@
     scrollAway {
         ScrollParams(
             valid = itemIndex < scrollState.layoutInfo.totalItemsCount,
-            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {
-                -it.offset - offset.toPx()
-            }
+            yPx = scrollState.layoutInfo.visibleItemsInfo.fastFirstOrNull { it.index == itemIndex }
+                ?.let {
+                    -it.offset - offset.toPx()
+                }
         )
     }
 
@@ -125,9 +128,10 @@
     scrollAway {
         ScrollParams(
             valid = itemIndex < scrollState.layoutInfo.totalItemsCount,
-            yPx = scrollState.layoutInfo.visibleItemsInfo.find { it.index == itemIndex }?.let {
-                -it.offset - offset.toPx()
-            }
+            yPx = scrollState.layoutInfo.visibleItemsInfo.fastFirstOrNull { it.index == itemIndex }
+                ?.let {
+                    -it.offset - offset.toPx()
+                }
         )
     }
 
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Swipeable.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Swipeable.kt
index b605836..b689e6d 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Swipeable.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/Swipeable.kt
@@ -48,6 +48,8 @@
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.util.fastMaxBy
+import androidx.compose.ui.util.fastMinByOrNull
 import androidx.compose.ui.util.lerp
 import androidx.wear.compose.material.SwipeableDefaults.StandardResistanceFactor
 import androidx.wear.compose.material.SwipeableDefaults.VelocityThreshold
@@ -744,8 +746,8 @@
     anchors: Set<Float>
 ): List<Float> {
     // Find the anchors the target lies between with a little bit of rounding error.
-    val a = anchors.filter { it <= offset + 0.001 }.maxOrNull()
-    val b = anchors.filter { it >= offset - 0.001 }.minOrNull()
+    val a = anchors.filter { it <= offset + 0.001 }.fastMaxBy { it }
+    val b = anchors.filter { it >= offset - 0.001 }.fastMinByOrNull { it }
 
     return when {
         a == null ->