FIR: pass name resolver to annotation deserializer separately
This commit is contained in:
committed by
Mikhail Glukhikh
parent
1bb4b32c91
commit
4bcba000fd
+5
-5
@@ -9,14 +9,14 @@ import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.deserialization.AbstractAnnotationDeserializer
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
|
||||
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmNameResolver
|
||||
|
||||
class JvmBinaryAnnotationDeserializer(
|
||||
session: FirSession, nameResolver: JvmNameResolver
|
||||
) : AbstractAnnotationDeserializer(session, nameResolver) {
|
||||
override fun loadTypeAnnotations(typeProto: ProtoBuf.Type): List<FirAnnotationCall> {
|
||||
session: FirSession
|
||||
) : AbstractAnnotationDeserializer(session) {
|
||||
override fun loadTypeAnnotations(typeProto: ProtoBuf.Type, nameResolver: NameResolver): List<FirAnnotationCall> {
|
||||
val annotations = typeProto.getExtension(JvmProtoBuf.typeAnnotation).orEmpty()
|
||||
return annotations.map { deserializeAnnotation(it) }
|
||||
return annotations.map { deserializeAnnotation(it, nameResolver) }
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -103,7 +103,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
packageProto,
|
||||
FirDeserializationContext.createForPackage(
|
||||
packageFqName, packageProto, nameResolver, session,
|
||||
JvmBinaryAnnotationDeserializer(session, nameResolver)
|
||||
JvmBinaryAnnotationDeserializer(session)
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -313,7 +313,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
val symbol = FirClassSymbol(classId)
|
||||
deserializeClassToSymbol(
|
||||
classId, classProto, symbol, nameResolver, session,
|
||||
JvmBinaryAnnotationDeserializer(session, nameResolver),
|
||||
JvmBinaryAnnotationDeserializer(session),
|
||||
parentContext, this::findAndDeserializeClass
|
||||
)
|
||||
classesCache[classId] = symbol
|
||||
|
||||
Reference in New Issue
Block a user