[go: nahoru, domu]

Fixes experimental API violations

These violations are blocking aosp/1515041

Makes Snapshot no longer experimental.
Also removes InternalLayoutApi and makes the APIs using it stable.

Test: updateApi
Change-Id: Id7043d1ba677c64beaeaec83257931a18f736969
Relnote: "N/A"
diff --git a/compose/foundation/foundation-layout/api/current.txt b/compose/foundation/foundation-layout/api/current.txt
index bf64d36..5b1eca5 100644
--- a/compose/foundation/foundation-layout/api/current.txt
+++ b/compose/foundation/foundation-layout/api/current.txt
@@ -74,17 +74,17 @@
     field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
@@ -331,9 +331,6 @@
     method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Composable public static void FlowRow-4CIokMg(optional androidx.compose.foundation.layout.SizeMode mainAxisSize, optional androidx.compose.foundation.layout.MainAxisAlignment mainAxisAlignment, optional float mainAxisSpacing, optional androidx.compose.foundation.layout.FlowCrossAxisAlignment crossAxisAlignment, optional float crossAxisSpacing, optional androidx.compose.foundation.layout.MainAxisAlignment lastLineMainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-  @kotlin.RequiresOptIn(message="This is an internal layout API subject to change and should not be used directly.") public @interface InternalLayoutApi {
-  }
-
   public final class IntrinsicKt {
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
diff --git a/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt b/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
index bf64d36..5b1eca5 100644
--- a/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
+++ b/compose/foundation/foundation-layout/api/public_plus_experimental_current.txt
@@ -74,17 +74,17 @@
     field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
@@ -331,9 +331,6 @@
     method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Composable public static void FlowRow-4CIokMg(optional androidx.compose.foundation.layout.SizeMode mainAxisSize, optional androidx.compose.foundation.layout.MainAxisAlignment mainAxisAlignment, optional float mainAxisSpacing, optional androidx.compose.foundation.layout.FlowCrossAxisAlignment crossAxisAlignment, optional float crossAxisSpacing, optional androidx.compose.foundation.layout.MainAxisAlignment lastLineMainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-  @kotlin.RequiresOptIn(message="This is an internal layout API subject to change and should not be used directly.") public @interface InternalLayoutApi {
-  }
-
   public final class IntrinsicKt {
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
diff --git a/compose/foundation/foundation-layout/api/restricted_current.txt b/compose/foundation/foundation-layout/api/restricted_current.txt
index 81fd350..0aeb36d 100644
--- a/compose/foundation/foundation-layout/api/restricted_current.txt
+++ b/compose/foundation/foundation-layout/api/restricted_current.txt
@@ -74,17 +74,17 @@
     field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Horizontal {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical {
     property public default float spacing;
   }
 
-  @androidx.compose.foundation.layout.InternalLayoutApi @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
+  @androidx.compose.runtime.Immutable public static interface Arrangement.Vertical {
     method public void arrange(int totalSize, int[] size, androidx.compose.ui.unit.Density density, int[] outPosition);
     method public default float getSpacing-D9Ej5fM();
     property public default float spacing;
@@ -334,9 +334,6 @@
     method @Deprecated @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Composable public static void FlowRow-4CIokMg(optional androidx.compose.foundation.layout.SizeMode mainAxisSize, optional androidx.compose.foundation.layout.MainAxisAlignment mainAxisAlignment, optional float mainAxisSpacing, optional androidx.compose.foundation.layout.FlowCrossAxisAlignment crossAxisAlignment, optional float crossAxisSpacing, optional androidx.compose.foundation.layout.MainAxisAlignment lastLineMainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-  @kotlin.RequiresOptIn(message="This is an internal layout API subject to change and should not be used directly.") public @interface InternalLayoutApi {
-  }
-
   public final class IntrinsicKt {
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
     method @androidx.compose.foundation.layout.ExperimentalLayout @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier preferredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize);
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Arrangement.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Arrangement.kt
index 36f9646..71c3831 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Arrangement.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Arrangement.kt
@@ -31,12 +31,10 @@
  * the main axis direction (horizontal and vertical, respectively).
  */
 @Immutable
-@OptIn(InternalLayoutApi::class)
 object Arrangement {
     /**
      * Used to specify the horizontal arrangement of the layout's children in layouts like [Row].
      */
-    @InternalLayoutApi
     @Immutable
     interface Horizontal {
         /**
@@ -66,7 +64,6 @@
     /**
      * Used to specify the vertical arrangement of the layout's children in layouts like [Column].
      */
-    @InternalLayoutApi
     @Immutable
     interface Vertical {
         /**
@@ -95,7 +92,6 @@
      * like [Row], or the vertical arrangement of the layout's children in vertical layouts like
      * [Column].
      */
-    @InternalLayoutApi
     @Immutable
     interface HorizontalOrVertical : Horizontal, Vertical {
         /**
@@ -356,7 +352,6 @@
         SpacedAligned(0.dp, false) { size, _ -> alignment.align(0, size) }
 
     @Immutable
-    @OptIn(InternalLayoutApi::class)
     object Absolute {
         /**
          * Place children horizontally such that they are as close as possible to the left edge of
@@ -649,7 +644,6 @@
 }
 
 @Immutable
-@OptIn(InternalLayoutApi::class)
 @Deprecated(
     "AbsoluteArrangement was deprecated in favor of Arrangement.Absolute",
     ReplaceWith("Arrangement.Absolute", "androidx.compose.foundation.layout.Arrangement")
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
index 7e7cb6f..b29eb7c 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
@@ -65,7 +65,6 @@
  * @see [androidx.compose.foundation.lazy.LazyColumn]
  */
 @Composable
-@OptIn(InternalLayoutApi::class)
 inline fun Column(
     modifier: Modifier = Modifier,
     verticalArrangement: Arrangement.Vertical = Arrangement.Top,
@@ -81,7 +80,6 @@
 }
 
 @PublishedApi
-@OptIn(InternalLayoutApi::class)
 internal val DefaultColumnMeasureBlocks = rowColumnMeasureBlocks(
     orientation = LayoutOrientation.Vertical,
     arrangement = { totalSize, size, _, density, outPosition ->
@@ -94,7 +92,6 @@
 
 @PublishedApi
 @Composable
-@OptIn(InternalLayoutApi::class)
 internal fun columnMeasureBlocks(
     verticalArrangement: Arrangement.Vertical,
     horizontalAlignment: Alignment.Horizontal
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/OptInLayoutApi.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/ExperimentalLayout.kt
similarity index 85%
rename from compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/OptInLayoutApi.kt
rename to compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/ExperimentalLayout.kt
index 9e7588c..63fdeeb 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/OptInLayoutApi.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/ExperimentalLayout.kt
@@ -18,6 +18,3 @@
 
 @RequiresOptIn("The API of this layout is experimental and is likely to change in the future.")
 annotation class ExperimentalLayout
-
-@RequiresOptIn("This is an internal layout API subject to change and should not be used directly.")
-annotation class InternalLayoutApi
\ No newline at end of file
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Flow.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Flow.kt
index c9a850f..ac12a5a 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Flow.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Flow.kt
@@ -130,7 +130,6 @@
  * Layout model that arranges its children in a horizontal or vertical flow.
  */
 @Composable
-@OptIn(InternalLayoutApi::class)
 private fun Flow(
     orientation: LayoutOrientation,
     mainAxisSize: SizeMode,
@@ -298,7 +297,6 @@
 /**
  * Used to specify the alignment of a layout's children, in main axis direction.
  */
-@OptIn(InternalLayoutApi::class)
 enum class MainAxisAlignment(internal val arrangement: Arrangement.Vertical) {
     // TODO(soboleva) support RTl in Flow
     // workaround for now - use Arrangement that equals to previous Arrangement
diff --git a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
index e1f4aec..1935b4d 100644
--- a/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
+++ b/compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
@@ -66,7 +66,6 @@
  * @see [androidx.compose.foundation.lazy.LazyRow]
  */
 @Composable
-@OptIn(InternalLayoutApi::class)
 inline fun Row(
     modifier: Modifier = Modifier,
     horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
@@ -88,7 +87,6 @@
  * MeasureBlocks to use when horizontalArrangement and verticalAlignment are not provided.
  */
 @PublishedApi
-@OptIn(InternalLayoutApi::class)
 internal val DefaultRowMeasureBlocks = rowColumnMeasureBlocks(
     orientation = LayoutOrientation.Horizontal,
     arrangement = { totalSize, size, layoutDirection, density, outPosition ->
@@ -101,7 +99,6 @@
 
 @PublishedApi
 @Composable
-@OptIn(InternalLayoutApi::class)
 internal fun rowMeasureBlocks(
     horizontalArrangement: Arrangement.Horizontal,
     verticalAlignment: Alignment.Vertical
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyArrangementsTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyArrangementsTest.kt
index 994dba7..e0dc1e2 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyArrangementsTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyArrangementsTest.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.size
 import androidx.compose.runtime.Providers
 import androidx.compose.ui.Modifier
@@ -37,7 +36,6 @@
 import org.junit.Rule
 import org.junit.Test
 
-@OptIn(InternalLayoutApi::class)
 class LazyArrangementsTest {
 
     private val ContainerTag = "ContainerTag"
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyListsReverseLayoutTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyListsReverseLayoutTest.kt
index 9f02efa..feaf2a2 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyListsReverseLayoutTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyListsReverseLayoutTest.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.lazy
 
 import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.size
 import androidx.compose.runtime.Providers
 import androidx.compose.ui.Modifier
@@ -35,7 +34,6 @@
 import org.junit.Rule
 import org.junit.Test
 
-@OptIn(InternalLayoutApi::class)
 class LazyListsReverseLayoutTest {
 
     private val ContainerTag = "ContainerTag"
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
index a40ca51..920fc6d 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
@@ -31,7 +31,6 @@
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.ColumnScope
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.RowScope
@@ -271,7 +270,6 @@
  * padding for the content after it has been clipped, which is not possible via [modifier] param
  */
 @Composable
-@OptIn(InternalLayoutApi::class)
 fun ScrollableColumn(
     modifier: Modifier = Modifier,
     scrollState: ScrollState = rememberScrollState(0f),
@@ -315,7 +313,6 @@
  * padding for the content after it has been clipped, which is not possible via [modifier] param.
  */
 @Composable
-@OptIn(InternalLayoutApi::class)
 fun ScrollableRow(
     modifier: Modifier = Modifier,
     scrollState: ScrollState = rememberScrollState(0f),
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
index bc5160d..8e70fc1 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
@@ -142,7 +141,6 @@
  * @param content a block which describes the content. Inside this block you can use methods like
  * [LazyListScope.item] to add a single item or [LazyListScope.items] to add a list of items.
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 fun LazyRow(
     modifier: Modifier = Modifier,
@@ -196,7 +194,6 @@
  * @param content a block which describes the content. Inside this block you can use methods like
  * [LazyListScope.item] to add a single item or [LazyListScope.items] to add a list of items.
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 fun LazyColumn(
     modifier: Modifier = Modifier,
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyFor.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyFor.kt
index 89b9186..2bad2c3 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyFor.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyFor.kt
@@ -17,7 +17,6 @@
 package androidx.compose.foundation.lazy
 
 import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.foundation.layout.Spacer
 import androidx.compose.runtime.Composable
@@ -51,7 +50,6 @@
  * content asynchronously please reserve some space for the item, for example using [Spacer].
  * Use [LazyColumnForIndexed] if you need to have both index and item params.
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 @Deprecated(
     "Use LazyColumn instead",
@@ -113,7 +111,6 @@
  * recompose with the real content, so even if you load the content asynchronously please reserve
  * some space for the item, for example using [Spacer].
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 @Deprecated(
     "Use LazyColumn instead",
@@ -172,7 +169,6 @@
  * content asynchronously please reserve some space for the item, for example using [Spacer].
  * Use [LazyRowForIndexed] if you need to have both index and item params.
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 @Deprecated(
     "Use LazyRow instead",
@@ -233,7 +229,6 @@
  * recompose with the real content, so even if you load the content asynchronously please reserve
  * some space for the item, for example using [Spacer].
  */
-@OptIn(InternalLayoutApi::class)
 @Composable
 @Deprecated(
     "Use LazyRow instead",
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
index 5f110cb..7d1b46d 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
@@ -19,7 +19,6 @@
 import androidx.compose.foundation.assertNotNestingScrollableContainers
 import androidx.compose.foundation.gestures.scrollable
 import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.foundation.layout.padding
 import androidx.compose.runtime.Composable
@@ -34,7 +33,6 @@
 import androidx.compose.ui.platform.AmbientLayoutDirection
 import androidx.compose.ui.unit.LayoutDirection
 
-@OptIn(InternalLayoutApi::class)
 @Composable
 internal fun LazyList(
     /** The total size of the list */
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 984380a..39d8e70 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.layout.Arrangement
-import androidx.compose.foundation.layout.InternalLayoutApi
 import androidx.compose.ui.layout.MeasureResult
 import androidx.compose.ui.layout.MeasureScope
 import androidx.compose.ui.unit.Constraints
@@ -235,7 +234,6 @@
 /**
  * Lays out [LazyMeasuredItem]s based on the [LazyListMeasureResult] and the passed arrangement.
  */
-@OptIn(InternalLayoutApi::class)
 internal fun MeasureScope.layoutLazyList(
     constraints: Constraints,
     isVertical: Boolean,
diff --git a/compose/material/material-ripple/api/current.txt b/compose/material/material-ripple/api/current.txt
index 8d21928..fac79c8 100644
--- a/compose/material/material-ripple/api/current.txt
+++ b/compose/material/material-ripple/api/current.txt
@@ -28,7 +28,7 @@
   }
 
   public final class RippleThemeKt {
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
+    method @androidx.compose.material.ripple.ExperimentalRippleApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
   }
 
 }
diff --git a/compose/material/material-ripple/api/public_plus_experimental_current.txt b/compose/material/material-ripple/api/public_plus_experimental_current.txt
index 8d21928..fac79c8 100644
--- a/compose/material/material-ripple/api/public_plus_experimental_current.txt
+++ b/compose/material/material-ripple/api/public_plus_experimental_current.txt
@@ -28,7 +28,7 @@
   }
 
   public final class RippleThemeKt {
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
+    method @androidx.compose.material.ripple.ExperimentalRippleApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
   }
 
 }
diff --git a/compose/material/material-ripple/api/restricted_current.txt b/compose/material/material-ripple/api/restricted_current.txt
index 8d21928..fac79c8 100644
--- a/compose/material/material-ripple/api/restricted_current.txt
+++ b/compose/material/material-ripple/api/restricted_current.txt
@@ -28,7 +28,7 @@
   }
 
   public final class RippleThemeKt {
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
+    method @androidx.compose.material.ripple.ExperimentalRippleApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.material.ripple.RippleTheme> getAmbientRippleTheme();
   }
 
 }
diff --git a/compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/RippleTheme.kt b/compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/RippleTheme.kt
index d637ef9..3688864 100644
--- a/compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/RippleTheme.kt
+++ b/compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/RippleTheme.kt
@@ -119,6 +119,7 @@
  * See [RippleTheme.defaultRippleColor] and [RippleTheme.defaultRippleAlpha] functions for the
  * default implementations for color and alpha.
  */
+@get:ExperimentalRippleApi
 @ExperimentalRippleApi
 public val AmbientRippleTheme: ProvidableAmbient<RippleTheme> = staticAmbientOf { DebugRippleTheme }
 
diff --git a/compose/runtime/runtime/api/current.txt b/compose/runtime/runtime/api/current.txt
index 546503d..003fd99 100644
--- a/compose/runtime/runtime/api/current.txt
+++ b/compose/runtime/runtime/api/current.txt
@@ -205,7 +205,7 @@
   public final class ExpectKt {
   }
 
-  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
   }
 
   public final class FlowAdapterKt {
@@ -568,7 +568,7 @@
   public final class ListUtilsKt {
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
+  public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
     method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply();
     method public void close$metalava_module();
     method public java.util.Set<androidx.compose.runtime.snapshots.StateObject>? getModified$metalava_module();
@@ -591,7 +591,7 @@
     property public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract sealed class Snapshot {
+  public abstract sealed class Snapshot {
     method public void dispose();
     method public final inline <T> T! enter(kotlin.jvm.functions.Function0<? extends T> block);
     method public int getId();
@@ -608,16 +608,16 @@
   public static final class Snapshot.Companion {
     method public androidx.compose.runtime.snapshots.Snapshot! getCurrent();
     method public inline <T> T! global(kotlin.jvm.functions.Function0<? extends T> block);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void notifyObjectsInitialized();
+    method public void notifyObjectsInitialized();
     method public <T> T! observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
     method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
-    method @androidx.compose.runtime.ExperimentalComposeApi public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void sendApplyNotifications();
+    method public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
+    method public void sendApplyNotifications();
     property public final androidx.compose.runtime.snapshots.Snapshot! current;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public final class SnapshotApplyConflictException extends java.lang.Exception {
+  public final class SnapshotApplyConflictException extends java.lang.Exception {
     ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot);
     method public androidx.compose.runtime.snapshots.Snapshot getSnapshot();
     property public final androidx.compose.runtime.snapshots.Snapshot snapshot;
@@ -656,9 +656,9 @@
   public final class SnapshotKt {
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state);
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
+    method public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
     method public static androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1<? super T,? extends R> block);
   }
@@ -744,14 +744,14 @@
     method public void removeObservationsFor(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public interface StateObject {
+  public interface StateObject {
     method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
     method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied);
     method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
     property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract class StateRecord {
+  public abstract class StateRecord {
     ctor public StateRecord();
     method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value);
     method public abstract androidx.compose.runtime.snapshots.StateRecord create();
diff --git a/compose/runtime/runtime/api/public_plus_experimental_current.txt b/compose/runtime/runtime/api/public_plus_experimental_current.txt
index 546503d..003fd99 100644
--- a/compose/runtime/runtime/api/public_plus_experimental_current.txt
+++ b/compose/runtime/runtime/api/public_plus_experimental_current.txt
@@ -205,7 +205,7 @@
   public final class ExpectKt {
   }
 
-  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
   }
 
   public final class FlowAdapterKt {
@@ -568,7 +568,7 @@
   public final class ListUtilsKt {
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
+  public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
     method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply();
     method public void close$metalava_module();
     method public java.util.Set<androidx.compose.runtime.snapshots.StateObject>? getModified$metalava_module();
@@ -591,7 +591,7 @@
     property public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract sealed class Snapshot {
+  public abstract sealed class Snapshot {
     method public void dispose();
     method public final inline <T> T! enter(kotlin.jvm.functions.Function0<? extends T> block);
     method public int getId();
@@ -608,16 +608,16 @@
   public static final class Snapshot.Companion {
     method public androidx.compose.runtime.snapshots.Snapshot! getCurrent();
     method public inline <T> T! global(kotlin.jvm.functions.Function0<? extends T> block);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void notifyObjectsInitialized();
+    method public void notifyObjectsInitialized();
     method public <T> T! observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
     method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
-    method @androidx.compose.runtime.ExperimentalComposeApi public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void sendApplyNotifications();
+    method public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
+    method public void sendApplyNotifications();
     property public final androidx.compose.runtime.snapshots.Snapshot! current;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public final class SnapshotApplyConflictException extends java.lang.Exception {
+  public final class SnapshotApplyConflictException extends java.lang.Exception {
     ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot);
     method public androidx.compose.runtime.snapshots.Snapshot getSnapshot();
     property public final androidx.compose.runtime.snapshots.Snapshot snapshot;
@@ -656,9 +656,9 @@
   public final class SnapshotKt {
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state);
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
+    method public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
     method public static androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1<? super T,? extends R> block);
   }
@@ -744,14 +744,14 @@
     method public void removeObservationsFor(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public interface StateObject {
+  public interface StateObject {
     method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
     method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied);
     method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
     property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract class StateRecord {
+  public abstract class StateRecord {
     ctor public StateRecord();
     method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value);
     method public abstract androidx.compose.runtime.snapshots.StateRecord create();
diff --git a/compose/runtime/runtime/api/restricted_current.txt b/compose/runtime/runtime/api/restricted_current.txt
index 623a343..5998a33 100644
--- a/compose/runtime/runtime/api/restricted_current.txt
+++ b/compose/runtime/runtime/api/restricted_current.txt
@@ -232,7 +232,7 @@
   public final class ExpectKt {
   }
 
-  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
+  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public @interface ExperimentalComposeApi {
   }
 
   public final class FlowAdapterKt {
@@ -606,7 +606,7 @@
   public final class ListUtilsKt {
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
+  public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot {
     method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply();
     method public void close$metalava_module();
     method public java.util.Set<androidx.compose.runtime.snapshots.StateObject>? getModified$metalava_module();
@@ -629,7 +629,7 @@
     property public kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract sealed class Snapshot {
+  public abstract sealed class Snapshot {
     method public void dispose();
     method public final inline <T> T! enter(kotlin.jvm.functions.Function0<? extends T> block);
     method public int getId();
@@ -648,18 +648,18 @@
   public static final class Snapshot.Companion {
     method public androidx.compose.runtime.snapshots.Snapshot! getCurrent();
     method public inline <T> T! global(kotlin.jvm.functions.Function0<? extends T> block);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void notifyObjectsInitialized();
+    method public void notifyObjectsInitialized();
     method public <T> T! observe(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver, kotlin.jvm.functions.Function0<? extends T> block);
     method @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> registerApplyObserver(kotlin.jvm.functions.Function2<? super java.util.Set<?>,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer);
-    method @androidx.compose.runtime.ExperimentalComposeApi public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
+    method public kotlin.jvm.functions.Function0<kotlin.Unit> registerGlobalWriteObserver(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> observer);
     method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? removeCurrent();
     method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? previous);
-    method @androidx.compose.runtime.ExperimentalComposeApi public void sendApplyNotifications();
+    method public void sendApplyNotifications();
     property public final androidx.compose.runtime.snapshots.Snapshot! current;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public final class SnapshotApplyConflictException extends java.lang.Exception {
+  public final class SnapshotApplyConflictException extends java.lang.Exception {
     ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot);
     method public androidx.compose.runtime.snapshots.Snapshot getSnapshot();
     property public final androidx.compose.runtime.snapshots.Snapshot snapshot;
@@ -701,9 +701,9 @@
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state);
     method public static <T extends androidx.compose.runtime.snapshots.StateRecord> T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
     method @kotlin.PublishedApi internal static inline <T> T! sync(kotlin.jvm.functions.Function0<? extends T> block);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
+    method public static androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver, optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver);
     method public static androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
-    method @androidx.compose.runtime.ExperimentalComposeApi public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
+    method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! withCurrent(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method public static inline <T extends androidx.compose.runtime.snapshots.StateRecord, R> R! writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1<? super T,? extends R> block);
     method @kotlin.PublishedApi internal static <T extends androidx.compose.runtime.snapshots.StateRecord> T writableRecord(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot);
@@ -792,14 +792,14 @@
     method public void removeObservationsFor(kotlin.jvm.functions.Function1<java.lang.Object,java.lang.Boolean> predicate);
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public interface StateObject {
+  public interface StateObject {
     method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord();
     method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied);
     method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value);
     property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord;
   }
 
-  @androidx.compose.runtime.ExperimentalComposeApi public abstract class StateRecord {
+  public abstract class StateRecord {
     ctor public StateRecord();
     method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value);
     method public abstract androidx.compose.runtime.snapshots.StateRecord create();
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ExperimentalComposeApi.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ExperimentalComposeApi.kt
index aaaa566..21db3b7 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ExperimentalComposeApi.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ExperimentalComposeApi.kt
@@ -24,6 +24,7 @@
 @Target(
     AnnotationTarget.CLASS,
     AnnotationTarget.FUNCTION,
-    AnnotationTarget.PROPERTY
+    AnnotationTarget.PROPERTY,
+    AnnotationTarget.PROPERTY_GETTER
 )
 annotation class ExperimentalComposeApi
\ No newline at end of file
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
index 0502395..6f68340 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
@@ -124,7 +124,6 @@
  * @see Snapshot
  * @see MutableSnapshot
  */
-@ExperimentalComposeApi
 fun takeMutableSnapshot(
     readObserver: SnapshotReadObserver? = null,
     writeObserver: SnapshotWriteObserver? = null
@@ -150,7 +149,6 @@
  * @see androidx.compose.runtime.mutableStateListOf
  * @see androidx.compose.runtime.mutableStateMapOf
  */
-@ExperimentalComposeApi
 sealed class Snapshot(
     id: Int,
     invalid: SnapshotIdSet
@@ -389,7 +387,6 @@
          *
          * @return a lambda that, when called, unregisters [observer].
          */
-        @ExperimentalComposeApi
         fun registerGlobalWriteObserver(observer: SnapshotWriteObserver): () -> Unit {
             sync {
                 globalWriteObservers.add(observer)
@@ -416,7 +413,6 @@
          * Compose uses this between phases of composition to allow observing changes to state
          * objects create in a previous phase.
          */
-        @ExperimentalComposeApi
         fun notifyObjectsInitialized() = currentSnapshot().notifyObjectsInitialized()
 
         /**
@@ -429,7 +425,6 @@
          * Composition schedules this to be called after changes to state objects are
          * detected an observer registered with [registerGlobalWriteObserver].
          */
-        @ExperimentalComposeApi
         fun sendApplyNotifications() {
             val changes = sync {
                 currentGlobalSnapshot.modified?.isNotEmpty() == true
@@ -477,7 +472,6 @@
  * @see androidx.compose.runtime.mutableStateListOf
  * @see androidx.compose.runtime.mutableStateMapOf
  */
-@ExperimentalComposeApi
 open class MutableSnapshot internal constructor(
     id: Int,
     invalid: SnapshotIdSet,
@@ -920,7 +914,6 @@
  * An exception that is thrown when [SnapshotApplyResult.check] is called on a result of a
  * [MutableSnapshot.apply] that fails to apply.
  */
-@ExperimentalComposeApi
 class SnapshotApplyConflictException(
     @Suppress("unused") val snapshot: Snapshot
 ) : Exception()
@@ -928,7 +921,6 @@
 /**
  * Snapshot local value of a state object.
  */
-@ExperimentalComposeApi
 abstract class StateRecord {
     /**
      * The snapshot id of the snapshot in which the record was created.
@@ -966,7 +958,6 @@
  * Interface implemented by all snapshot aware state objects. Used by this module to maintain the
  * state records of a state object.
  */
-@ExperimentalComposeApi
 interface StateObject {
     /**
      * The first state record in a linked list of state records.
@@ -1585,7 +1576,6 @@
     return newData
 }
 
-@ExperimentalComposeApi
 internal fun <T : StateRecord> T.newWritableRecord(state: StateObject, snapshot: Snapshot): T {
     // Calling used() on a state object might return the same record for each thread calling
     // used() therefore selecting the record to reuse should be guarded.
@@ -1711,6 +1701,5 @@
  *
  * @see readable
  */
-@ExperimentalComposeApi
 inline fun <T : StateRecord, R> T.withCurrent(block: (r: T) -> R): R =
     block(current(this, Snapshot.current))
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index bbc68f1..50585bc 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -2088,8 +2088,8 @@
   public interface Owner {
     method public long calculatePosition-nOcc-ac();
     method public androidx.compose.ui.node.OwnedLayer createLayer(kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Canvas,kotlin.Unit> drawBlock, kotlin.jvm.functions.Function0<kotlin.Unit> invalidateParentLayer);
-    method public androidx.compose.ui.autofill.Autofill? getAutofill();
-    method public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.Autofill? getAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
     method public androidx.compose.ui.platform.ClipboardManager getClipboardManager();
     method public androidx.compose.ui.unit.Density getDensity();
     method public androidx.compose.ui.focus.FocusManager getFocusManager();
@@ -2114,8 +2114,8 @@
     method public void onSemanticsChange();
     method public boolean requestFocus();
     method public boolean sendKeyEvent-ZmokQxo(android.view.KeyEvent keyEvent);
-    property public abstract androidx.compose.ui.autofill.Autofill? autofill;
-    property public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.Autofill? autofill;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.compose.ui.platform.ClipboardManager clipboardManager;
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.focus.FocusManager focusManager;
@@ -2191,8 +2191,8 @@
 
   public final class AmbientsKt {
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.animation.core.AnimationClockObservable> getAmbientAnimationClock();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.platform.ClipboardManager> getAmbientClipboardManager();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.unit.Density> getAmbientDensity();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.focus.FocusManager> getAmbientFocusManager();
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/public_plus_experimental_current.txt
index bbc68f1..50585bc 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/public_plus_experimental_current.txt
@@ -2088,8 +2088,8 @@
   public interface Owner {
     method public long calculatePosition-nOcc-ac();
     method public androidx.compose.ui.node.OwnedLayer createLayer(kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Canvas,kotlin.Unit> drawBlock, kotlin.jvm.functions.Function0<kotlin.Unit> invalidateParentLayer);
-    method public androidx.compose.ui.autofill.Autofill? getAutofill();
-    method public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.Autofill? getAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
     method public androidx.compose.ui.platform.ClipboardManager getClipboardManager();
     method public androidx.compose.ui.unit.Density getDensity();
     method public androidx.compose.ui.focus.FocusManager getFocusManager();
@@ -2114,8 +2114,8 @@
     method public void onSemanticsChange();
     method public boolean requestFocus();
     method public boolean sendKeyEvent-ZmokQxo(android.view.KeyEvent keyEvent);
-    property public abstract androidx.compose.ui.autofill.Autofill? autofill;
-    property public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.Autofill? autofill;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.compose.ui.platform.ClipboardManager clipboardManager;
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.focus.FocusManager focusManager;
@@ -2191,8 +2191,8 @@
 
   public final class AmbientsKt {
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.animation.core.AnimationClockObservable> getAmbientAnimationClock();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.platform.ClipboardManager> getAmbientClipboardManager();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.unit.Density> getAmbientDensity();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.focus.FocusManager> getAmbientFocusManager();
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index efc6311..372a017 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -2150,8 +2150,8 @@
   public interface Owner {
     method public long calculatePosition-nOcc-ac();
     method public androidx.compose.ui.node.OwnedLayer createLayer(kotlin.jvm.functions.Function1<? super androidx.compose.ui.graphics.Canvas,kotlin.Unit> drawBlock, kotlin.jvm.functions.Function0<kotlin.Unit> invalidateParentLayer);
-    method public androidx.compose.ui.autofill.Autofill? getAutofill();
-    method public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.Autofill? getAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.autofill.AutofillTree getAutofillTree();
     method public androidx.compose.ui.platform.ClipboardManager getClipboardManager();
     method public androidx.compose.ui.unit.Density getDensity();
     method public androidx.compose.ui.focus.FocusManager getFocusManager();
@@ -2176,8 +2176,8 @@
     method public void onSemanticsChange();
     method public boolean requestFocus();
     method public boolean sendKeyEvent-ZmokQxo(android.view.KeyEvent keyEvent);
-    property public abstract androidx.compose.ui.autofill.Autofill? autofill;
-    property public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.Autofill? autofill;
+    property @androidx.compose.ui.ExperimentalComposeUiApi public abstract androidx.compose.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.compose.ui.platform.ClipboardManager clipboardManager;
     property public abstract androidx.compose.ui.unit.Density density;
     property public abstract androidx.compose.ui.focus.FocusManager focusManager;
@@ -2253,8 +2253,8 @@
 
   public final class AmbientsKt {
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.animation.core.AnimationClockObservable> getAmbientAnimationClock();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
-    method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.Autofill> getAmbientAutofill();
+    method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.autofill.AutofillTree> getAmbientAutofillTree();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.platform.ClipboardManager> getAmbientClipboardManager();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.unit.Density> getAmbientDensity();
     method public static androidx.compose.runtime.ProvidableAmbient<androidx.compose.ui.focus.FocusManager> getAmbientFocusManager();
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/Owner.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/Owner.kt
index e13f229..76fd874 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/Owner.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/Owner.kt
@@ -66,12 +66,14 @@
      *  TODO(ralu): Replace with SemanticsTree. This is a temporary hack until we have a semantics
      *  tree implemented.
      */
+    @get:ExperimentalComposeUiApi
     @ExperimentalComposeUiApi
     val autofillTree: AutofillTree
 
     /**
      * The [Autofill] class can be used to perform autofill operations. It is used as an ambient.
      */
+    @get:ExperimentalComposeUiApi
     @ExperimentalComposeUiApi
     val autofill: Autofill?
 
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/Ambients.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/Ambients.kt
index c4f6b6d..5b060f3 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/Ambients.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/Ambients.kt
@@ -52,6 +52,7 @@
 /**
  * The ambient that can be used to trigger autofill actions. Eg. [Autofill.requestAutofillForNode].
  */
+@get:ExperimentalComposeUiApi
 @ExperimentalComposeUiApi
 val AmbientAutofill = staticAmbientOf<Autofill?>()
 
@@ -61,6 +62,7 @@
  * [AutofillTree] is a temporary data structure that will be replaced by Autofill Semantics
  * (b/138604305).
  */
+@get:ExperimentalComposeUiApi
 @ExperimentalComposeUiApi
 val AmbientAutofillTree = staticAmbientOf<AutofillTree>()