FIR deserializer: load inline/external flags properly
This commit is contained in:
committed by
Mikhail Glukhikh
parent
2154c94100
commit
2fad935ce2
+1
@@ -67,6 +67,7 @@ fun deserializeClassToSymbol(
|
|||||||
isInner = Flags.IS_INNER.get(flags)
|
isInner = Flags.IS_INNER.get(flags)
|
||||||
isData = Flags.IS_DATA.get(classProto.flags)
|
isData = Flags.IS_DATA.get(classProto.flags)
|
||||||
isInline = Flags.IS_INLINE_CLASS.get(classProto.flags)
|
isInline = Flags.IS_INLINE_CLASS.get(classProto.flags)
|
||||||
|
isExternal = Flags.IS_EXTERNAL_CLASS.get(classProto.flags)
|
||||||
}
|
}
|
||||||
val isSealed = modality == Modality.SEALED
|
val isSealed = modality == Modality.SEALED
|
||||||
val annotationDeserializer = defaultAnnotationDeserializer ?: FirBuiltinAnnotationDeserializer(session)
|
val annotationDeserializer = defaultAnnotationDeserializer ?: FirBuiltinAnnotationDeserializer(session)
|
||||||
|
|||||||
+10
-2
@@ -222,7 +222,10 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
|||||||
this.returnTypeRef = returnTypeRef
|
this.returnTypeRef = returnTypeRef
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
isGetter = true
|
isGetter = true
|
||||||
status = FirResolvedDeclarationStatusImpl(visibility, modality)
|
status = FirResolvedDeclarationStatusImpl(visibility, modality).apply {
|
||||||
|
isInline = Flags.IS_INLINE_ACCESSOR.get(getterFlags)
|
||||||
|
isExternal = Flags.IS_EXTERNAL_ACCESSOR.get(getterFlags)
|
||||||
|
}
|
||||||
annotations +=
|
annotations +=
|
||||||
c.annotationDeserializer.loadPropertyGetterAnnotations(
|
c.annotationDeserializer.loadPropertyGetterAnnotations(
|
||||||
c.containerSource, proto, local.nameResolver, local.typeTable, getterFlags
|
c.containerSource, proto, local.nameResolver, local.typeTable, getterFlags
|
||||||
@@ -247,7 +250,10 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
|||||||
this.returnTypeRef = FirImplicitUnitTypeRef(source)
|
this.returnTypeRef = FirImplicitUnitTypeRef(source)
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
isGetter = false
|
isGetter = false
|
||||||
status = FirResolvedDeclarationStatusImpl(visibility, modality)
|
status = FirResolvedDeclarationStatusImpl(visibility, modality).apply {
|
||||||
|
isInline = Flags.IS_INLINE_ACCESSOR.get(setterFlags)
|
||||||
|
isExternal = Flags.IS_EXTERNAL_ACCESSOR.get(setterFlags)
|
||||||
|
}
|
||||||
annotations +=
|
annotations +=
|
||||||
c.annotationDeserializer.loadPropertySetterAnnotations(
|
c.annotationDeserializer.loadPropertySetterAnnotations(
|
||||||
c.containerSource, proto, local.nameResolver, local.typeTable, setterFlags
|
c.containerSource, proto, local.nameResolver, local.typeTable, setterFlags
|
||||||
@@ -288,6 +294,8 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
|||||||
isOverride = false
|
isOverride = false
|
||||||
isConst = Flags.IS_CONST.get(flags)
|
isConst = Flags.IS_CONST.get(flags)
|
||||||
isLateInit = Flags.IS_LATEINIT.get(flags)
|
isLateInit = Flags.IS_LATEINIT.get(flags)
|
||||||
|
isInline = Flags.IS_INLINE.get(flags)
|
||||||
|
isExternal = Flags.IS_EXTERNAL_PROPERTY.get(flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
|
|||||||
-1
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
|
|||||||
-1
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
|
|||||||
Reference in New Issue
Block a user