File tree Expand file tree Collapse file tree 3 files changed +14
-9
lines changed
cli/src/org/jetbrains/kotlin/cli/common
frontend.common/src/org/jetbrains/kotlin/diagnostics Expand file tree Collapse file tree 3 files changed +14
-9
lines changed Original file line number Diff line number Diff line change @@ -26,10 +26,8 @@ import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
2626import org.jetbrains.kotlin.cli.common.messages.*
2727import org.jetbrains.kotlin.config.CompilerConfiguration
2828import org.jetbrains.kotlin.config.IncrementalCompilation
29- import org.jetbrains.kotlin.config.LanguageVersionSettings
3029import org.jetbrains.kotlin.config.languageVersionSettings
3130import org.jetbrains.kotlin.config.messageCollector
32- import org.jetbrains.kotlin.diagnostics.DiagnosticBaseContext
3331import org.jetbrains.kotlin.diagnostics.KtSourcelessDiagnosticFactory
3432import org.jetbrains.kotlin.fir.declarations.FirFile
3533import org.jetbrains.kotlin.fir.packageFqName
@@ -157,10 +155,6 @@ fun disposeRootInWriteAction(disposable: Disposable) {
157155}
158156
159157fun CompilerConfiguration.reportIfNeeded (factory : KtSourcelessDiagnosticFactory , message : String ) {
160- val diagnostic = factory.create(message, object : DiagnosticBaseContext {
161- override val languageVersionSettings: LanguageVersionSettings
162- get() = this @reportIfNeeded.languageVersionSettings
163-
164- }) ? : return
165- messageCollector.report(diagnostic.severity.toCompilerMessageSeverity(), message)
158+ val effectiveSeverity = factory.getEffectiveSeverity(languageVersionSettings) ? : return
159+ messageCollector.report(effectiveSeverity.toCompilerMessageSeverity(), message)
166160}
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ sealed class AbstractKtDiagnosticFactory(
2929 get() = rendererFactory.MAP [this ]
3030 ? : error(" Renderer is not found for factory $this inside ${rendererFactory.MAP .name} renderer map" )
3131
32- protected fun getEffectiveSeverity (languageVersionSettings : LanguageVersionSettings ): Severity ? {
32+ fun getEffectiveSeverity (languageVersionSettings : LanguageVersionSettings ): Severity ? {
3333 return when (languageVersionSettings.getFlag(AnalysisFlags .warningLevels)[name]) {
3434 WarningLevel .Error -> Severity .ERROR
3535 WarningLevel .Warning -> Severity .FIXED_WARNING
Original file line number Diff line number Diff line change 66package org.jetbrains.kotlin.diagnostics.impl
77
88import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
9+ import org.jetbrains.kotlin.diagnostics.DiagnosticBaseContext
910import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
1011import org.jetbrains.kotlin.diagnostics.KtDiagnostic
12+ import org.jetbrains.kotlin.diagnostics.KtSourcelessDiagnosticFactory
1113
1214abstract class BaseDiagnosticsCollector : DiagnosticReporter () {
1315 abstract val diagnostics: List <KtDiagnostic >
@@ -29,5 +31,14 @@ abstract class BaseDiagnosticsCollector : DiagnosticReporter() {
2931 fun reportError (message : String ) {
3032 report(message, CompilerMessageSeverity .ERROR )
3133 }
34+
35+ fun reportIfNeeded (
36+ factory : KtSourcelessDiagnosticFactory ,
37+ message : String ,
38+ context : DiagnosticBaseContext ,
39+ ) {
40+ val refinedSeverity = factory.getEffectiveSeverity(context.languageVersionSettings)?.toCompilerMessageSeverity() ? : return
41+ report(message, refinedSeverity)
42+ }
3243 }
3344}
You can’t perform that action at this time.
0 commit comments