Some miscellaneous kotlinpoet updates (#786)

* KotlinPoet 1.0.1

* Nix asNullableIf in favor of plain copy() function use

* Add a test for packages that look like classes

Resolves #783
This commit is contained in:
Zac Sweers
2019-01-13 07:18:00 -08:00
committed by Jesse Wilson
parent 3588c98b86
commit ded3bccc60
5 changed files with 17 additions and 12 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.0</version> <version>1.0.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.auto</groupId> <groupId>com.google.auto</groupId>

View File

@@ -35,18 +35,18 @@ open class TypeResolver {
is ParameterizedTypeName -> { is ParameterizedTypeName -> {
typeName.rawType.parameterizedBy(*(typeName.typeArguments.map { resolve(it) }.toTypedArray())) typeName.rawType.parameterizedBy(*(typeName.typeArguments.map { resolve(it) }.toTypedArray()))
.asNullableIf(typeName.isNullable) .copy(nullable = typeName.isNullable)
} }
is WildcardTypeName -> { is WildcardTypeName -> {
when { when {
typeName.inTypes.size == 1 -> { typeName.inTypes.size == 1 -> {
WildcardTypeName.consumerOf(resolve(typeName.inTypes[0])) WildcardTypeName.consumerOf(resolve(typeName.inTypes[0]))
.asNullableIf(typeName.isNullable) .copy(nullable = typeName.isNullable)
} }
typeName.outTypes.size == 1 -> { typeName.outTypes.size == 1 -> {
WildcardTypeName.producerOf(resolve(typeName.outTypes[0])) WildcardTypeName.producerOf(resolve(typeName.outTypes[0]))
.asNullableIf(typeName.isNullable) .copy(nullable = typeName.isNullable)
} }
else -> { else -> {
throw IllegalArgumentException( throw IllegalArgumentException(

View File

@@ -26,7 +26,3 @@ internal fun TypeName.rawType(): ClassName {
else -> throw IllegalArgumentException("Cannot get raw type from $this") else -> throw IllegalArgumentException("Cannot get raw type from $this")
} }
} }
internal fun TypeName.asNullableIf(condition: Boolean): TypeName {
return if (condition) copy(nullable = true) else this
}

View File

@@ -77,17 +77,17 @@ internal fun Type.asTypeName(
if (hasFlexibleUpperBound()) { if (hasFlexibleUpperBound()) {
return WildcardTypeName.producerOf( return WildcardTypeName.producerOf(
flexibleUpperBound.asTypeName(nameResolver, getTypeParameter, useAbbreviatedType)) flexibleUpperBound.asTypeName(nameResolver, getTypeParameter, useAbbreviatedType))
.asNullableIf(nullable) .copy(nullable = nullable)
} else if (hasOuterType()) { } else if (hasOuterType()) {
return WildcardTypeName.consumerOf( return WildcardTypeName.consumerOf(
outerType.asTypeName(nameResolver, getTypeParameter, useAbbreviatedType)) outerType.asTypeName(nameResolver, getTypeParameter, useAbbreviatedType))
.asNullableIf(nullable) .copy(nullable = nullable)
} }
val realType = when { val realType = when {
hasTypeParameter() -> return getTypeParameter(typeParameter) hasTypeParameter() -> return getTypeParameter(typeParameter)
.asTypeName(nameResolver, getTypeParameter, useAbbreviatedType) .asTypeName(nameResolver, getTypeParameter, useAbbreviatedType)
.asNullableIf(nullable) .copy(nullable = nullable)
hasTypeParameterName() -> typeParameterName hasTypeParameterName() -> typeParameterName
useAbbreviatedType && hasAbbreviatedType() -> abbreviatedType.typeAliasName useAbbreviatedType && hasAbbreviatedType() -> abbreviatedType.typeAliasName
else -> className else -> className
@@ -121,5 +121,5 @@ internal fun Type.asTypeName(
typeName = (typeName as ClassName).parameterizedBy(*remappedArgs) typeName = (typeName as ClassName).parameterizedBy(*remappedArgs)
} }
return typeName.asNullableIf(nullable) return typeName.copy(nullable = nullable)
} }

View File

@@ -0,0 +1,9 @@
package com.squareup.moshi.kotlin.codgen.LooksLikeAClass
import com.squareup.moshi.JsonClass
/**
* https://github.com/square/moshi/issues/783
*/
@JsonClass(generateAdapter = true)
data class ClassInPackageThatLooksLikeAClass(val foo: String)