Skip to content

Commit 07f4d3e

Browse files
committed
Disable checkers and platform checkers in header mode.
^KT-78422
1 parent c31fa02 commit 07f4d3e

File tree

7 files changed

+24
-17
lines changed

7 files changed

+24
-17
lines changed

compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/pipeline/web/WebFrontendPipelinePhase.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ object WebFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifact, W
129129
incrementalDataProvider = configuration.incrementalDataProvider,
130130
lookupTracker = lookupTracker,
131131
useWasmPlatform = isWasm,
132+
headerCompilationMode = configuration.headerCompilation
132133
)
133134
}
134135

@@ -152,6 +153,7 @@ object WebFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifact, W
152153
incrementalDataProvider: IncrementalDataProvider?,
153154
lookupTracker: LookupTracker?,
154155
useWasmPlatform: Boolean,
156+
headerCompilationMode: Boolean
155157
): AnalyzedFirWithPsiOutput {
156158
for (ktFile in ktFiles) {
157159
AnalyzerWithCompilerReport.reportSyntaxErrors(ktFile, diagnosticsReporter)
@@ -166,11 +168,11 @@ object WebFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifact, W
166168
isCommonSource = isCommonSourceForPsi,
167169
fileBelongsToModule = fileBelongsToModuleForPsi,
168170
buildResolveAndCheckFir = { session, files ->
169-
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter)
171+
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter, headerCompilationMode)
170172
},
171173
useWasmPlatform = useWasmPlatform,
172174
)
173-
output.runPlatformCheckers(diagnosticsReporter)
175+
output.runPlatformCheckers(diagnosticsReporter, headerCompilationMode)
174176
return AnalyzedFirWithPsiOutput(output, ktFiles)
175177
}
176178

@@ -201,7 +203,7 @@ object WebFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifact, W
201203
},
202204
useWasmPlatform = useWasmPlatform,
203205
)
204-
output.runPlatformCheckers(diagnosticsReporter)
206+
output.runPlatformCheckers(diagnosticsReporter, headerCompilationMode)
205207
return AnalyzedFirOutput(output)
206208
}
207209

compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/legacy/pipeline/jvmIncrementalCompilerPipelineLightTree.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ private fun FrontendContext.compileModuleToAnalyzedFirViaLightTreeIncrementally(
9999
val outputs = sessionsWithSources.map { (session, sources) ->
100100
buildResolveAndCheckFirViaLightTree(session, sources, diagnosticsReporter, configuration.headerCompilation, countFilesAndLines)
101101
}
102-
outputs.runPlatformCheckers(diagnosticsReporter)
102+
outputs.runPlatformCheckers(diagnosticsReporter, configuration.headerCompilation)
103103
FirResult(outputs)
104104
}
105105
}

compiler/cli/src/org/jetbrains/kotlin/cli/pipeline/jvm/JvmFrontendPipelinePhase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ object JvmFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifact, J
266266
true -> session.buildFirViaLightTree(sources, diagnosticsCollector, configuration.headerCompilation, countFilesAndLines)
267267
else -> session.buildFirFromKtFiles(sources.asKtFilesList())
268268
}
269-
resolveAndCheckFir(session, rawFirFiles, diagnosticsCollector)
269+
resolveAndCheckFir(session, rawFirFiles, diagnosticsCollector, configuration.headerCompilation)
270270
}
271-
outputs.runPlatformCheckers(diagnosticsCollector)
271+
outputs.runPlatformCheckers(diagnosticsCollector, configuration.headerCompilation)
272272

