[Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC
This commit is contained in:
committed by
Space
parent
c7edc353d3
commit
e97ca2ada4
+4
-2
@@ -311,7 +311,7 @@ class IrDeclarationDeserializer(
|
||||
flags.isInner,
|
||||
flags.isData,
|
||||
flags.isExternal || isEffectivelyExternal,
|
||||
flags.isInline,
|
||||
flags.isValue,
|
||||
flags.isExpect,
|
||||
flags.isFun,
|
||||
)
|
||||
@@ -331,11 +331,13 @@ class IrDeclarationDeserializer(
|
||||
thisReceiver = deserializeIrValueParameter(proto.thisReceiver, -1)
|
||||
|
||||
inlineClassRepresentation = when {
|
||||
!flags.isInline -> null
|
||||
!(flags.isValue && primaryConstructor?.valueParameters?.size == 1) -> null
|
||||
proto.hasInlineClassRepresentation() -> deserializeInlineClassRepresentation(proto.inlineClassRepresentation)
|
||||
else -> computeMissingInlineClassRepresentationForCompatibility(this)
|
||||
}
|
||||
|
||||
// todo something when value classes
|
||||
|
||||
sealedSubclasses = proto.sealedSubclassList.map { deserializeIrSymbol(it) as IrClassSymbol }
|
||||
|
||||
fakeOverrideBuilder.enqueueClass(this, signature, compatibilityMode)
|
||||
|
||||
+5
-4
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.backend.common.serialization.encodings
|
||||
import org.jetbrains.kotlin.backend.common.serialization.IrFlags
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
|
||||
@@ -27,7 +27,7 @@ value class ClassFlags(val flags: Long) {
|
||||
val isCompanion: Boolean get() = IrFlags.CLASS_KIND.get(flags.toInt()) == ProtoBuf.Class.Kind.COMPANION_OBJECT
|
||||
val isInner: Boolean get() = IrFlags.IS_INNER.get(flags.toInt())
|
||||
val isData: Boolean get() = IrFlags.IS_DATA.get(flags.toInt())
|
||||
val isInline: Boolean get() = IrFlags.IS_INLINE_CLASS.get(flags.toInt())
|
||||
val isValue: Boolean get() = IrFlags.IS_VALUE_CLASS.get(flags.toInt())
|
||||
val isExpect: Boolean get() = IrFlags.IS_EXPECT_CLASS.get(flags.toInt())
|
||||
val isExternal: Boolean get() = IrFlags.IS_EXTERNAL_CLASS.get(flags.toInt())
|
||||
val isFun: Boolean get() = IrFlags.IS_FUN_INTERFACE.get(flags.toInt())
|
||||
@@ -40,8 +40,9 @@ value class ClassFlags(val flags: Long) {
|
||||
val modality = ProtoEnumFlags.modality(modality)
|
||||
val kind = ProtoEnumFlags.classKind(kind, isCompanion)
|
||||
|
||||
val flags =
|
||||
IrFlags.getClassFlags(hasAnnotation, visibility, modality, kind, isInner, isData, isExternal, isExpect, isInline, isFun)
|
||||
val flags = IrFlags.getClassFlags(
|
||||
hasAnnotation, visibility, modality, kind, isInner, isData, isExternal, isExpect, isValue, isFun
|
||||
)
|
||||
|
||||
flags.toLong()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user