From 5ce092857acb1e66e3142736c3ee34b5acce15ed Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Sun, 4 Oct 2020 18:03:45 -0400 Subject: [PATCH] Fix some misc deprecated KotlinPoet APIs (#1249) * Move off of deprecated AnnotationSpec.className * Simplify generatedType check and avoid deprecated KP API --- .../codegen/JsonClassCodegenProcessor.kt | 20 +++++++++---------- .../kotlin/codegen/api/AdapterGenerator.kt | 2 +- .../moshi/kotlin/codegen/api/DelegateKey.kt | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt index 344582453..e3d2e4762 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt @@ -17,7 +17,7 @@ package com.squareup.moshi.kotlin.codegen import com.google.auto.service.AutoService import com.squareup.kotlinpoet.AnnotationSpec -import com.squareup.kotlinpoet.asClassName +import com.squareup.kotlinpoet.ClassName import com.squareup.kotlinpoet.classinspector.elements.ElementsClassInspector import com.squareup.moshi.JsonClass import com.squareup.moshi.kotlin.codegen.api.AdapterGenerator @@ -59,10 +59,10 @@ class JsonClassCodegenProcessor : AbstractProcessor() { * * `"javax.annotation.Generated"` (JRE <9) */ const val OPTION_GENERATED = "moshi.generated" - private val POSSIBLE_GENERATED_NAMES = setOf( - "javax.annotation.processing.Generated", - "javax.annotation.Generated" - ) + private val POSSIBLE_GENERATED_NAMES = arrayOf( + ClassName("javax.annotation.processing", "Generated"), + ClassName("javax.annotation", "Generated") + ).associateBy { it.canonicalName } } private lateinit var types: Types @@ -71,7 +71,7 @@ class JsonClassCodegenProcessor : AbstractProcessor() { private lateinit var messager: Messager private lateinit var cachedClassInspector: MoshiCachedClassInspector private val annotation = JsonClass::class.java - private var generatedType: TypeElement? = null + private var generatedType: ClassName? = null override fun getSupportedAnnotationTypes() = setOf(annotation.canonicalName) @@ -82,11 +82,10 @@ class JsonClassCodegenProcessor : AbstractProcessor() { override fun init(processingEnv: ProcessingEnvironment) { super.init(processingEnv) generatedType = processingEnv.options[OPTION_GENERATED]?.let { - require(it in POSSIBLE_GENERATED_NAMES) { + POSSIBLE_GENERATED_NAMES[it] ?: error( "Invalid option value for $OPTION_GENERATED. Found $it, " + "allowable values are $POSSIBLE_GENERATED_NAMES." - } - processingEnv.elementUtils.getTypeElement(it) + ) } this.types = processingEnv.typeUtils this.elements = processingEnv.elementUtils @@ -117,7 +116,8 @@ class JsonClassCodegenProcessor : AbstractProcessor() { .prepare { spec -> spec.toBuilder() .apply { - generatedType?.asClassName()?.let { generatedClassName -> + @Suppress("DEPRECATION") // This is a Java type + generatedType?.let { generatedClassName -> addAnnotation( AnnotationSpec.builder(generatedClassName) .addMember( diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt index 5eec3be0d..081d1a9f7 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt @@ -178,7 +178,7 @@ internal class AdapterGenerator( .mapTo(mutableSetOf()) { prop -> QualifierAdapterProperty( name = prop.name, - qualifiers = prop.annotations.mapTo(mutableSetOf()) { it.className } + qualifiers = prop.annotations.mapTo(mutableSetOf()) { it.typeName.rawType() } ) } diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/DelegateKey.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/DelegateKey.kt index 0f8809883..783852604 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/DelegateKey.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/DelegateKey.kt @@ -47,7 +47,7 @@ internal data class DelegateKey( propertyName: String ): PropertySpec { val qualifierNames = jsonQualifiers.joinToString("") { - "At${it.className.simpleName}" + "At${it.typeName.rawType().simpleName}" } val adapterName = nameAllocator.newName( "${type.toVariableName().decapitalize()}${qualifierNames}Adapter",