273273
val kotlinPackageUsageIsFine = when (configuration.useLightTree) {
274274
true -> outputs.all { checkKotlinPackageUsageForLightTree(configuration, it.fir) }

compiler/cli/src/org/jetbrains/kotlin/cli/pipeline/metadata/MetadataFrontendPipelinePhase.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ object MetadataFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifa
114114
val firFiles = session.buildFirViaLightTree(files, diagnosticsReporter, configuration.headerCompilation) { files, lines ->
115115
perfManager?.addSourcesStats(files, lines)
116116
}
117-
resolveAndCheckFir(session, firFiles, diagnosticsReporter)
117+
resolveAndCheckFir(session, firFiles, diagnosticsReporter, configuration.headerCompilation)
118118
}
119119
} else {
120120
val projectEnvironment = VfsBasedProjectEnvironment(
@@ -150,11 +150,11 @@ object MetadataFrontendPipelinePhase : PipelinePhase<ConfigurationPipelineArtifa
150150

151151
sessionsWithSources.map { (session, files) ->
152152
val firFiles = session.buildFirFromKtFiles(files)
153-
resolveAndCheckFir(session, firFiles, diagnosticsReporter)
153+
resolveAndCheckFir(session, firFiles, diagnosticsReporter, configuration.headerCompilation)
154154
}
155155
}
156156

157-
outputs.runPlatformCheckers(diagnosticsReporter)
157+
outputs.runPlatformCheckers(diagnosticsReporter, configuration.headerCompilation)
158158

159159
when (configuration.useLightTree) {
160160
true -> outputs.all { checkKotlinPackageUsageForLightTree(configuration, it.fir) }

compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ data class Fir2IrActualizedResult(
7676
val symbolTable: SymbolTable,
7777
)
7878

79-
fun List<ModuleCompilerAnalyzedOutput>.runPlatformCheckers(reporter: BaseDiagnosticsCollector) {
79+
fun List<ModuleCompilerAnalyzedOutput>.runPlatformCheckers(reporter: BaseDiagnosticsCollector, headerCompilationMode: Boolean) {
80+
if (headerCompilationMode) return
8081
val platformModule = this.last()
8182
val session = platformModule.session
8283
val scopeSession = platformModule.scopeSession

compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/firUtils.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ fun FirSession.buildFirFromKtFiles(ktFiles: Collection<KtFile>): List<FirFile> {
6060
fun buildResolveAndCheckFirFromKtFiles(
6161
session: FirSession,
6262
ktFiles: List<KtFile>,
63-
diagnosticsReporter: BaseDiagnosticsCollector
63+
diagnosticsReporter: BaseDiagnosticsCollector,
64+
headerCompilationMode: Boolean
6465
): ModuleCompilerAnalyzedOutput {
65-
return resolveAndCheckFir(session, session.buildFirFromKtFiles(ktFiles), diagnosticsReporter)
66+
return resolveAndCheckFir(session, session.buildFirFromKtFiles(ktFiles), diagnosticsReporter, headerCompilationMode)
6667
}
6768

6869
/**
@@ -72,10 +73,13 @@ fun buildResolveAndCheckFirFromKtFiles(
7273
fun resolveAndCheckFir(
7374
session: FirSession,
7475
firFiles: List<FirFile>,
75-
diagnosticsReporter: BaseDiagnosticsCollector
76+
diagnosticsReporter: BaseDiagnosticsCollector,
77+
headerCompilationMode: Boolean
7678
): ModuleCompilerAnalyzedOutput {
7779
val (scopeSession, fir) = session.runResolution(firFiles)
78-
session.runCheckers(scopeSession, fir, diagnosticsReporter, MppCheckerKind.Common)
80+
if (!headerCompilationMode) {
81+
session.runCheckers(scopeSession, fir, diagnosticsReporter, MppCheckerKind.Common)
82+
}
7983
return ModuleCompilerAnalyzedOutput(session, scopeSession, fir)
8084
}
8185

@@ -87,5 +91,5 @@ fun buildResolveAndCheckFirViaLightTree(
8791
countFilesAndLines: KFunction2<Int, Int, Unit>?
8892
): ModuleCompilerAnalyzedOutput {
8993
val firFiles = session.buildFirViaLightTree(ktFiles, diagnosticsReporter, headerCompilationMode, countFilesAndLines)
90-
return resolveAndCheckFir(session, firFiles, diagnosticsReporter)
94+
return resolveAndCheckFir(session, firFiles, diagnosticsReporter, headerCompilationMode)
9195
}

kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirFrontend.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ internal inline fun <F> PhaseContext.firFrontend(
7575
}
7676
}
7777

78-
outputs.runPlatformCheckers(diagnosticsReporter)
78+
outputs.runPlatformCheckers(diagnosticsReporter, configuration.headerCompilation)
7979

8080
FirDiagnosticsCompilerResultsReporter.reportToMessageCollector(diagnosticsReporter, messageCollector, renderDiagnosticNames)
8181
return if (syntaxErrors || diagnosticsReporter.hasErrors) {
@@ -100,7 +100,7 @@ internal fun PhaseContext.firFrontendWithPsi(input: KotlinCoreEnvironment): FirO
100100
isCommonSource = isCommonSourceForPsi,
101101
fileBelongsToModule = fileBelongsToModuleForPsi,
102102
buildResolveAndCheckFir = { session, files, diagnosticsReporter ->
103-
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter)
103+
buildResolveAndCheckFirFromKtFiles(session, files, diagnosticsReporter, configuration.headerCompilation)
104104
},
105105
)
106106
}

0 commit comments

Comments
 (0)