[FIR] Pass all FirFiles to FirGlobalResolveProcessor.process

This commit is contained in:
Dmitriy Novozhilov
2021-02-04 11:38:12 +03:00
parent 38437fb036
commit c8f9cc33ef
6 changed files with 10 additions and 10 deletions
@@ -16,7 +16,7 @@ annotation class AdapterForResolveProcessor
sealed class FirResolveProcessor(val session: FirSession, val scopeSession: ScopeSession) sealed class FirResolveProcessor(val session: FirSession, val scopeSession: ScopeSession)
abstract class FirGlobalResolveProcessor(session: FirSession, scopeSession: ScopeSession) : FirResolveProcessor(session, scopeSession) { abstract class FirGlobalResolveProcessor(session: FirSession, scopeSession: ScopeSession) : FirResolveProcessor(session, scopeSession) {
abstract fun process() abstract fun process(files: Collection<FirFile>)
} }
abstract class FirTransformerBasedResolveProcessor( abstract class FirTransformerBasedResolveProcessor(
@@ -28,4 +28,4 @@ abstract class FirTransformerBasedResolveProcessor(
fun processFile(file: FirFile) { fun processFile(file: FirFile) {
file.transform<FirFile, Nothing?>(transformer, null) file.transform<FirFile, Nothing?>(transformer, null)
} }
} }
@@ -24,7 +24,7 @@ class FirTotalResolveProcessor(session: FirSession) {
} }
} }
is FirGlobalResolveProcessor -> { is FirGlobalResolveProcessor -> {
processor.process() processor.process(files)
} }
} }
} }
@@ -20,7 +20,7 @@ class FirGlobalClassGenerationProcessor(
session: FirSession, session: FirSession,
scopeSession: ScopeSession scopeSession: ScopeSession
) : FirGlobalResolveProcessor(session, scopeSession) { ) : FirGlobalResolveProcessor(session, scopeSession) {
override fun process() { override fun process(files: Collection<FirFile>) {
val extensions = session.extensionService.declarationGenerators val extensions = session.extensionService.declarationGenerators
if (extensions.isEmpty()) return if (extensions.isEmpty()) return
val provider = session.predicateBasedProvider val provider = session.predicateBasedProvider
@@ -24,7 +24,7 @@ class FirGlobalExtensionStatusProcessor(
session: FirSession, session: FirSession,
scopeSession: ScopeSession scopeSession: ScopeSession
) : FirGlobalResolveProcessor(session, scopeSession) { ) : FirGlobalResolveProcessor(session, scopeSession) {
override fun process() { override fun process(files: Collection<FirFile>) {
val extensions = session.extensionService.statusTransformerExtensions val extensions = session.extensionService.statusTransformerExtensions
if (extensions.isEmpty()) return if (extensions.isEmpty()) return
val provider = session.predicateBasedProvider val provider = session.predicateBasedProvider
@@ -26,7 +26,7 @@ class FirGlobalNewMemberGenerationProcessor(
private val index = session.generatedClassIndex private val index = session.generatedClassIndex
private val provider = session.predicateBasedProvider private val provider = session.predicateBasedProvider
override fun process() { override fun process(files: Collection<FirFile>) {
val extensions = session.extensionService.declarationGenerators val extensions = session.extensionService.declarationGenerators
if (extensions.isEmpty()) return if (extensions.isEmpty()) return
for (extension in extensions) { for (extension in extensions) {
@@ -64,4 +64,4 @@ class FirGlobalNewMemberGenerationProcessor(
} }
} }
} }
} }
@@ -159,7 +159,7 @@ class FirResolveBench(val withProgress: Boolean) {
private fun runStage(processor: FirResolveProcessor, firFileSequence: Sequence<FirFile>) { private fun runStage(processor: FirResolveProcessor, firFileSequence: Sequence<FirFile>) {
when (processor) { when (processor) {
is FirTransformerBasedResolveProcessor -> runStage(processor, firFileSequence) is FirTransformerBasedResolveProcessor -> runStage(processor, firFileSequence)
is FirGlobalResolveProcessor -> runStage(processor) is FirGlobalResolveProcessor -> runStage(processor, firFileSequence.toList())
} }
} }
@@ -182,10 +182,10 @@ class FirResolveBench(val withProgress: Boolean) {
} }
} }
private fun runStage(processor: FirGlobalResolveProcessor) { private fun runStage(processor: FirGlobalResolveProcessor, firFiles: List<FirFile>) {
processWithTimeMeasure( processWithTimeMeasure(
processor::class, processor::class,
{ processor.process() } { processor.process(firFiles) }
) { e -> ) { e ->
val message = "Fail on stage ${processor::class}" val message = "Fail on stage ${processor::class}"
println(message) println(message)