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>
<groupId>com.squareup</groupId>
<artifactId>kotlinpoet</artifactId>
<version>1.0.1</version>
<version>1.1.0</version>
</dependency>
<dependency>
<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.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()
}
}