mirror of
https://github.com/fankes/moshi.git
synced 2025-10-18 23:49:21 +08:00
test case and possible fix for messaging when type resolution fails due to invalid syntax of a generic property (#1527)
This commit is contained in:
@@ -87,9 +87,9 @@ private class JsonClassSymbolProcessor(
|
|||||||
|
|
||||||
if (!jsonClassAnnotation.generateAdapter) continue
|
if (!jsonClassAnnotation.generateAdapter) continue
|
||||||
|
|
||||||
val originatingFile = type.containingFile!!
|
|
||||||
val adapterGenerator = adapterGenerator(logger, resolver, type) ?: return emptyList()
|
|
||||||
try {
|
try {
|
||||||
|
val originatingFile = type.containingFile!!
|
||||||
|
val adapterGenerator = adapterGenerator(logger, resolver, type) ?: return emptyList()
|
||||||
val preparedAdapter = adapterGenerator
|
val preparedAdapter = adapterGenerator
|
||||||
.prepare(generateProguardRules) { spec ->
|
.prepare(generateProguardRules) { spec ->
|
||||||
spec.toBuilder()
|
spec.toBuilder()
|
||||||
|
@@ -538,6 +538,24 @@ class JsonClassSymbolProcessorTest {
|
|||||||
assertThat(result.messages).contains("JsonQualifier @UpperCase must have RUNTIME retention")
|
assertThat(result.messages).contains("JsonQualifier @UpperCase must have RUNTIME retention")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun invalidGenericSyntaxErrorMessaging() {
|
||||||
|
val result = compile(
|
||||||
|
kotlin(
|
||||||
|
"source.kt",
|
||||||
|
"""
|
||||||
|
package test
|
||||||
|
import com.squareup.moshi.JsonClass
|
||||||
|
|
||||||
|
@JsonClass(generateAdapter = true)
|
||||||
|
data class ElementEnvelope(val elements: List)
|
||||||
|
""",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assertThat(result.exitCode).isEqualTo(KotlinCompilation.ExitCode.COMPILATION_ERROR)
|
||||||
|
assertThat(result.messages).contains("Error preparing ElementEnvelope")
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `TypeAliases with the same backing type should share the same adapter`() {
|
fun `TypeAliases with the same backing type should share the same adapter`() {
|
||||||
val result = compile(
|
val result = compile(
|
||||||
|
Reference in New Issue
Block a user