diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt index 07fcda11551..c586a3e4e28 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt @@ -85,6 +85,8 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( resolver.resolveDesignation() } + + override val useCacheForImportScope: Boolean get() = true } private val transformer = FirCompilerRequiredAnnotationsResolveTransformer( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt index 4fd7a91778f..a9770a173fc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt @@ -391,7 +391,7 @@ abstract class AbstractFirSpecificAnnotationResolveTransformer( lateinit var scopes: List inline fun withFileScopes(file: FirFile, f: () -> T): T { - scopes = createImportingScopes(file, session, scopeSession, useCaching = false) + scopes = createImportingScopes(file, session, scopeSession, useCaching = computationSession.useCacheForImportScope) return f() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt index 162a46fc59f..e69cc07db16 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt @@ -136,6 +136,8 @@ open class CompilerRequiredAnnotationsComputationSession { return file in filesWithResolvedImports } + open val useCacheForImportScope: Boolean get() = false + fun recordThatImportsAreResolved(file: FirFile) { if (!filesWithResolvedImports.add(file)) { error("Imports are resolved twice")