[FIR] Handle expect declarations in JVM backend
1. Do not generate bytecode for expect declarations 2. Serialize @OptionalExpectation annotations into .kotlin_module file ^KT-62931: Fixed
This commit is contained in:
committed by
Space Team
parent
b74501ee93
commit
d753a22fc6
+4
-5
@@ -7,10 +7,7 @@ package org.jetbrains.kotlin.fir.java.deserialization
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.deserialization.FirDeserializationContext
|
||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.deserialization.PackagePartsCacheData
|
||||
import org.jetbrains.kotlin.fir.deserialization.*
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
@@ -32,6 +29,8 @@ class OptionalAnnotationClassesProvider(
|
||||
session, moduleDataProvider, kotlinScopeProvider, defaultDeserializationOrigin, BuiltInSerializerProtocol
|
||||
) {
|
||||
|
||||
private val annotationDeserializer = MetadataBasedAnnotationDeserializer(session)
|
||||
|
||||
private val optionalAnnotationClassesAndPackages by lazy(LazyThreadSafetyMode.PUBLICATION) {
|
||||
val optionalAnnotationClasses = mutableMapOf<ClassId, ClassData>()
|
||||
val optionalAnnotationPackages = mutableSetOf<String>()
|
||||
@@ -71,7 +70,7 @@ class OptionalAnnotationClassesProvider(
|
||||
return ClassMetadataFindResult.Metadata(
|
||||
optionalAnnotationClass.nameResolver,
|
||||
optionalAnnotationClass.classProto,
|
||||
null,
|
||||
annotationDeserializer,
|
||||
moduleDataProvider.allModuleData.last(),
|
||||
null,
|
||||
classPostProcessor = null
|
||||
|
||||
Reference in New Issue
Block a user