FIR deserializer: handle context in more correct way
This commit is contained in:
+2
-5
@@ -313,11 +313,8 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
val symbol = FirClassSymbol(classId)
|
||||
deserializeClassToSymbol(
|
||||
classId, classProto, symbol, nameResolver, session,
|
||||
parentContext ?: FirDeserializationContext.createForClass(
|
||||
classId, classProto, nameResolver, session,
|
||||
JvmBinaryAnnotationDeserializer(session, nameResolver)
|
||||
),
|
||||
this::findAndDeserializeClass
|
||||
JvmBinaryAnnotationDeserializer(session, nameResolver),
|
||||
parentContext, this::findAndDeserializeClass
|
||||
)
|
||||
classesCache[classId] = symbol
|
||||
val annotations = mutableListOf<FirAnnotationCall>()
|
||||
|
||||
+3
-1
@@ -26,6 +26,7 @@ fun deserializeClassToSymbol(
|
||||
symbol: FirClassSymbol,
|
||||
nameResolver: NameResolver,
|
||||
session: FirSession,
|
||||
defaultAnnotationDeserializer: AbstractAnnotationDeserializer?,
|
||||
parentContext: FirDeserializationContext? = null,
|
||||
deserializeNestedClass: (ClassId, FirDeserializationContext) -> FirClassSymbol?
|
||||
) {
|
||||
@@ -50,7 +51,8 @@ fun deserializeClassToSymbol(
|
||||
TypeTable(classProto.typeTable),
|
||||
classId.relativeClassName
|
||||
) ?: FirDeserializationContext.createForClass(
|
||||
classId, classProto, nameResolver, session, FirBuiltinAnnotationDeserializer(session, nameResolver)
|
||||
classId, classProto, nameResolver, session,
|
||||
defaultAnnotationDeserializer ?: FirBuiltinAnnotationDeserializer(session, nameResolver)
|
||||
)
|
||||
typeParameters += context.typeDeserializer.ownTypeParameters.map { it.firUnsafe() }
|
||||
annotations += context.annotationDeserializer.loadClassAnnotations(classProto)
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ class FirLibrarySymbolProviderImpl(val session: FirSession) : FirSymbolProvider
|
||||
|
||||
deserializeClassToSymbol(
|
||||
classId, classProto, symbol, nameResolver, session,
|
||||
parentContext,
|
||||
null, parentContext,
|
||||
this::findAndDeserializeClass
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user