Merge "Disable tests failing on API35." into androidx-main
diff --git a/compose/ui/ui-tooling-preview/api/current.ignore b/compose/ui/ui-tooling-preview/api/current.ignore
index bb613a9..0c2a99c 100644
--- a/compose/ui/ui-tooling-preview/api/current.ignore
+++ b/compose/ui/ui-tooling-preview/api/current.ignore
@@ -1,4 +1,8 @@
 // Baseline format: 1.0
+ChangedType: androidx.compose.ui.tooling.preview.PreviewParameter#provider():
+    Method androidx.compose.ui.tooling.preview.PreviewParameter.provider has changed return type from kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> to java.lang.Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>>
+
+
 ChangedValue: androidx.compose.ui.tooling.preview.Devices#DESKTOP:
     Field androidx.compose.ui.tooling.preview.Devices.DESKTOP has changed value from spec:id=reference_desktop,shape=Normal,width=1920,height=1080,unit=dp,dpi=160 to spec:width=1920dp,height=1080dp,dpi=160
 ChangedValue: androidx.compose.ui.tooling.preview.Devices#FOLDABLE:
diff --git a/compose/ui/ui-tooling-preview/api/current.txt b/compose/ui/ui-tooling-preview/api/current.txt
index b431232..d6b5c19 100644
--- a/compose/ui/ui-tooling-preview/api/current.txt
+++ b/compose/ui/ui-tooling-preview/api/current.txt
@@ -148,9 +148,9 @@
 
   @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
     method public abstract int limit() default kotlin.jvm.internal.IntCompanionObject.MAX_VALUE;
-    method public abstract kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider();
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider();
     property public abstract int limit;
-    property public abstract kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider;
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface PreviewParameterProvider<T> {
diff --git a/compose/ui/ui-tooling-preview/api/restricted_current.ignore b/compose/ui/ui-tooling-preview/api/restricted_current.ignore
index bb613a9..0c2a99c 100644
--- a/compose/ui/ui-tooling-preview/api/restricted_current.ignore
+++ b/compose/ui/ui-tooling-preview/api/restricted_current.ignore
@@ -1,4 +1,8 @@
 // Baseline format: 1.0
+ChangedType: androidx.compose.ui.tooling.preview.PreviewParameter#provider():
+    Method androidx.compose.ui.tooling.preview.PreviewParameter.provider has changed return type from kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> to java.lang.Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>>
+
+
 ChangedValue: androidx.compose.ui.tooling.preview.Devices#DESKTOP:
     Field androidx.compose.ui.tooling.preview.Devices.DESKTOP has changed value from spec:id=reference_desktop,shape=Normal,width=1920,height=1080,unit=dp,dpi=160 to spec:width=1920dp,height=1080dp,dpi=160
 ChangedValue: androidx.compose.ui.tooling.preview.Devices#FOLDABLE:
diff --git a/compose/ui/ui-tooling-preview/api/restricted_current.txt b/compose/ui/ui-tooling-preview/api/restricted_current.txt
index b431232..d6b5c19 100644
--- a/compose/ui/ui-tooling-preview/api/restricted_current.txt
+++ b/compose/ui/ui-tooling-preview/api/restricted_current.txt
@@ -148,9 +148,9 @@
 
   @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
     method public abstract int limit() default kotlin.jvm.internal.IntCompanionObject.MAX_VALUE;
-    method public abstract kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider();
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider();
     property public abstract int limit;
-    property public abstract kotlin.reflect.KClass<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<? extends java.lang.Object?>> provider;
   }
 
   @kotlin.jvm.JvmDefaultWithCompatibility public interface PreviewParameterProvider<T> {
diff --git a/compose/ui/ui-tooling-preview/build.gradle b/compose/ui/ui-tooling-preview/build.gradle
index 2ea5618..59a92e2 100644
--- a/compose/ui/ui-tooling-preview/build.gradle
+++ b/compose/ui/ui-tooling-preview/build.gradle
@@ -99,6 +99,5 @@
     description = "Compose tooling library API. This library provides the API required to declare" +
             " @Preview composables in user apps."
     legacyDisableKotlinStrictApiMode = true
-    metalavaK2UastEnabled = false
 }
 
