From d527b00dfcecea0b6756b32a64024858cb357c4f Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 6 Jun 2022 12:37:38 +0300 Subject: [PATCH] [FIR] Create generated declared scope only for classes from sources and plugins --- .../impl/FirDeclaredMemberScopeProvider.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt index f878656cd11..29ad8c8a239 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.utils.addToStdlib.runIf @ThreadSafeMutableState class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessionComponent { @@ -52,8 +53,9 @@ class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessio existingNames: List?, symbolProvider: FirSymbolProvider? ): FirContainingNamesAwareScope { + val origin = klass.origin return when { - klass.origin.generated -> { + origin.generated -> { FirGeneratedClassDeclaredMemberScope.create( useSiteSession, MemberGenerationContext(klass.symbol, declaredMemberScope = null), @@ -68,11 +70,13 @@ class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessio existingNames, symbolProvider ) - val generatedScope = FirGeneratedClassDeclaredMemberScope.create( - useSiteSession, - MemberGenerationContext(klass.symbol, baseScope), - needNestedClassifierScope = false - ) + val generatedScope = runIf(origin.fromSource || origin.generated) { + FirGeneratedClassDeclaredMemberScope.create( + useSiteSession, + MemberGenerationContext(klass.symbol, baseScope), + needNestedClassifierScope = false + ) + } if (generatedScope != null) { FirNameAwareCompositeScope(listOf(baseScope, generatedScope)) } else {