Use KotlinPoet's MemberName for emptySet import. (#818)

* Update to KotlinPoet 1.1.0.

* Use KotlinPoet's MemberName for emptySet import.
This commit is contained in:
Eric Cochran
2019-03-14 02:57:08 -07:00
committed by Zac Sweers
parent be6f3eb2af
commit 3e848c0cdd
2 changed files with 6 additions and 8 deletions

View File

@@ -25,7 +25,7 @@
<dependency> <dependency>
<groupId>com.squareup</groupId> <groupId>com.squareup</groupId>
<artifactId>kotlinpoet</artifactId> <artifactId>kotlinpoet</artifactId>
<version>1.0.1</version> <version>1.1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.auto</groupId> <groupId>com.google.auto</groupId>

View File

@@ -19,6 +19,7 @@ import com.squareup.kotlinpoet.AnnotationSpec
import com.squareup.kotlinpoet.ClassName import com.squareup.kotlinpoet.ClassName
import com.squareup.kotlinpoet.CodeBlock import com.squareup.kotlinpoet.CodeBlock
import com.squareup.kotlinpoet.KModifier import com.squareup.kotlinpoet.KModifier
import com.squareup.kotlinpoet.MemberName
import com.squareup.kotlinpoet.NameAllocator import com.squareup.kotlinpoet.NameAllocator
import com.squareup.kotlinpoet.ParameterSpec import com.squareup.kotlinpoet.ParameterSpec
import com.squareup.kotlinpoet.ParameterizedTypeName import com.squareup.kotlinpoet.ParameterizedTypeName
@@ -56,21 +57,18 @@ internal data class DelegateKey(
val standardArgs = arrayOf(moshiParameter, val standardArgs = arrayOf(moshiParameter,
CodeBlock.of("<%T>", type), CodeBlock.of("<%T>", type),
typeRenderer.render(type)) typeRenderer.render(type))
var standardArgsSize = standardArgs.size
val (initializerString, args) = when { val (initializerString, args) = when {
// TODO: Reference top-level function emptySet(). jsonQualifiers.isEmpty() -> ", %M()" to arrayOf(MemberName("kotlin.collections", "emptySet"))
// TODO: https://github.com/square/kotlinpoet/issues/433/
jsonQualifiers.isEmpty() -> ", kotlin.collections.emptySet()" to emptyArray()
else -> { else -> {
", %${++standardArgsSize}T.getFieldJsonQualifierAnnotations(javaClass, " + ", %T.getFieldJsonQualifierAnnotations(javaClass, " +
"%${++standardArgsSize}S)" to arrayOf(Types::class.asTypeName(), adapterName) "%S)" to arrayOf(Types::class.asTypeName(), adapterName)
} }
} }
val finalArgs = arrayOf(*standardArgs, *args, propertyName) val finalArgs = arrayOf(*standardArgs, *args, propertyName)
return PropertySpec.builder(adapterName, adapterTypeName, KModifier.PRIVATE) return PropertySpec.builder(adapterName, adapterTypeName, KModifier.PRIVATE)
.addAnnotations(jsonQualifiers) .addAnnotations(jsonQualifiers)
.initializer("%1N.adapter%2L(%3L$initializerString, %${++standardArgsSize}S)", *finalArgs) .initializer("%N.adapter%L(%L$initializerString, %S)", *finalArgs)
.build() .build()
} }
} }