Omit adapter field names now that we directly instantiate annotations (#1436)

This commit is contained in:
Zac Sweers
2021-11-30 16:23:47 -05:00
committed by GitHub
parent aaadbf4963
commit 4a6cfb4d58
3 changed files with 7 additions and 6 deletions

View File

@@ -270,8 +270,7 @@ public class AdapterGenerator(
uniqueAdapter.delegateKey.generateProperty(
nameAllocator,
typeRenderer,
moshiParam,
uniqueAdapter.name
moshiParam
)
)
}

View File

@@ -45,8 +45,7 @@ public data class DelegateKey(
internal fun generateProperty(
nameAllocator: NameAllocator,
typeRenderer: TypeRenderer,
moshiParameter: ParameterSpec,
propertyName: String
moshiParameter: ParameterSpec
): PropertySpec {
val qualifierNames = jsonQualifiers.joinToString("") {
"At${it.typeName.rawType().simpleName}"
@@ -68,10 +67,10 @@ public data class DelegateKey(
", setOf(%L)" to arrayOf(jsonQualifiers.map { it.asInstantiationExpression() }.joinToCode())
}
}
val finalArgs = arrayOf(*standardArgs, *args, propertyName)
val finalArgs = arrayOf(*standardArgs, *args)
return PropertySpec.builder(adapterName, adapterTypeName, KModifier.PRIVATE)
.initializer("%N.adapter(%L$initializerString, %S)", *finalArgs)
.initializer("%N.adapter(%L$initializerString)", *finalArgs)
.build()
}
}

View File

@@ -109,7 +109,10 @@ public final class Moshi {
/**
* @param fieldName An optional field name associated with this type. The field name is used as a
* hint for better adapter lookup error messages for nested structures.
* @deprecated this is no longer needed in Kotlin 1.6.0 (which has direct annotation
* instantiation) and should no longer be used.
*/
@Deprecated
@CheckReturnValue
@SuppressWarnings("unchecked") // Factories are required to return only matching JsonAdapters.
public <T> JsonAdapter<T> adapter(