[K2/N] Fix lost diagnostics
^KT-58065 Merge-request: KT-MR-10264 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
6b2da2069d
commit
4705207263
+5
-6
@@ -8,6 +8,7 @@ import org.jetbrains.kotlin.cli.common.fir.FirDiagnosticsCompilerResultsReporter
|
|||||||
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
|
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||||
|
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.pipeline.FirResult
|
import org.jetbrains.kotlin.fir.pipeline.FirResult
|
||||||
@@ -29,7 +30,7 @@ internal inline fun <F> PhaseContext.firFrontend(
|
|||||||
fileHasSyntaxErrors: (F) -> Boolean,
|
fileHasSyntaxErrors: (F) -> Boolean,
|
||||||
noinline isCommonSource: (F) -> Boolean,
|
noinline isCommonSource: (F) -> Boolean,
|
||||||
noinline fileBelongsToModule: (F, String) -> Boolean,
|
noinline fileBelongsToModule: (F, String) -> Boolean,
|
||||||
buildResolveAndCheckFir: (FirSession, List<F>) -> ModuleCompilerAnalyzedOutput,
|
buildResolveAndCheckFir: (FirSession, List<F>, BaseDiagnosticsCollector) -> ModuleCompilerAnalyzedOutput,
|
||||||
): FirOutput {
|
): FirOutput {
|
||||||
val configuration = input.configuration
|
val configuration = input.configuration
|
||||||
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
@@ -75,7 +76,7 @@ internal inline fun <F> PhaseContext.firFrontend(
|
|||||||
)
|
)
|
||||||
|
|
||||||
val outputs = sessionsWithSources.map { (session, sources) ->
|
val outputs = sessionsWithSources.map { (session, sources) ->
|
||||||
buildResolveAndCheckFir(session, sources).also {
|
buildResolveAndCheckFir(session, sources, diagnosticsReporter).also {
|
||||||
if (shouldPrintFiles()) {
|
if (shouldPrintFiles()) {
|
||||||
it.fir.forEach { file -> println(file.render()) }
|
it.fir.forEach { file -> println(file.render()) }
|
||||||
}
|
}
|
||||||
@@ -93,7 +94,6 @@ internal inline fun <F> PhaseContext.firFrontend(
|
|||||||
internal fun PhaseContext.firFrontendWithPsi(input: KotlinCoreEnvironment): FirOutput {
|
internal fun PhaseContext.firFrontendWithPsi(input: KotlinCoreEnvironment): FirOutput {
|
||||||
val configuration = input.configuration
|
val configuration = input.configuration
|
||||||
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
val diagnosticsReporter = DiagnosticReporterFactory.createPendingReporter()
|
|
||||||
// FIR
|
// FIR
|
||||||
|
|
||||||
val ktFiles = input.getSourceFiles()
|
val ktFiles = input.getSourceFiles()
|
||||||
@@ -105,7 +105,7 @@ internal fun PhaseContext.firFrontendWithPsi(input: KotlinCoreEnvironment): FirO
|
|||||||
},
|
},
|
||||||
isCommonSource = isCommonSourceForPsi,
|
isCommonSource = isCommonSourceForPsi,
|
||||||
fileBelongsToModule = fileBelongsToModuleForPsi,
|
fileBelongsToModule = fileBelongsToModuleForPsi,
|
||||||
buildResolveAndCheckFir = { session, files ->
|
buildResolveAndCheckFir = { session, files, diagnosticsReporter ->
|
||||||
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter)
|
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -114,7 +114,6 @@ internal fun PhaseContext.firFrontendWithPsi(input: KotlinCoreEnvironment): FirO
|
|||||||
internal fun PhaseContext.firFrontendWithLightTree(input: KotlinCoreEnvironment): FirOutput {
|
internal fun PhaseContext.firFrontendWithLightTree(input: KotlinCoreEnvironment): FirOutput {
|
||||||
val configuration = input.configuration
|
val configuration = input.configuration
|
||||||
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
val diagnosticsReporter = DiagnosticReporterFactory.createPendingReporter()
|
|
||||||
// FIR
|
// FIR
|
||||||
|
|
||||||
val groupedSources = collectSources(configuration, input.project, messageCollector)
|
val groupedSources = collectSources(configuration, input.project, messageCollector)
|
||||||
@@ -130,7 +129,7 @@ internal fun PhaseContext.firFrontendWithLightTree(input: KotlinCoreEnvironment)
|
|||||||
fileHasSyntaxErrors = { false },
|
fileHasSyntaxErrors = { false },
|
||||||
isCommonSource = { groupedSources.isCommonSourceForLt(it) },
|
isCommonSource = { groupedSources.isCommonSourceForLt(it) },
|
||||||
fileBelongsToModule = { file, it -> groupedSources.fileBelongsToModuleForLt(file, it) },
|
fileBelongsToModule = { file, it -> groupedSources.fileBelongsToModuleForLt(file, it) },
|
||||||
buildResolveAndCheckFir = { session, files ->
|
buildResolveAndCheckFir = { session, files, diagnosticsReporter ->
|
||||||
buildResolveAndCheckFirViaLightTree(session, files, diagnosticsReporter, null)
|
buildResolveAndCheckFirViaLightTree(session, files, diagnosticsReporter, null)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user