diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedDeserializedSymbolProviderFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedDeserializedSymbolProviderFactory.kt index ddfbc3f5a80..1e37eb9287f 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedDeserializedSymbolProviderFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedDeserializedSymbolProviderFactory.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.stubBased.deserialization +import com.intellij.ide.highlighter.JavaClassFileType import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.DelegatingGlobalSearchScope @@ -20,7 +21,6 @@ import org.jetbrains.kotlin.fir.java.FirJavaFacade import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.load.kotlin.PackagePartProvider -import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol @LLFirInternals class JvmStubBasedDeserializedSymbolProviderFactory : JvmFirDeserializedSymbolProviderFactory() { @@ -47,7 +47,7 @@ class JvmStubBasedDeserializedSymbolProviderFactory : JvmFirDeserializedSymbolPr project, object : DelegatingGlobalSearchScope(project, scope) { override fun contains(file: VirtualFile): Boolean { - if (file.extension == BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION) { + if (file.extension != JavaClassFileType.INSTANCE.defaultExtension) { return false } return super.contains(file) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedFirDeserializedSymbolProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedFirDeserializedSymbolProvider.kt index 8e0fc40a31b..0d037bb0043 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedFirDeserializedSymbolProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/JvmStubBasedFirDeserializedSymbolProvider.kt @@ -81,7 +81,7 @@ internal open class JvmStubBasedFirDeserializedSymbolProvider( context: StubBasedFirDeserializationContext?, ): Pair { val classLikeDeclaration = - (context?.classLikeDeclaration ?: declarationProvider.getClassLikeDeclarationByClassId(classId))?.originalElement + (context?.classLikeDeclaration ?: declarationProvider.getClassLikeDeclarationByClassId(classId)) if (classLikeDeclaration is KtTypeAlias) { val symbol = FirTypeAliasSymbol(classId) val postProcessor: DeserializedTypeAliasPostProcessor = { @@ -106,9 +106,9 @@ internal open class JvmStubBasedFirDeserializedSymbolProvider( ): FirRegularClassSymbol? { val (classLikeDeclaration, context) = if (parentContext?.classLikeDeclaration != null) { - parentContext.classLikeDeclaration.originalElement to null + parentContext.classLikeDeclaration to null } else { - (declarationProvider.getClassLikeDeclarationByClassId(classId)?.originalElement ?: return null) to parentContext + (declarationProvider.getClassLikeDeclarationByClassId(classId) ?: return null) to parentContext } val symbol = FirRegularClassSymbol(classId) @@ -140,12 +140,9 @@ internal open class JvmStubBasedFirDeserializedSymbolProvider( foundFunctions: Collection?, ): List { val topLevelFunctions = foundFunctions ?: declarationProvider.getTopLevelFunctions(callableId) - val origins = if (topLevelFunctions.size > 1) mutableSetOf() else null return topLevelFunctions .mapNotNull { function -> - val original = function.originalElement as? KtNamedFunction ?: return@mapNotNull null - if (origins != null && !origins.add(original)) return@mapNotNull null - val file = original.containingKtFile + val file = function.containingKtFile val virtualFile = file.virtualFile if (virtualFile.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) return@mapNotNull null if (initialOrigin != FirDeclarationOrigin.BuiltIns && file.packageFqName.asString() @@ -153,22 +150,19 @@ internal open class JvmStubBasedFirDeserializedSymbolProvider( ) return@mapNotNull null val symbol = FirNamedFunctionSymbol(callableId) val rootContext = - StubBasedFirDeserializationContext.createRootContext(session, moduleData, callableId, original, symbol, initialOrigin) - rootContext.memberDeserializer.loadFunction(original, null, session, symbol).symbol + StubBasedFirDeserializationContext.createRootContext(session, moduleData, callableId, function, symbol, initialOrigin) + rootContext.memberDeserializer.loadFunction(function, null, session, symbol).symbol } } private fun loadPropertiesByCallableId(callableId: CallableId, foundProperties: Collection?): List { val topLevelProperties = foundProperties ?: declarationProvider.getTopLevelProperties(callableId) - val origins = if (topLevelProperties.size > 1) mutableSetOf() else null return topLevelProperties - .mapNotNull { property -> - val original = property.originalElement as? KtProperty ?: return@mapNotNull null - if (origins != null && !origins.add(original)) return@mapNotNull null + .map { property -> val symbol = FirPropertySymbol(callableId) val rootContext = - StubBasedFirDeserializationContext.createRootContext(session, moduleData, callableId, original, symbol, initialOrigin) - rootContext.memberDeserializer.loadProperty(original, null, symbol).symbol + StubBasedFirDeserializationContext.createRootContext(session, moduleData, callableId, property, symbol, initialOrigin) + rootContext.memberDeserializer.loadProperty(property, null, symbol).symbol } }