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.
This commit is contained in:
@@ -42,11 +42,9 @@ class KaptJavaLog(
|
|||||||
warnWriter: PrintWriter,
|
warnWriter: PrintWriter,
|
||||||
noticeWriter: PrintWriter,
|
noticeWriter: PrintWriter,
|
||||||
val interceptorData: DiagnosticInterceptorData
|
val interceptorData: DiagnosticInterceptorData
|
||||||
) : Log(context, errWriter, warnWriter, noticeWriter) {
|
) : Log(context, errWriter, warnWriter, noticeWriter) {
|
||||||
private val stubLineInfo = KaptStubLineInformation()
|
private val stubLineInfo = KaptStubLineInformation()
|
||||||
|
private val javacMessages = JavacMessages.instance(context)
|
||||||
private val diagnosticFactory by lazy { JCDiagnostic.Factory.instance(context) }
|
|
||||||
private val javacMessages by lazy { JavacMessages.instance(context) }
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
context.put(Log.outKey, noticeWriter)
|
context.put(Log.outKey, noticeWriter)
|
||||||
@@ -104,7 +102,7 @@ class KaptJavaLog(
|
|||||||
val kotlinFile = kotlinPosition?.let { getKotlinSourceFile(it) }
|
val kotlinFile = kotlinPosition?.let { getKotlinSourceFile(it) }
|
||||||
if (kotlinPosition != null && kotlinFile != null) {
|
if (kotlinPosition != null && kotlinFile != null) {
|
||||||
val locationMessage = "$KOTLIN_LOCATION_PREFIX${kotlinFile.absolutePath}: (${kotlinPosition.line}, ${kotlinPosition.column})"
|
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))
|
val wrappedDiagnostic = JCDiagnostic.MultilineDiagnostic(diagnostic, JavacList.of(locationDiagnostic))
|
||||||
|
|
||||||
reportDiagnostic(wrappedDiagnostic)
|
reportDiagnostic(wrappedDiagnostic)
|
||||||
|
|||||||
Reference in New Issue
Block a user