From 9a10976aabde69d6cb4d20857feee6fc405154b1 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Tue, 14 Jan 2020 16:28:35 -0500 Subject: [PATCH] Minor processor cleanups (#1070) * Share cachedClassInspector across all rounds * Don't proceed if previous round failed --- .../moshi/kotlin/codegen/JsonClassCodegenProcessor.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt index 114d21c..3c03a9c 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessor.kt @@ -71,6 +71,7 @@ class JsonClassCodegenProcessor : AbstractProcessor() { private lateinit var elements: Elements private lateinit var filer: Filer private lateinit var messager: Messager + private lateinit var cachedClassInspector: MoshiCachedClassInspector private val annotation = JsonClass::class.java private var generatedType: TypeElement? = null @@ -93,11 +94,15 @@ class JsonClassCodegenProcessor : AbstractProcessor() { this.elements = processingEnv.elementUtils this.filer = processingEnv.filer this.messager = processingEnv.messager + cachedClassInspector = MoshiCachedClassInspector(ElementsClassInspector.create(elements, types)) } override fun process(annotations: Set, roundEnv: RoundEnvironment): Boolean { - val classInspector = ElementsClassInspector.create(elements, types) - val cachedClassInspector = MoshiCachedClassInspector(classInspector) + if (roundEnv.errorRaised()) { + // An error was raised in the previous round. Don't try anything for now to avoid adding + // possible more noise. + return false + } for (type in roundEnv.getElementsAnnotatedWith(annotation)) { if (type !is TypeElement) { messager.printMessage(