diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt index a4393c00414..251922317dc 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt @@ -182,7 +182,7 @@ internal class KtFirScopeProvider( private fun convertToKtScope(firScope: FirScope): KtScope { return when (firScope) { - is FirAbstractSimpleImportingScope -> KtFirNonStarImportingScope(firScope, builder, token) + is FirAbstractSimpleImportingScope -> KtFirNonStarImportingScope(firScope, builder, token, analysisSession.rootModuleSession) is FirAbstractStarImportingScope -> KtFirStarImportingScope(firScope, builder, project, token) is FirPackageMemberScope -> KtFirPackageScope( firScope.fqName, diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt index cafee5d0e38..a31b6cc988c 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt @@ -5,26 +5,29 @@ package org.jetbrains.kotlin.analysis.api.fir.scopes -import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractSimpleImportingScope -import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultSimpleImportingScope import org.jetbrains.kotlin.analysis.api.ValidityTokenOwner -import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.analysis.api.fir.utils.cached -import org.jetbrains.kotlin.analysis.api.fir.utils.weakRef import org.jetbrains.kotlin.analysis.api.scopes.KtNonStarImportingScope import org.jetbrains.kotlin.analysis.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.analysis.api.scopes.NonStarImport import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtClassifierSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol +import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken import org.jetbrains.kotlin.analysis.api.withValidityAssertion +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.resolve.symbolProvider +import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractSimpleImportingScope +import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultSimpleImportingScope +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name internal class KtFirNonStarImportingScope( - private val firScope : FirAbstractSimpleImportingScope, + private val firScope: FirAbstractSimpleImportingScope, private val builder: KtSymbolByFirBuilder, - override val token: ValidityToken + override val token: ValidityToken, + private val firSession: FirSession ) : KtNonStarImportingScope, ValidityTokenOwner { @OptIn(ExperimentalStdlibApi::class) @@ -32,10 +35,15 @@ internal class KtFirNonStarImportingScope( buildList { firScope.simpleImports.values.forEach { imports -> imports.forEach { import -> + val importedClassId = import.importedName?.let { importedName -> + val importedClassId = + import.resolvedParentClassId?.createNestedClassId(importedName) ?: ClassId(import.packageFqName, importedName) + importedClassId.takeIf { firSession.symbolProvider.getClassLikeSymbolByClassId(it) != null } + } NonStarImport( import.packageFqName, - import.relativeParentClassName, - import.resolvedParentClassId, + importedClassId?.relativeClassName, + importedClassId, import.importedName ).let(::add) }