~~ clear scope session after fir2ir ~~
diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt
index 06cb683..66a37b7 100644
--- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt
+++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/pipeline/convertToIr.kt
@@ -252,6 +252,10 @@
pluginContext.applyIrGenerationExtensions(fir2IrConfiguration, mainIrFragment, irGeneratorExtensions)
+ for (storage in componentsStoragePerSourceSession.values) {
+ storage.scopeSession.clear()
+ }
+
return Fir2IrActualizedResult(mainIrFragment, componentsStorage, pluginContext, actualizationResult, irBuiltIns, symbolTable)
}
diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrLazyFakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrLazyFakeOverrideGenerator.kt
index d5da2e3..a6cbd87 100644
--- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrLazyFakeOverrideGenerator.kt
+++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrLazyFakeOverrideGenerator.kt
@@ -50,9 +50,7 @@
): List<Pair<FirNamedFunctionSymbol, ConeClassLikeLookupTag>> {
// When generating code for IDE debugger we may get an empty session and empty scope caches
// We work it around by forcing cache initialization
- if (c.configuration.allowNonCachedDeclarations) {
- klass.unsubstitutedScope().processFunctionsByName(originalFunction.name) {}
- }
+ klass.unsubstitutedScope().processFunctionsByName(originalFunction.name) {}
return computeFakeOverrideKeysImpl(
klass,
originalFunction,
@@ -73,9 +71,7 @@
originalProperty: FirPropertySymbol,
): List<Pair<FirPropertySymbol, ConeClassLikeLookupTag>> {
// Same reasoning as for `computeFakeOverrideKeys` for functions
- if (c.configuration.allowNonCachedDeclarations) {
- klass.unsubstitutedScope().processPropertiesByName(originalProperty.name) {}
- }
+ klass.unsubstitutedScope().processPropertiesByName(originalProperty.name) {}
return computeFakeOverrideKeysImpl(
klass,
originalProperty,
diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt
index e1ddf55..c904bdf 100644
--- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt
+++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt
@@ -21,6 +21,10 @@
build()
} as FS
}
+
+ fun clear() {
+ scopes.clear()
+ }
}
abstract class ScopeSessionKey<ID : Any, FS : Any>