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(
service<FirProvider>(),
JavaSymbolProvider(this, sessionProvider.project, scope),
FirLibrarySymbolProviderImpl(this),
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
)
)
@@ -61,4 +60,4 @@ class FirProjectSessionProvider(val project: Project) : FirSessionProvider {
}
val sessionCache = mutableMapOf<ModuleInfo, FirSession>()
}
}
@@ -5,9 +5,8 @@
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.symbols.*
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
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.getClassId
import org.jetbrains.kotlin.serialization.deserialization.getName
import java.lang.RuntimeException
import java.util.*
class FirTypeDeserializer(
val nameResolver: NameResolver,
val typeTable: TypeTable,
val symbolProvider: FirSymbolProvider,
typeParameterProtos: List<ProtoBuf.TypeParameter>,
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.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.declarations.impl.FirClassImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl
import org.jetbrains.kotlin.fir.deserialization.FirTypeDeserializer
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
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.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
@@ -73,7 +79,7 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
return firSymbol
}
fun getClassLikeSymbolByFqName(classId: ClassId, provider: FirSymbolProvider): ConeClassLikeSymbol? {
fun getClassLikeSymbolByFqName(classId: ClassId): ConeClassLikeSymbol? {
if (classId !in classDataFinder.allClassIds) return null
return lookup.getOrPut(classId, { FirClassSymbol(classId) }) { symbol ->
@@ -101,7 +107,6 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
val typeDeserializer = FirTypeDeserializer(
classData.nameResolver,
typeTable,
provider,
classData.classProto.typeParameterList,
null
)
@@ -144,7 +149,7 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
override fun getClassLikeSymbolByFqName(classId: ClassId): ConeClassLikeSymbol? {
return allPackageFragments[classId.packageFqName]?.firstNotNullResult {
it.getClassLikeSymbolByFqName(classId, this)
it.getClassLikeSymbolByFqName(classId)
} ?: with(classId) {
val className = relativeClassName.asString()
val kind = FunctionClassDescriptor.Kind.byClassNamePrefix(packageFqName, className) ?: return@with null
@@ -171,4 +176,4 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
}
}
}
}
}