mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[build scripts] Preserve source information in all compiler messages instead of just errors
This change leads to logging more detailed compiler warnings during IJ monorepo compilation. The Kotlin team requires this information to more accurately estimate impact of breaking language changes. KQA-1867 GitOrigin-RevId: 98949b521c1c0d3f8fe9bf020c5ab2d6ad02038e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
230e228215
commit
e85862e20c
+23
-26
@@ -88,34 +88,11 @@ internal class JpsMessageHandler(private val context: CompilationContext, privat
|
||||
private var progress = -1.0f
|
||||
|
||||
override fun processMessage(message: BuildMessage): Unit = TeamCityBuildMessageLogger.withFlow(span) {
|
||||
val text = message.messageText
|
||||
val text = if (message is CompilerMessage) message.compilerMessageText else message.messageText
|
||||
when (message.kind) {
|
||||
BuildMessage.Kind.ERROR, BuildMessage.Kind.INTERNAL_BUILDER_ERROR -> {
|
||||
val compilerName: String
|
||||
val messageText: String
|
||||
if (message is CompilerMessage) {
|
||||
compilerName = message.compilerName
|
||||
val sourcePath = message.sourcePath
|
||||
messageText = buildString {
|
||||
if (sourcePath != null) {
|
||||
append(sourcePath)
|
||||
if (message.line != -1L) {
|
||||
append(':').append(message.line)
|
||||
}
|
||||
appendLine(':')
|
||||
}
|
||||
append(text)
|
||||
val moduleNames = message.moduleNames
|
||||
if (moduleNames.any()) {
|
||||
append(moduleNames.joinToString(prefix = " (", postfix = ")"))
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
compilerName = ""
|
||||
messageText = text
|
||||
}
|
||||
errorMessagesByCompiler.computeIfAbsent(compilerName) { CopyOnWriteArrayList() }.add(messageText)
|
||||
val compilerName: String = if (message is CompilerMessage) message.compilerName else ""
|
||||
errorMessagesByCompiler.computeIfAbsent(compilerName) { CopyOnWriteArrayList() }.add(text)
|
||||
}
|
||||
BuildMessage.Kind.WARNING -> context.messages.warning(text)
|
||||
BuildMessage.Kind.INFO, BuildMessage.Kind.JPS_INFO -> if (message is BuilderStatisticsMessage) {
|
||||
@@ -185,6 +162,26 @@ internal class JpsMessageHandler(private val context: CompilationContext, privat
|
||||
}
|
||||
}
|
||||
|
||||
private val CompilerMessage.compilerMessageText: String get() {
|
||||
return buildString {
|
||||
if (sourcePath != null) {
|
||||
append(sourcePath)
|
||||
if (line != -1L) {
|
||||
append(':').append(line)
|
||||
}
|
||||
if (column != -1L) {
|
||||
append(':').append(column)
|
||||
}
|
||||
appendLine(':')
|
||||
}
|
||||
append(messageText)
|
||||
if (moduleNames.any()) {
|
||||
appendLine()
|
||||
append(moduleNames.joinToString(prefix = "(JPS module: ", postfix = ")"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun reportProgress(targets: Collection<BuildTarget<*>>, targetSpecificMessage: String) {
|
||||
val targetsString = targets.joinToString(separator = ", ") { Introspector.decapitalize(it.presentableName) }
|
||||
val progressText = if (progress >= 0) " (${(100 * progress).toInt()}%)" else ""
|
||||
|
||||
Reference in New Issue
Block a user