Remove FirLibrarySymbolProviderImpl from FirJavaModuleBasedSession

It's anyway already being created within dependencies
This commit is contained in:
Denis Zharkov
2019-03-25 14:46:07 +03:00
parent 7a19e269fd
commit 466296bca0
3 changed files with 13 additions and 12 deletions
@@ -27,7 +27,6 @@ class FirJavaModuleBasedSession(
listOf( listOf(
service<FirProvider>(), service<FirProvider>(),
JavaSymbolProvider(this, sessionProvider.project, scope), JavaSymbolProvider(this, sessionProvider.project, scope),
FirLibrarySymbolProviderImpl(this),
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this) dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
) )
) )
@@ -61,4 +60,4 @@ class FirProjectSessionProvider(val project: Project) : FirSessionProvider {
} }
val sessionCache = mutableMapOf<ModuleInfo, FirSession>() val sessionCache = mutableMapOf<ModuleInfo, FirSession>()
} }
@@ -5,9 +5,8 @@
package org.jetbrains.kotlin.fir.deserialization package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
import org.jetbrains.kotlin.fir.symbols.*
import org.jetbrains.kotlin.fir.resolve.toTypeProjection import org.jetbrains.kotlin.fir.resolve.toTypeProjection
import org.jetbrains.kotlin.fir.symbols.*
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
@@ -18,13 +17,11 @@ import org.jetbrains.kotlin.metadata.deserialization.*
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
import org.jetbrains.kotlin.serialization.deserialization.getClassId import org.jetbrains.kotlin.serialization.deserialization.getClassId
import org.jetbrains.kotlin.serialization.deserialization.getName import org.jetbrains.kotlin.serialization.deserialization.getName
import java.lang.RuntimeException
import java.util.* import java.util.*
class FirTypeDeserializer( class FirTypeDeserializer(
val nameResolver: NameResolver, val nameResolver: NameResolver,
val typeTable: TypeTable, val typeTable: TypeTable,
val symbolProvider: FirSymbolProvider,
typeParameterProtos: List<ProtoBuf.TypeParameter>, typeParameterProtos: List<ProtoBuf.TypeParameter>,
val parent: FirTypeDeserializer? val parent: FirTypeDeserializer?
) { ) {
@@ -7,14 +7,20 @@ package org.jetbrains.kotlin.fir.resolve.impl
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.impl.FirClassImpl import org.jetbrains.kotlin.fir.declarations.impl.FirClassImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl
import org.jetbrains.kotlin.fir.deserialization.FirTypeDeserializer import org.jetbrains.kotlin.fir.deserialization.FirTypeDeserializer
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.getOrPut import org.jetbrains.kotlin.fir.resolve.getOrPut
import org.jetbrains.kotlin.fir.symbols.* import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.ConeCallableSymbol
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol
import org.jetbrains.kotlin.fir.symbols.ConeClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
@@ -73,7 +79,7 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
return firSymbol return firSymbol
} }
fun getClassLikeSymbolByFqName(classId: ClassId, provider: FirSymbolProvider): ConeClassLikeSymbol? { fun getClassLikeSymbolByFqName(classId: ClassId): ConeClassLikeSymbol? {
if (classId !in classDataFinder.allClassIds) return null if (classId !in classDataFinder.allClassIds) return null
return lookup.getOrPut(classId, { FirClassSymbol(classId) }) { symbol -> return lookup.getOrPut(classId, { FirClassSymbol(classId) }) { symbol ->
@@ -101,7 +107,6 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
val typeDeserializer = FirTypeDeserializer( val typeDeserializer = FirTypeDeserializer(
classData.nameResolver, classData.nameResolver,
typeTable, typeTable,
provider,
classData.classProto.typeParameterList, classData.classProto.typeParameterList,
null null
) )
@@ -144,7 +149,7 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
override fun getClassLikeSymbolByFqName(classId: ClassId): ConeClassLikeSymbol? { override fun getClassLikeSymbolByFqName(classId: ClassId): ConeClassLikeSymbol? {
return allPackageFragments[classId.packageFqName]?.firstNotNullResult { return allPackageFragments[classId.packageFqName]?.firstNotNullResult {
it.getClassLikeSymbolByFqName(classId, this) it.getClassLikeSymbolByFqName(classId)
} ?: with(classId) { } ?: with(classId) {
val className = relativeClassName.asString() val className = relativeClassName.asString()
val kind = FunctionClassDescriptor.Kind.byClassNamePrefix(packageFqName, className) ?: return@with null val kind = FunctionClassDescriptor.Kind.byClassNamePrefix(packageFqName, className) ?: return@with null
@@ -171,4 +176,4 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
} }
} }
} }
} }