From 283c762b8bf4bf41032dd962dfedb28714e46363 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 9 Jan 2018 19:01:35 +0900 Subject: [PATCH] Kapt: Remove laziness from diagnosticFactory and javacMessages, use factory from supertype (KT-22189) writeDiagnostic() may be invoked after the 'context' is cleared, and lazy implementations will fail. --- .../src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt index 8e184122611..dce369d4c77 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/javac/KaptJavaLog.kt @@ -42,11 +42,9 @@ class KaptJavaLog( warnWriter: PrintWriter, noticeWriter: PrintWriter, val interceptorData: DiagnosticInterceptorData -) : Log(context, errWriter, warnWriter, noticeWriter) { + ) : Log(context, errWriter, warnWriter, noticeWriter) { private val stubLineInfo = KaptStubLineInformation() - - private val diagnosticFactory by lazy { JCDiagnostic.Factory.instance(context) } - private val javacMessages by lazy { JavacMessages.instance(context) } + private val javacMessages = JavacMessages.instance(context) init { context.put(Log.outKey, noticeWriter) @@ -104,7 +102,7 @@ class KaptJavaLog( val kotlinFile = kotlinPosition?.let { getKotlinSourceFile(it) } if (kotlinPosition != null && kotlinFile != null) { val locationMessage = "$KOTLIN_LOCATION_PREFIX${kotlinFile.absolutePath}: (${kotlinPosition.line}, ${kotlinPosition.column})" - val locationDiagnostic = diagnosticFactory.note(null as DiagnosticSource?, null, "proc.messager", locationMessage) + val locationDiagnostic = diags.note(null as DiagnosticSource?, null, "proc.messager", locationMessage) val wrappedDiagnostic = JCDiagnostic.MultilineDiagnostic(diagnostic, JavacList.of(locationDiagnostic)) reportDiagnostic(wrappedDiagnostic)