diff --git a/compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/input/pointer/TapIntegrationBenchmarkValues.kt b/compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/input/pointer/TapIntegrationBenchmarkValues.kt
index 8ef603f..0649fe7 100644
--- a/compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/input/pointer/TapIntegrationBenchmarkValues.kt
+++ b/compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/input/pointer/TapIntegrationBenchmarkValues.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 20201 The Android Open Source Project
+ * Copyright 2021 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/development/importMaven/src/main/kotlin/androidx/build/importMaven/ArtifactResolver.kt b/development/importMaven/src/main/kotlin/androidx/build/importMaven/ArtifactResolver.kt
index 185d6ac..d4c4c46 100644
--- a/development/importMaven/src/main/kotlin/androidx/build/importMaven/ArtifactResolver.kt
+++ b/development/importMaven/src/main/kotlin/androidx/build/importMaven/ArtifactResolver.kt
@@ -213,9 +213,9 @@
             val artifacts = resolutionList.flatMap { resolution ->
                 resolution.artifacts
             }
-            val dependenciesPassedVerification = resolutionList.map { resolution ->
+            val dependenciesPassedVerification = resolutionList.all { resolution ->
                 resolution.dependenciesPassedVerification
-            }.all { it == true }
+            }
             return ArtifactsResolutionResult(artifacts, dependenciesPassedVerification)
         }
 
diff --git a/development/importMaven/src/main/kotlin/androidx/build/importMaven/MavenRepositoryProxy.kt b/development/importMaven/src/main/kotlin/androidx/build/importMaven/MavenRepositoryProxy.kt
index 85568ab..7318bc3 100644
--- a/development/importMaven/src/main/kotlin/androidx/build/importMaven/MavenRepositoryProxy.kt
+++ b/development/importMaven/src/main/kotlin/androidx/build/importMaven/MavenRepositoryProxy.kt
@@ -102,11 +102,13 @@
                 server.resolvedConnectors().first().let {
                     URL(
                         it.type.name.lowercase(),
-                        it.host,
+                        // Always use `localhost` for local loopback given this is secure for `http` URLs.
+                        "localhost",
                         it.port,
                         ""
                     )
-                    URI("${it.type.name.lowercase()}://${it.host}:${it.port}")
+                    // Always use `localhost` for local loopback given this is secure for `http` URIs.
+                    URI("${it.type.name.lowercase()}://localhost:${it.port}")
                 }
             }
             block(url)
diff --git a/development/importMaven/src/test/kotlin/androidx/build/importMaven/ImportVersionCatalogTest.kt b/development/importMaven/src/test/kotlin/androidx/build/importMaven/ImportVersionCatalogTest.kt
index b80401b..a8b7238c 100644
--- a/development/importMaven/src/test/kotlin/androidx/build/importMaven/ImportVersionCatalogTest.kt
+++ b/development/importMaven/src/test/kotlin/androidx/build/importMaven/ImportVersionCatalogTest.kt
@@ -17,7 +17,6 @@
 package androidx.build.importMaven
 
 import com.google.common.truth.Truth.assertThat
