Auditing and minimizing the usages of KClass.asClassName() in room-compiler.

Bug: 253855978
Test: Existing tests
Change-Id: I6a96fcf4642496ece97851ccf5ff9f414dce6e52
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt b/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
index 8895edf..0312a38 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
@@ -75,6 +75,16 @@
     val RELATION_UTIL = XClassName.get("androidx.room.util", "RelationUtil")
 }
 
+object RoomAnnotationTypeNames {
+    val QUERY = XClassName.get(ROOM_PACKAGE, "Query")
+    val DAO = XClassName.get(ROOM_PACKAGE, "Dao")
+    val DATABASE = XClassName.get(ROOM_PACKAGE, "Database")
+    val PRIMARY_KEY = XClassName.get(ROOM_PACKAGE, "PrimaryKey")
+    val TYPE_CONVERTERS = XClassName.get(ROOM_PACKAGE, "TypeConverters")
+    val TYPE_CONVERTER = XClassName.get(ROOM_PACKAGE, "TypeConverter")
+    val ENTITY = XClassName.get(ROOM_PACKAGE, "Entity")
+}
+
 object PagingTypeNames {
     val DATA_SOURCE = XClassName.get(PAGING_PACKAGE, "DataSource")
     val POSITIONAL_DATA_SOURCE = XClassName.get(PAGING_PACKAGE, "PositionalDataSource")
@@ -116,20 +126,32 @@
 object CommonTypeNames {
     val VOID = Void::class.asClassName()
     val COLLECTION = Collection::class.asClassName()
+    val COLLECTIONS = XClassName.get("java.util", "Collections")
+    val ARRAYS = XClassName.get("java.util", "Arrays")
     val LIST = List::class.asClassName()
     val MUTABLE_LIST = List::class.asMutableClassName()
     val ARRAY_LIST = XClassName.get("java.util", "ArrayList")
     val MAP = Map::class.asClassName()
     val MUTABLE_MAP = Map::class.asMutableClassName()
     val HASH_MAP = XClassName.get("java.util", "HashMap")
+    val QUEUE = XClassName.get("java.util", "Queue")
+    val LINKED_HASH_MAP = LinkedHashMap::class.asClassName()
     val SET = Set::class.asClassName()
     val MUTABLE_SET = Set::class.asMutableClassName()
     val HASH_SET = XClassName.get("java.util", "HashSet")
     val STRING = String::class.asClassName()
+    val STRING_BUILDER = XClassName.get("java.lang", "StringBuilder")
     val OPTIONAL = XClassName.get("java.util", "Optional")
     val UUID = XClassName.get("java.util", "UUID")
     val BYTE_BUFFER = XClassName.get("java.nio", "ByteBuffer")
     val JAVA_CLASS = XClassName.get("java.lang", "Class")
+    val CALLABLE = Callable::class.asClassName()
+    val DATE = XClassName.get("java.util", "Date")
+}
+
+object ExceptionTypeNames {
+    val ILLEGAL_STATE_EXCEPTION = IllegalStateException::class.asClassName()
+    val ILLEGAL_ARG_EXCEPTION = IllegalArgumentException::class.asClassName()
 }
 
 object GuavaTypeNames {
@@ -305,7 +327,7 @@
     parameterTypeName: XTypeName,
     callBody: XFunSpec.Builder.() -> Unit
 ) = XTypeSpec.anonymousClassBuilder(language, "").apply {
-    addSuperinterface(Callable::class.asClassName().parametrizedBy(parameterTypeName))
+    addSuperinterface(CommonTypeNames.CALLABLE.parametrizedBy(parameterTypeName))
     addFunction(
         XFunSpec.builder(
             language = language,
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/MapQueryResultAdapter.kt b/room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/MapQueryResultAdapter.kt
index fd8d8f1..821523c 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/MapQueryResultAdapter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/MapQueryResultAdapter.kt
@@ -18,7 +18,6 @@
 
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XCodeBlock
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XNullability
 import androidx.room.compiler.processing.XType
 import androidx.room.ext.CommonTypeNames
@@ -71,7 +70,7 @@
     private val implMapTypeName = when (mapType) {
         MapType.DEFAULT ->
             // LinkedHashMap is used as impl to preserve key ordering for ordered query results.
-            LinkedHashMap::class.asClassName().parametrizedBy(
+            CommonTypeNames.LINKED_HASH_MAP.parametrizedBy(
                 keyTypeArg.asTypeName(), valueTypeName
             )
         MapType.ARRAY_MAP ->
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/EnumColumnTypeAdapter.kt b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/EnumColumnTypeAdapter.kt
index 3da739d..7255e20 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/EnumColumnTypeAdapter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/EnumColumnTypeAdapter.kt
@@ -19,11 +19,11 @@
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XCodeBlock
 import androidx.room.compiler.codegen.XFunSpec
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XEnumTypeElement
 import androidx.room.compiler.processing.XNullability
 import androidx.room.compiler.processing.XType
 import androidx.room.ext.CommonTypeNames
+import androidx.room.ext.ExceptionTypeNames
 import androidx.room.parser.SQLTypeAffinity.TEXT
 import androidx.room.solver.CodeGenScope
 import androidx.room.writer.TypeWriter
@@ -119,7 +119,7 @@
                             }
                             addStatement(
                                 "default: throw new %T(%S + %L)",
-                                ILLEGAL_ARG_EXCEPTION,
+                                ExceptionTypeNames.ILLEGAL_ARG_EXCEPTION,
                                 ENUM_TO_STRING_ERROR_MSG,
                                 paramName
                             )
@@ -184,7 +184,7 @@
                             }
                             addStatement(
                                 "default: throw new %T(%S + %L)",
-                                ILLEGAL_ARG_EXCEPTION,
+                                ExceptionTypeNames.ILLEGAL_ARG_EXCEPTION,
                                 STRING_TO_ENUM_ERROR_MSG,
                                 paramName
                             )
@@ -203,7 +203,7 @@
                             }
                             addStatement(
                                 "else -> throw %T(%S + %L)",
-                                ILLEGAL_ARG_EXCEPTION,
+                                ExceptionTypeNames.ILLEGAL_ARG_EXCEPTION,
                                 STRING_TO_ENUM_ERROR_MSG,
                                 paramName
                             )
@@ -225,7 +225,6 @@
     }
 
     companion object {
-        private val ILLEGAL_ARG_EXCEPTION = IllegalArgumentException::class.asClassName()
         private const val ENUM_TO_STRING_ERROR_MSG =
             "Can't convert enum to string, unknown enum value: "
         private const val STRING_TO_ENUM_ERROR_MSG =
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/NullAwareTypeConverters.kt b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/NullAwareTypeConverters.kt
index 815fe8d..4bf5397 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/solver/types/NullAwareTypeConverters.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/solver/types/NullAwareTypeConverters.kt
@@ -18,9 +18,9 @@
 
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XCodeBlock
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XNullability
 import androidx.room.compiler.processing.XType
+import androidx.room.ext.ExceptionTypeNames
 import androidx.room.solver.CodeGenScope
 
 /**
@@ -100,7 +100,7 @@
                     "throw %L",
                     XCodeBlock.ofNewInstance(
                         language,
-                        ILLEGAL_STATE_EXCEPTION,
+                        ExceptionTypeNames.ILLEGAL_STATE_EXCEPTION,
                         "%S",
                         message
                     )
@@ -111,8 +111,4 @@
             }
         }
     }
-
-    companion object {
-        private val ILLEGAL_STATE_EXCEPTION = IllegalStateException::class.asClassName()
-    }
 }
\ No newline at end of file
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt b/room/room-compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
index 3f89a53..a8d7731 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
@@ -27,7 +27,6 @@
 import androidx.room.compiler.codegen.XTypeName
 import androidx.room.compiler.codegen.XTypeSpec
 import androidx.room.compiler.codegen.XTypeSpec.Builder.Companion.addOriginatingElement
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XElement
 import androidx.room.compiler.processing.XMethodElement
 import androidx.room.compiler.processing.XType
@@ -59,8 +58,6 @@
 import androidx.room.vo.UpdateMethod
 import androidx.room.vo.UpsertionMethod
 import androidx.room.vo.WriteQueryMethod
-import java.util.Arrays
-import java.util.Collections
 import java.util.Locale
 
 /**
@@ -198,7 +195,7 @@
             if (requiredTypeConverters.isEmpty()) {
                 when (language) {
                     CodeLanguage.JAVA ->
-                        addStatement("return %T.emptyList()", Collections::class.asClassName())
+                        addStatement("return %T.emptyList()", CommonTypeNames.COLLECTIONS)
                     CodeLanguage.KOTLIN ->
                         addStatement("return emptyList()")
                 }
@@ -210,7 +207,7 @@
                 when (language) {
                     CodeLanguage.JAVA ->
                         addStatement("return %T.asList($placeholders)",
-                            Arrays::class.asClassName(),
+                            CommonTypeNames.ARRAYS,
                             *requiredTypeConvertersLiterals
                         )
                     CodeLanguage.KOTLIN ->
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt b/room/room-compiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt
index c170531..bfc0817 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt
@@ -20,7 +20,6 @@
 import androidx.room.compiler.codegen.XCodeBlock.Builder.Companion.addLocalVal
 import androidx.room.compiler.codegen.XMemberName.Companion.packageMember
 import androidx.room.compiler.codegen.XTypeName
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.ext.CommonTypeNames
 import androidx.room.ext.RoomMemberNames
 import androidx.room.ext.RoomTypeNames
@@ -77,7 +76,7 @@
                 val stringBuilderVar = scope.getTmpVar("_stringBuilder")
                 addLocalVal(
                     stringBuilderVar,
-                    StringBuilder::class.asClassName(),
+                    CommonTypeNames.STRING_BUILDER,
                     "%M()",
                     RoomTypeNames.STRING_UTIL.packageMember("newStringBuilder")
                 )
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt b/room/room-compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
index c7c18fd..8ca0c7a 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
@@ -19,7 +19,6 @@
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XCodeBlock
 import androidx.room.compiler.codegen.XCodeBlock.Builder.Companion.addLocalVal
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.ext.CommonTypeNames
 import androidx.room.ext.RoomMemberNames
 import androidx.room.ext.RoomTypeNames
@@ -28,14 +27,12 @@
 import androidx.room.parser.SQLTypeAffinity
 import androidx.room.vo.Entity
 import androidx.room.vo.columnNames
-import java.util.Arrays
 import java.util.Locale
 
 class TableInfoValidationWriter(val entity: Entity) : ValidationWriter() {
 
     companion object {
         const val CREATED_FROM_ENTITY = "CREATED_FROM_ENTITY"
-        val ARRAY_TYPE_NAME = Arrays::class.asClassName()
     }
 
     override fun write(dbParamName: String, scope: CountingCodeGenScope) {
@@ -180,7 +177,7 @@
     private fun CodeBlockWrapper.listOfStrings(strings: List<String>): XCodeBlock {
         val placeholders = List(strings.size) { "%S" }.joinToString()
         val function: Any = when (language) {
-            CodeLanguage.JAVA -> XCodeBlock.of(language, "%T.asList", ARRAY_TYPE_NAME)
+            CodeLanguage.JAVA -> XCodeBlock.of(language, "%T.asList", CommonTypeNames.ARRAYS)
             CodeLanguage.KOTLIN -> "listOf"
         }
         return XCodeBlock.of(
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt
index 4b9437c..a4da24b 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt
@@ -16,7 +16,6 @@
 
 package androidx.room.processor
 
-import androidx.room.TypeConverter
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.VisibilityModifier
 import androidx.room.compiler.codegen.XAnnotationSpec
@@ -26,13 +25,13 @@
 import androidx.room.compiler.codegen.XTypeName
 import androidx.room.compiler.codegen.XTypeSpec
 import androidx.room.compiler.codegen.XTypeSpec.Builder.Companion.apply
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.util.Source
 import androidx.room.compiler.processing.util.XTestInvocation
 import androidx.room.compiler.processing.util.runProcessorTest
 import androidx.room.ext.CommonTypeNames
 import androidx.room.ext.CommonTypeNames.MUTABLE_LIST
 import androidx.room.ext.CommonTypeNames.STRING
+import androidx.room.ext.RoomAnnotationTypeNames
 import androidx.room.processor.ProcessorErrors.TYPE_CONVERTER_EMPTY_CLASS
 import androidx.room.processor.ProcessorErrors.TYPE_CONVERTER_MISSING_NOARG_CONSTRUCTOR
 import androidx.room.processor.ProcessorErrors.TYPE_CONVERTER_MUST_BE_PUBLIC
@@ -41,7 +40,6 @@
 import androidx.room.vo.CustomTypeConverter
 import com.google.common.truth.Truth.assertThat
 import com.squareup.javapoet.TypeVariableName
-import java.util.Date
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
@@ -117,7 +115,7 @@
 
     @Test
     fun nonNullButNotBoxed() {
-        val date = Date::class.asClassName()
+        val date = CommonTypeNames.DATE
         singleClass(createConverter(STRING, date)) { converter, _ ->
             assertThat(converter?.fromTypeName).isEqualTo(STRING)
             assertThat(converter?.toTypeName).isEqualTo(date)
@@ -143,7 +141,7 @@
 
     @Test
     fun parametrizedTypeSpecific() {
-        val date = Date::class.asClassName()
+        val date = CommonTypeNames.DATE
         val list = CommonTypeNames.MUTABLE_LIST.parametrizedBy(STRING)
         val map = CommonTypeNames.MUTABLE_MAP.parametrizedBy(STRING, date)
         singleClass(createConverter(list, map)) { converter, _ ->
@@ -387,7 +385,7 @@
                 addAnnotation(
                     XAnnotationSpec.builder(
                         CodeLanguage.JAVA,
-                        TypeConverter::class.asClassName()
+                        RoomAnnotationTypeNames.TYPE_CONVERTER
                     ).build()
                 )
                 returns(to)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
index de17c33..8670e80 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
@@ -21,7 +21,6 @@
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XClassName
 import androidx.room.compiler.codegen.XTypeName
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.codegen.asMutableClassName
 import androidx.room.compiler.processing.XMethodElement
 import androidx.room.compiler.processing.XType
@@ -270,7 +269,7 @@
             val param = insertionUpsertion.parameters.first()
             assertThat(param.type.asTypeName())
                 .isEqualTo(
-                    java.util.Queue::class.asClassName().parametrizedBy(USER_TYPE_NAME)
+                    CommonTypeNames.QUEUE.parametrizedBy(USER_TYPE_NAME)
                 )
 
             assertThat(insertionUpsertion.entities.size).isEqualTo(1)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
index 768c1a1..51f7c99 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
@@ -22,7 +22,6 @@
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.XClassName
 import androidx.room.compiler.codegen.XTypeName
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XType
 import androidx.room.compiler.processing.XTypeElement
 import androidx.room.compiler.processing.util.Source
@@ -1539,7 +1538,7 @@
         ) { _, invocation ->
             invocation.assertCompilationResult {
                 hasErrorContaining(
-                    valueMayNeedMapInfo(String::class.asClassName().canonicalName)
+                    valueMayNeedMapInfo(CommonTypeNames.STRING.canonicalName)
                 )
             }
         }
@@ -1556,7 +1555,7 @@
         ) { _, invocation ->
             invocation.assertCompilationResult {
                 hasErrorContaining(
-                    valueMayNeedMapInfo(String::class.asClassName().canonicalName)
+                    valueMayNeedMapInfo(CommonTypeNames.STRING.canonicalName)
                 )
             }
         }
@@ -1572,7 +1571,7 @@
         ) { _, invocation ->
             invocation.assertCompilationResult {
                 hasErrorContaining(
-                    valueMayNeedMapInfo(String::class.asClassName().canonicalName)
+                    valueMayNeedMapInfo(CommonTypeNames.STRING.canonicalName)
                 )
             }
         }
@@ -1588,7 +1587,7 @@
         ) { _, invocation ->
             invocation.assertCompilationResult {
                 hasErrorContaining(
-                    valueMayNeedMapInfo(String::class.asClassName().canonicalName)
+                    valueMayNeedMapInfo(CommonTypeNames.STRING.canonicalName)
                 )
             }
         }
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
index d6d58c9..b8d94b3 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
@@ -21,11 +21,11 @@
 import androidx.room.RawQuery
 import androidx.room.compiler.codegen.XClassName
 import androidx.room.compiler.codegen.XTypeName
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XTypeElement
 import androidx.room.compiler.processing.util.Source
 import androidx.room.compiler.processing.util.XTestInvocation
 import androidx.room.compiler.processing.util.runProcessorTest
+import androidx.room.ext.CommonTypeNames
 import androidx.room.ext.GuavaUtilConcurrentTypeNames
 import androidx.room.ext.KotlinTypeNames
 import androidx.room.ext.LifecyclesTypeNames
@@ -424,7 +424,7 @@
             invocation.assertCompilationResult {
                 hasErrorContaining(
                     ProcessorErrors.valueMayNeedMapInfo(
-                        String::class.asClassName().canonicalName
+                        CommonTypeNames.STRING.canonicalName
                     )
                 )
             }
@@ -442,7 +442,7 @@
             invocation.assertCompilationResult {
                 hasErrorContaining(
                     ProcessorErrors.valueMayNeedMapInfo(
-                        String::class.asClassName().canonicalName
+                        CommonTypeNames.STRING.canonicalName
                     )
                 )
             }
@@ -460,7 +460,7 @@
             invocation.assertCompilationResult {
                 hasErrorContaining(
                     ProcessorErrors.valueMayNeedMapInfo(
-                        String::class.asClassName().canonicalName
+                        CommonTypeNames.STRING.canonicalName
                     )
                 )
             }
@@ -561,7 +561,7 @@
             invocation.assertCompilationResult {
                 hasErrorContaining(
                     ProcessorErrors.valueMayNeedMapInfo(
-                        String::class.asClassName().canonicalName
+                        CommonTypeNames.STRING.canonicalName
                     )
                 )
             }
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/solver/BasicColumnTypeAdaptersTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/solver/BasicColumnTypeAdaptersTest.kt
index e582e54..d36dbcc 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/solver/BasicColumnTypeAdaptersTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/solver/BasicColumnTypeAdaptersTest.kt
@@ -23,12 +23,12 @@
 import androidx.room.compiler.codegen.XPropertySpec
 import androidx.room.compiler.codegen.XTypeName
 import androidx.room.compiler.codegen.XTypeSpec
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XType
 import androidx.room.compiler.processing.util.XTestInvocation
 import androidx.room.compiler.processing.util.runProcessorTest
 import androidx.room.compiler.processing.writeTo
 import androidx.room.ext.AndroidTypeNames
+import androidx.room.ext.CommonTypeNames
 import androidx.room.processor.Context
 import androidx.room.vo.BuiltInConverterFlags
 import org.hamcrest.CoreMatchers.`is`
@@ -86,7 +86,7 @@
                     "out = crs.getDouble(9);"
                 ),
                 arrayOf(
-                    String::class.asClassName(),
+                    CommonTypeNames.STRING,
                     "st.bindString(6, inp);",
                     "out = crs.getString(9);"
                 ),
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
index 5033e65..f4ade0b 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
@@ -18,14 +18,8 @@
 
 package androidx.room.solver
 
-import androidx.room.Dao
-import androidx.room.Database
 import androidx.room.DatabaseProcessingStep
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-import androidx.room.Query
 import androidx.room.TypeConverter
-import androidx.room.TypeConverters
 import androidx.room.compiler.codegen.CodeLanguage
 import androidx.room.compiler.codegen.VisibilityModifier
 import androidx.room.compiler.codegen.XAnnotationSpec
@@ -35,11 +29,11 @@
 import androidx.room.compiler.codegen.XPropertySpec
 import androidx.room.compiler.codegen.XTypeName
 import androidx.room.compiler.codegen.XTypeSpec
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.util.CompilationResultSubject
 import androidx.room.compiler.processing.util.Source
 import androidx.room.compiler.processing.util.runProcessorTest
 import androidx.room.ext.CommonTypeNames
+import androidx.room.ext.RoomAnnotationTypeNames
 import androidx.room.ext.RoomTypeNames.ROOM_DB
 import androidx.room.processor.ProcessorErrors.CANNOT_BIND_QUERY_PARAMETER_INTO_STMT
 import org.junit.Test
@@ -288,7 +282,7 @@
         }
         return XTypeSpec.classBuilder(CodeLanguage.JAVA, ENTITY).apply {
             addAnnotation(
-                XAnnotationSpec.builder(CodeLanguage.JAVA, Entity::class.asClassName()).build()
+                XAnnotationSpec.builder(CodeLanguage.JAVA, RoomAnnotationTypeNames.ENTITY).build()
             )
             setVisibility(VisibilityModifier.PUBLIC)
             if (hasCustomField) {
@@ -319,7 +313,7 @@
                 ).addAnnotation(
                     XAnnotationSpec.builder(
                         CodeLanguage.JAVA,
-                        PrimaryKey::class.asClassName()
+                        RoomAnnotationTypeNames.PRIMARY_KEY
                     ).build()
                 ).build()
             )
@@ -348,7 +342,7 @@
                 ).addAnnotation(
                     XAnnotationSpec.builder(
                         CodeLanguage.JAVA,
-                        PrimaryKey::class.asClassName()
+                        RoomAnnotationTypeNames.PRIMARY_KEY
                     ).build()
                 ).build()
             )
@@ -367,7 +361,7 @@
             addAnnotation(
                 XAnnotationSpec.builder(
                     CodeLanguage.JAVA,
-                    Database::class.asClassName()
+                    RoomAnnotationTypeNames.DATABASE
                 ).apply {
                     addMember(
                         "entities",
@@ -420,7 +414,7 @@
             addAbstractModifier()
             addAnnotation(XAnnotationSpec.builder(
                 CodeLanguage.JAVA,
-                Dao::class.asClassName()
+                RoomAnnotationTypeNames.DAO
             ).build())
             setVisibility(VisibilityModifier.PUBLIC)
             if (hasConverters) {
@@ -436,7 +430,7 @@
                         addAbstractModifier()
                         addAnnotation(XAnnotationSpec.builder(
                             CodeLanguage.JAVA,
-                            Query::class.asClassName()
+                            RoomAnnotationTypeNames.QUERY
                         ).addMember(
                             "value",
                             XCodeBlock.of(
@@ -464,7 +458,7 @@
                         addAbstractModifier()
                         addAnnotation(XAnnotationSpec.builder(
                             CodeLanguage.JAVA,
-                            Query::class.asClassName()
+                            RoomAnnotationTypeNames.QUERY
                         ).addMember(
                             "value",
                             XCodeBlock.of(
@@ -500,7 +494,7 @@
         } else {
             CUSTOM_TYPE_CONVERTER
         }
-        return XAnnotationSpec.builder(CodeLanguage.JAVA, TypeConverters::class.asClassName())
+        return XAnnotationSpec.builder(CodeLanguage.JAVA, RoomAnnotationTypeNames.TYPE_CONVERTERS)
             .addMember("value", XCodeBlock.of(CodeLanguage.JAVA, "%T.class", converter)).build()
     }
 }
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
index 84d9666..558e6c0 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
@@ -22,7 +22,6 @@
 import androidx.room.Dao
 import androidx.room.compiler.codegen.XCodeBlock
 import androidx.room.compiler.codegen.XTypeName
-import androidx.room.compiler.codegen.asClassName
 import androidx.room.compiler.processing.XProcessingEnv
 import androidx.room.compiler.processing.XRawType
 import androidx.room.compiler.processing.isTypeElement
@@ -248,7 +247,7 @@
             )
             val uuid = invocation
                 .processingEnv
-                .requireType(UUID::class.asClassName())
+                .requireType(CommonTypeNames.UUID)
             val adapter = store.findColumnTypeAdapter(
                 out = uuid,
                 affinity = null,