From 3e848c0cdd6d9c9cf962ab92eae6555dc956456a Mon Sep 17 00:00:00 2001 From: Eric Cochran Date: Thu, 14 Mar 2019 02:57:08 -0700 Subject: [PATCH] Use KotlinPoet's MemberName for emptySet import. (#818) * Update to KotlinPoet 1.1.0. * Use KotlinPoet's MemberName for emptySet import. --- kotlin/codegen/pom.xml | 2 +- .../com/squareup/moshi/kotlin/codegen/DelegateKey.kt | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kotlin/codegen/pom.xml b/kotlin/codegen/pom.xml index f80ace2..736f8ce 100644 --- a/kotlin/codegen/pom.xml +++ b/kotlin/codegen/pom.xml @@ -25,7 +25,7 @@ com.squareup kotlinpoet - 1.0.1 + 1.1.0 com.google.auto diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/DelegateKey.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/DelegateKey.kt index bc0a1ed..d9b9061 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/DelegateKey.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/DelegateKey.kt @@ -19,6 +19,7 @@ import com.squareup.kotlinpoet.AnnotationSpec import com.squareup.kotlinpoet.ClassName import com.squareup.kotlinpoet.CodeBlock import com.squareup.kotlinpoet.KModifier +import com.squareup.kotlinpoet.MemberName import com.squareup.kotlinpoet.NameAllocator import com.squareup.kotlinpoet.ParameterSpec import com.squareup.kotlinpoet.ParameterizedTypeName @@ -56,21 +57,18 @@ internal data class DelegateKey( val standardArgs = arrayOf(moshiParameter, CodeBlock.of("<%T>", type), typeRenderer.render(type)) - var standardArgsSize = standardArgs.size val (initializerString, args) = when { - // TODO: Reference top-level function emptySet(). - // TODO: https://github.com/square/kotlinpoet/issues/433/ - jsonQualifiers.isEmpty() -> ", kotlin.collections.emptySet()" to emptyArray() + jsonQualifiers.isEmpty() -> ", %M()" to arrayOf(MemberName("kotlin.collections", "emptySet")) else -> { - ", %${++standardArgsSize}T.getFieldJsonQualifierAnnotations(javaClass, " + - "%${++standardArgsSize}S)" to arrayOf(Types::class.asTypeName(), adapterName) + ", %T.getFieldJsonQualifierAnnotations(javaClass, " + + "%S)" to arrayOf(Types::class.asTypeName(), adapterName) } } val finalArgs = arrayOf(*standardArgs, *args, propertyName) return PropertySpec.builder(adapterName, adapterTypeName, KModifier.PRIVATE) .addAnnotations(jsonQualifiers) - .initializer("%1N.adapter%2L(%3L$initializerString, %${++standardArgsSize}S)", *finalArgs) + .initializer("%N.adapter%L(%L$initializerString, %S)", *finalArgs) .build() } }