diff --git a/kotlin/codegen/pom.xml b/kotlin/codegen/pom.xml index a34e33f..e58fe43 100644 --- a/kotlin/codegen/pom.xml +++ b/kotlin/codegen/pom.xml @@ -25,7 +25,7 @@ com.squareup kotlinpoet - 1.0.0-RC1 + 1.0.0-RC2 com.google.auto diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/AdapterGenerator.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/AdapterGenerator.kt index 2db1c1d..6937832 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/AdapterGenerator.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/AdapterGenerator.kt @@ -79,8 +79,9 @@ internal class AdapterGenerator( private val optionsProperty = PropertySpec.builder( nameAllocator.newName("options"), JsonReader.Options::class.asTypeName(), KModifier.PRIVATE) - .initializer("%T.of(${propertyList.joinToString(", ") { "\"${it.jsonName}\"" }})", - JsonReader.Options::class.asTypeName()) + .initializer("%T.of(${propertyList.joinToString(", ") { + CodeBlock.of("%S", it.jsonName).toString() + }})", JsonReader.Options::class.asTypeName()) .build() fun generateFile(generatedOption: TypeElement?): FileSpec { @@ -296,7 +297,7 @@ internal class AdapterGenerator( result.addStatement("%N.beginObject()", writerParam) propertyList.forEach { property -> - result.addStatement("%N.name(\"${property.jsonName}\")", writerParam) + result.addStatement("%N.name(%S)", writerParam, property.jsonName) result.addStatement("%N.toJson(%N, %N.%L)", nameAllocator.get(property.delegateKey), writerParam, valueParam, property.name) } 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 45e35a6..e9ef5f5 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 @@ -47,7 +47,7 @@ internal data class DelegateKey( propertyName: String ): PropertySpec { val qualifierNames = jsonQualifiers.joinToString("") { - "At${(it.type as ClassName).simpleName}" + "At${it.className.simpleName}" } val adapterName = nameAllocator.newName( "${type.toVariableName().decapitalize()}${qualifierNames}Adapter", this) diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TargetProperty.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TargetProperty.kt index 8f8d345..e14f608 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TargetProperty.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TargetProperty.kt @@ -157,7 +157,7 @@ internal data class TargetProperty( private val Element?.jsonName: String? get() { if (this == null) return null - return getAnnotation(Json::class.java)?.name?.replace("$", "\\$") + return getAnnotation(Json::class.java)?.name } private val AnnotationMirror.simpleName: Name diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TypeRenderer.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TypeRenderer.kt index 1beebb4..f78b3b8 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TypeRenderer.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/TypeRenderer.kt @@ -51,9 +51,9 @@ abstract class TypeRenderer { || typeName == INT.asNullable() || typeName == LONG.asNullable() || typeName == SHORT.asNullable()) { - return CodeBlock.of("%T::class.javaObjectType", typeName.asNonNullable()) + return CodeBlock.of("%T::class.javaObjectType", typeName.asNonNull()) } - return render(typeName.asNonNullable()) + return render(typeName.asNonNull()) } return when (typeName) {