diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/fir/FirDiagnosticsCompilerResultsReporter.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/fir/FirDiagnosticsCompilerResultsReporter.kt index 1bce081f94d..598bbf1963f 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/fir/FirDiagnosticsCompilerResultsReporter.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/fir/FirDiagnosticsCompilerResultsReporter.kt @@ -11,24 +11,29 @@ import org.jetbrains.kotlin.KtPsiSourceElement import org.jetbrains.kotlin.cli.common.messages.* import org.jetbrains.kotlin.diagnostics.* import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector +import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages import org.jetbrains.kotlin.diagnostics.rendering.RootDiagnosticRendererFactory import java.io.Closeable import java.io.File import java.io.InputStreamReader object FirDiagnosticsCompilerResultsReporter { - fun reportDiagnostics(diagnostics: Collection, reporter: MessageCollector): Boolean { + fun reportDiagnostics(diagnostics: Collection, reporter: MessageCollector, renderDiagnosticName: Boolean): Boolean { var hasErrors = false for (diagnostic in diagnostics.sortedWith(DiagnosticComparator)) { - hasErrors = reportDiagnostic(diagnostic, reporter) || hasErrors + hasErrors = reportDiagnostic(diagnostic, reporter, renderDiagnosticName) || hasErrors } reportSpecialErrors(diagnostics) return hasErrors } - fun reportToMessageCollector(diagnosticsCollector: BaseDiagnosticsCollector, messageCollector: MessageCollector): Boolean { + fun reportToMessageCollector( + diagnosticsCollector: BaseDiagnosticsCollector, + messageCollector: MessageCollector, + renderDiagnosticName: Boolean + ): Boolean { return reportByFile(diagnosticsCollector) { diagnostic, location -> - reportDiagnosticToMessageCollector(diagnostic, location, messageCollector) + reportDiagnosticToMessageCollector(diagnostic, location, messageCollector, renderDiagnosticName) } } @@ -85,10 +90,10 @@ object FirDiagnosticsCompilerResultsReporter { */ } - private fun reportDiagnostic(diagnostic: KtDiagnostic, reporter: MessageCollector): Boolean { + private fun reportDiagnostic(diagnostic: KtDiagnostic, reporter: MessageCollector, renderDiagnosticName: Boolean): Boolean { if (!diagnostic.isValid) return false diagnostic.location()?.let { - reportDiagnosticToMessageCollector(diagnostic, it, reporter) + reportDiagnosticToMessageCollector(diagnostic, it, reporter, renderDiagnosticName) } return diagnostic.severity == Severity.ERROR } @@ -96,11 +101,19 @@ object FirDiagnosticsCompilerResultsReporter { private fun reportDiagnosticToMessageCollector( diagnostic: KtDiagnostic, location: CompilerMessageSourceLocation, - reporter: MessageCollector + reporter: MessageCollector, + renderDiagnosticName: Boolean ) { val severity = AnalyzerWithCompilerReport.convertSeverity(diagnostic.severity) val renderer = RootDiagnosticRendererFactory(diagnostic) - reporter.report(severity, renderer.render(diagnostic), location) + + val message = renderer.render(diagnostic) + val textToRender = when (renderDiagnosticName) { + true -> "[${diagnostic.factoryName}] $message" + false -> message + } + + reporter.report(severity, textToRender, location) } private fun throwErrorDiagnosticAsException( diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt index 25e6a7d4f75..0b008159b3e 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt @@ -130,12 +130,14 @@ object FirKotlinToJvmBytecodeCompiler { if (!checkKotlinPackageUsage(moduleConfiguration, allSources)) return null + val renderDiagnosticNames = moduleConfiguration.getBoolean(CLIConfigurationKeys.RENDER_DIAGNOSTIC_INTERNAL_NAME) + val diagnosticsReporter = DiagnosticReporterFactory.createReporter() val firResult = runFrontend(allSources, diagnosticsReporter).also { performanceManager?.notifyAnalysisFinished() } if (firResult == null) { - FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector) + FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector, renderDiagnosticNames) return null } @@ -155,7 +157,7 @@ object FirKotlinToJvmBytecodeCompiler { diagnosticsReporter ) - FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector) + FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector, renderDiagnosticNames) performanceManager?.notifyIRGenerationFinished() performanceManager?.notifyGenerationFinished() diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index f3c933bf4e2..c81835747c2 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -403,7 +403,11 @@ object KotlinToJVMBytecodeCompiler { messageCollector, configuration.getBoolean(CLIConfigurationKeys.RENDER_DIAGNOSTIC_INTERNAL_NAME) ) - FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector) + FirDiagnosticsCompilerResultsReporter.reportToMessageCollector( + diagnosticsReporter, + messageCollector, + configuration.getBoolean(CLIConfigurationKeys.RENDER_DIAGNOSTIC_INTERNAL_NAME) + ) ProgressIndicatorAndCompilationCanceledStatus.checkCanceled() return state diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt index 684a9f6fe96..ec53a69757b 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt @@ -256,6 +256,10 @@ private fun generate( diagnosticsReporter ).build().also { KotlinCodegenFacade.compileCorrectFiles(it) - FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector) + FirDiagnosticsCompilerResultsReporter.reportToMessageCollector( + diagnosticsReporter, + messageCollector, + kotlinCompilerConfiguration.getBoolean(CLIConfigurationKeys.RENDER_DIAGNOSTIC_INTERNAL_NAME) + ) } }