FIR: Mark all dependencies' declarations as fully resolved

This commit is contained in:
Denis Zharkov
2020-01-28 13:18:23 +03:00
parent dd51d5065a
commit c6c773f6f9
10 changed files with 27 additions and 25 deletions
@@ -17,7 +17,8 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl
import org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
import org.jetbrains.kotlin.metadata.ProtoBuf
@@ -78,7 +79,7 @@ fun deserializeClassToSymbol(
)
}
firClass.apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
val context =
parentContext?.childContext(
classProto.typeParameterList,
@@ -136,7 +137,7 @@ fun deserializeClassToSymbol(
isStatic = true
}
).apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
}
property
@@ -146,7 +146,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
local.typeDeserializer.type(proto.underlyingType(c.typeTable))
)
).apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
}
}
@@ -184,7 +184,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
false,
status
).apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
annotations += c.annotationDeserializer.loadPropertyAnnotations(proto, local.nameResolver)
getter = FirDefaultPropertyGetter(null, c.session, returnTypeRef, ProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags)))
@@ -234,7 +234,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
status,
symbol
).apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
valueParameters += local.memberDeserializer.valueParameters(proto.valueParameterList)
annotations += local.annotationDeserializer.loadFunctionAnnotations(proto, local.nameResolver)
@@ -290,7 +290,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
symbol
)
}.apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
this.typeParameters += typeParameters
valueParameters += local.memberDeserializer.valueParameters(proto.valueParameterList)
annotations += local.annotationDeserializer.loadConstructorAnnotations(proto, local.nameResolver)
@@ -166,7 +166,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
kotlinScopeProvider,
this
).apply klass@{
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
typeParameters.addAll((1..arity).map {
FirTypeParameterImpl(
null,
@@ -222,7 +222,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
functionStatus,
FirNamedFunctionSymbol(CallableId(packageFqName, relativeClassName, name))
).apply {
resolvePhase = FirResolvePhase.DECLARATIONS
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
valueParameters += typeArguments.dropLast(1).mapIndexed { index, typeArgument ->
val parameterName = Name.identifier("p${index + 1}")
FirValueParameterImpl(