-import okio.FileSystem
 import org.junit.Test
 
 class ImportVersionCatalogTest {
@@ -29,7 +28,6 @@
     fun load() {
         val path = EnvironmentConfig.supportRoot.resolve("gradle/libs.versions.toml")
         val versions = ImportVersionCatalog.load(
-            FileSystem.SYSTEM,
             path
         )
         assertThat(
diff --git a/room/room-common/api/current.ignore b/room/room-common/api/current.ignore
index e328ae6..a124e8c 100644
--- a/room/room-common/api/current.ignore
+++ b/room/room-common/api/current.ignore
@@ -1,4 +1,32 @@
 // Baseline format: 1.0
+ChangedType: androidx.room.AutoMigration#spec():
+    Method androidx.room.AutoMigration.spec has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Database#entities():
+    Method androidx.room.Database.entities has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Database#views():
+    Method androidx.room.Database.views has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Delete#entity():
+    Method androidx.room.Delete.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.ForeignKey#entity():
+    Method androidx.room.ForeignKey.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Fts4#contentEntity():
+    Method androidx.room.Fts4.contentEntity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Insert#entity():
+    Method androidx.room.Insert.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Junction#value():
+    Method androidx.room.Junction.value has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.RawQuery#observedEntities():
+    Method androidx.room.RawQuery.observedEntities has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Relation#entity():
+    Method androidx.room.Relation.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.TypeConverters#value():
+    Method androidx.room.TypeConverters.value has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Update#entity():
+    Method androidx.room.Update.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Upsert#entity():
+    Method androidx.room.Upsert.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+
+
 ChangedValue: androidx.room.AutoMigration#spec():
     Method androidx.room.AutoMigration.spec has changed value from java.lang.Object to Any::class
 ChangedValue: androidx.room.Delete#entity():
diff --git a/room/room-common/api/current.txt b/room/room-common/api/current.txt
index 43dd4e3..262cfab 100644
--- a/room/room-common/api/current.txt
+++ b/room/room-common/api/current.txt
@@ -3,10 +3,10 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface AutoMigration {
     method public abstract int from();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> spec() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> spec() default Any::class;
     method public abstract int to();
     property public abstract int from;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> spec;
+    property public abstract Class<? extends java.lang.Object?> spec;
     property public abstract int to;
   }
 
@@ -88,8 +88,8 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface ConstructedBy {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value;
+    method public abstract Class<? extends java.lang.Object?> value();
+    property public abstract Class<? extends java.lang.Object?> value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Dao {
@@ -97,15 +97,15 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Database {
     method public abstract androidx.room.AutoMigration[] autoMigrations();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] entities();
+    method public abstract Class<? extends java.lang.Object?>[] entities();
     method public abstract boolean exportSchema() default true;
     method public abstract int version();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] views();
+    method public abstract Class<? extends java.lang.Object?>[] views();
     property public abstract androidx.room.AutoMigration[] autoMigrations;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] entities;
+    property public abstract Class<? extends java.lang.Object?>[] entities;
     property public abstract boolean exportSchema;
     property public abstract int version;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] views;
+    property public abstract Class<? extends java.lang.Object?>[] views;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface DatabaseView {
@@ -116,8 +116,8 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Delete {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
+    property public abstract Class<? extends java.lang.Object?> entity;
   }
 
   @java.lang.annotation.Repeatable(DeleteColumn.Entries::class) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface DeleteColumn {
@@ -165,13 +165,13 @@
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={}) public @interface ForeignKey {
     method public abstract String[] childColumns();
     method public abstract boolean deferred() default false;
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity();
+    method public abstract Class<? extends java.lang.Object?> entity();
     method @androidx.room.ForeignKey.Action public abstract int onDelete() default androidx.room.ForeignKey.NO_ACTION;
     method @androidx.room.ForeignKey.Action public abstract int onUpdate() default androidx.room.ForeignKey.NO_ACTION;
     method public abstract String[] parentColumns();
     property public abstract String[] childColumns;
     property public abstract boolean deferred;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.ForeignKey.Action public abstract int onDelete;
     property @androidx.room.ForeignKey.Action public abstract int onUpdate;
     property public abstract String[] parentColumns;
@@ -207,7 +207,7 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Fts4 {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> contentEntity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> contentEntity() default Any::class;
     method public abstract String languageId() default "";
     method public abstract androidx.room.FtsOptions.MatchInfo matchInfo() default androidx.room.FtsOptions.MatchInfo.FTS4;
     method public abstract String[] notIndexed();
@@ -215,7 +215,7 @@
     method public abstract int[] prefix();
     method public abstract String tokenizer() default androidx.room.FtsOptions.TOKENIZER_SIMPLE;
     method public abstract String[] tokenizerArgs();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> contentEntity;
+    property public abstract Class<? extends java.lang.Object?> contentEntity;
     property public abstract String languageId;
     property public abstract androidx.room.FtsOptions.MatchInfo matchInfo;
     property public abstract String[] notIndexed;
@@ -267,19 +267,19 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Insert {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.OnConflictStrategy public abstract int onConflict;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={}) public @interface Junction {
     method public abstract String entityColumn() default "";
     method public abstract String parentColumn() default "";
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value();
+    method public abstract Class<? extends java.lang.Object?> value();
     property public abstract String entityColumn;
     property public abstract String parentColumn;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value;
+    property public abstract Class<? extends java.lang.Object?> value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.TYPE) public @interface MapColumn {
@@ -344,18 +344,18 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface RawQuery {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] observedEntities();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] observedEntities;
+    method public abstract Class<? extends java.lang.Object?>[] observedEntities();
+    property public abstract Class<? extends java.lang.Object?>[] observedEntities;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface Relation {
     method public abstract androidx.room.Junction associateBy() default androidx.room.Junction(Any::class);
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method public abstract String entityColumn();
     method public abstract String parentColumn();
     method public abstract String[] projection();
     property public abstract androidx.room.Junction associateBy;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property public abstract String entityColumn;
     property public abstract String parentColumn;
     property public abstract String[] projection;
@@ -450,21 +450,21 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.CLASS}) public @interface TypeConverters {
     method public abstract androidx.room.BuiltInTypeConverters builtInTypeConverters() default androidx.room.BuiltInTypeConverters();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] value();
+    method public abstract Class<? extends java.lang.Object?>[] value();
     property public abstract androidx.room.BuiltInTypeConverters builtInTypeConverters;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] value;
+    property public abstract Class<? extends java.lang.Object?>[] value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Update {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.OnConflictStrategy public abstract int onConflict;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Upsert {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
+    property public abstract Class<? extends java.lang.Object?> entity;
   }
 
 }
diff --git a/room/room-common/api/restricted_current.ignore b/room/room-common/api/restricted_current.ignore
index e328ae6..a124e8c 100644
--- a/room/room-common/api/restricted_current.ignore
+++ b/room/room-common/api/restricted_current.ignore
@@ -1,4 +1,32 @@
 // Baseline format: 1.0
+ChangedType: androidx.room.AutoMigration#spec():
+    Method androidx.room.AutoMigration.spec has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Database#entities():
+    Method androidx.room.Database.entities has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Database#views():
+    Method androidx.room.Database.views has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Delete#entity():
+    Method androidx.room.Delete.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.ForeignKey#entity():
+    Method androidx.room.ForeignKey.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Fts4#contentEntity():
+    Method androidx.room.Fts4.contentEntity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Insert#entity():
+    Method androidx.room.Insert.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Junction#value():
+    Method androidx.room.Junction.value has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.RawQuery#observedEntities():
+    Method androidx.room.RawQuery.observedEntities has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Relation#entity():
+    Method androidx.room.Relation.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.TypeConverters#value():
+    Method androidx.room.TypeConverters.value has changed return type from kotlin.reflect.KClass<?>[] to java.lang.Class<?>[]
+ChangedType: androidx.room.Update#entity():
+    Method androidx.room.Update.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+ChangedType: androidx.room.Upsert#entity():
+    Method androidx.room.Upsert.entity has changed return type from kotlin.reflect.KClass<?> to java.lang.Class<?>
+
+
 ChangedValue: androidx.room.AutoMigration#spec():
     Method androidx.room.AutoMigration.spec has changed value from java.lang.Object to Any::class
 ChangedValue: androidx.room.Delete#entity():
diff --git a/room/room-common/api/restricted_current.txt b/room/room-common/api/restricted_current.txt
index d2326d6..6cc5969 100644
--- a/room/room-common/api/restricted_current.txt
+++ b/room/room-common/api/restricted_current.txt
@@ -9,10 +9,10 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface AutoMigration {
     method public abstract int from();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> spec() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> spec() default Any::class;
     method public abstract int to();
     property public abstract int from;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> spec;
+    property public abstract Class<? extends java.lang.Object?> spec;
     property public abstract int to;
   }
 
@@ -94,8 +94,8 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface ConstructedBy {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value;
+    method public abstract Class<? extends java.lang.Object?> value();
+    property public abstract Class<? extends java.lang.Object?> value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Dao {
@@ -103,15 +103,15 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Database {
     method public abstract androidx.room.AutoMigration[] autoMigrations();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] entities();
+    method public abstract Class<? extends java.lang.Object?>[] entities();
     method public abstract boolean exportSchema() default true;
     method public abstract int version();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] views();
+    method public abstract Class<? extends java.lang.Object?>[] views();
     property public abstract androidx.room.AutoMigration[] autoMigrations;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] entities;
+    property public abstract Class<? extends java.lang.Object?>[] entities;
     property public abstract boolean exportSchema;
     property public abstract int version;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] views;
+    property public abstract Class<? extends java.lang.Object?>[] views;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface DatabaseView {
@@ -122,8 +122,8 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Delete {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
+    property public abstract Class<? extends java.lang.Object?> entity;
   }
 
   @java.lang.annotation.Repeatable(DeleteColumn.Entries::class) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface DeleteColumn {
@@ -171,13 +171,13 @@
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={}) public @interface ForeignKey {
     method public abstract String[] childColumns();
     method public abstract boolean deferred() default false;
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity();
+    method public abstract Class<? extends java.lang.Object?> entity();
     method @androidx.room.ForeignKey.Action public abstract int onDelete() default androidx.room.ForeignKey.NO_ACTION;
     method @androidx.room.ForeignKey.Action public abstract int onUpdate() default androidx.room.ForeignKey.NO_ACTION;
     method public abstract String[] parentColumns();
     property public abstract String[] childColumns;
     property public abstract boolean deferred;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.ForeignKey.Action public abstract int onDelete;
     property @androidx.room.ForeignKey.Action public abstract int onUpdate;
     property public abstract String[] parentColumns;
@@ -213,7 +213,7 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Fts4 {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> contentEntity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> contentEntity() default Any::class;
     method public abstract String languageId() default "";
     method public abstract androidx.room.FtsOptions.MatchInfo matchInfo() default androidx.room.FtsOptions.MatchInfo.FTS4;
     method public abstract String[] notIndexed();
@@ -221,7 +221,7 @@
     method public abstract int[] prefix();
     method public abstract String tokenizer() default androidx.room.FtsOptions.TOKENIZER_SIMPLE;
     method public abstract String[] tokenizerArgs();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> contentEntity;
+    property public abstract Class<? extends java.lang.Object?> contentEntity;
     property public abstract String languageId;
     property public abstract androidx.room.FtsOptions.MatchInfo matchInfo;
     property public abstract String[] notIndexed;
@@ -273,19 +273,19 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Insert {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.OnConflictStrategy public abstract int onConflict;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={}) public @interface Junction {
     method public abstract String entityColumn() default "";
     method public abstract String parentColumn() default "";
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value();
+    method public abstract Class<? extends java.lang.Object?> value();
     property public abstract String entityColumn;
     property public abstract String parentColumn;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> value;
+    property public abstract Class<? extends java.lang.Object?> value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.TYPE) public @interface MapColumn {
@@ -350,18 +350,18 @@
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface RawQuery {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] observedEntities();
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] observedEntities;
+    method public abstract Class<? extends java.lang.Object?>[] observedEntities();
+    property public abstract Class<? extends java.lang.Object?>[] observedEntities;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface Relation {
     method public abstract androidx.room.Junction associateBy() default androidx.room.Junction(Any::class);
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method public abstract String entityColumn();
     method public abstract String parentColumn();
     method public abstract String[] projection();
     property public abstract androidx.room.Junction associateBy;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property public abstract String entityColumn;
     property public abstract String parentColumn;
     property public abstract String[] projection;
@@ -471,21 +471,21 @@
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.CLASS}) public @interface TypeConverters {
     method public abstract androidx.room.BuiltInTypeConverters builtInTypeConverters() default androidx.room.BuiltInTypeConverters();
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] value();
+    method public abstract Class<? extends java.lang.Object?>[] value();
     property public abstract androidx.room.BuiltInTypeConverters builtInTypeConverters;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?>[] value;
+    property public abstract Class<? extends java.lang.Object?>[] value;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Update {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
     method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    property public abstract Class<? extends java.lang.Object?> entity;
     property @androidx.room.OnConflictStrategy public abstract int onConflict;
   }
 
   @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface Upsert {
-    method public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity() default Any::class;
-    property public abstract kotlin.reflect.KClass<? extends java.lang.Object?> entity;
+    method public abstract Class<? extends java.lang.Object?> entity() default Any::class;
+    property public abstract Class<? extends java.lang.Object?> entity;
   }
 
 }
diff --git a/room/room-common/build.gradle b/room/room-common/build.gradle
index 2e36b7e..1cf5db4 100644
--- a/room/room-common/build.gradle
+++ b/room/room-common/build.gradle
@@ -88,6 +88,5 @@
     inceptionYear = "2017"
     description = "Android Room-Common"
     legacyDisableKotlinStrictApiMode = true
-    metalavaK2UastEnabled = false
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XClassName.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XClassName.kt
index 914b990..d48c5a0 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XClassName.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XClassName.kt
@@ -50,6 +50,7 @@
     //  But a decision has to be made...
     val packageName: String = java.packageName()
     val simpleNames: List<String> = java.simpleNames()
+    val simpleName = simpleNames.last()
     val canonicalName: String = java.canonicalName()
     val reflectionName: String = java.reflectionName()
 
@@ -82,6 +83,20 @@
             nullability = XNullability.NONNULL
         )
 
+    fun peerClass(name: String) =
+        XClassName(
+            java = java.peerClass(name),
+            kotlin = kotlin.peerClass(name),
+            nullability = XNullability.NONNULL
+        )
+
+    fun topLevelClass() =
+        XClassName(
+            java = java.topLevelClassName(),
+            kotlin = kotlin.topLevelClassName(),
+            nullability = XNullability.NONNULL
+        )
+
     override fun copy(nullable: Boolean): XClassName {
         return XClassName(
             java = java,
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XTypeName.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XTypeName.kt
index 5680e41..1feb79e 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XTypeName.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/codegen/XTypeName.kt
@@ -199,6 +199,7 @@
          * the equivalent Kotlin and Java type names are represented, [IntArray] and `int[]`
          * respectively.
          */
+        @JvmStatic
         fun getArrayName(componentTypeName: XTypeName): XTypeName {
             componentTypeName.java.let {
                 require(it !is JWildcardTypeName || it.lowerBounds.isEmpty()) {
@@ -243,6 +244,7 @@
          *
          * In Java: `? super <bound>` In Kotlin `in <bound>
          */
+        @JvmStatic
         fun getConsumerSuperName(bound: XTypeName): XTypeName {
             return XTypeName(
                 java = JWildcardTypeName.supertypeOf(bound.java),
@@ -260,6 +262,7 @@
          *
          * In Java: `? extends <bound>` In Kotlin `out <bound>
          */
+        @JvmStatic
         fun getProducerExtendsName(bound: XTypeName): XTypeName {
             return XTypeName(
                 java = JWildcardTypeName.subtypeOf(bound.java),
diff --git a/xr/arcore/arcore/src/test/kotlin/androidx/xr/arcore/AnchorTest.kt b/xr/arcore/arcore/src/test/kotlin/androidx/xr/arcore/AnchorTest.kt
index ca92bd8..49453a2 100644
--- a/xr/arcore/arcore/src/test/kotlin/androidx/xr/arcore/AnchorTest.kt
+++ b/xr/arcore/arcore/src/test/kotlin/androidx/xr/arcore/AnchorTest.kt
@@ -121,6 +121,7 @@
             .isEqualTo(RuntimeAnchor.PersistenceState.Persisted)
     }
 
+    @Ignore("Flaky test, see b/379198572")
     @Test
     fun getPersistedAnchorUuids_previouslyPersistedAnchor_returnsPersistedAnchorUuid() = runTest {
         val session = createTestSession()