~~ 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>