[Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC

This commit is contained in:
Evgeniy.Zhelenskiy
2021-12-31 02:27:17 +03:00
committed by Space
parent c7edc353d3
commit e97ca2ada4
91 changed files with 465 additions and 426 deletions
@@ -22,7 +22,7 @@ val JVM_INLINE_ANNOTATION_CLASS_ID = ClassId.topLevel(JVM_INLINE_ANNOTATION_FQ_N
fun DeclarationDescriptor.isInlineClass(): Boolean = when {
this !is ClassDescriptor -> false
isInline -> true
else -> isValue && (unsubstitutedPrimaryConstructor?.valueParameters?.size?.let { it == 1 } ?: true)
else -> isValue && unsubstitutedPrimaryConstructor?.valueParameters?.size == 1
}
fun DeclarationDescriptor.isValueClass(): Boolean =
@@ -23,14 +23,9 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinEnum
import org.jetbrains.kotlin.resolve.scopes.receivers.ContextClassReceiver
import org.jetbrains.kotlin.serialization.deserialization.*
import org.jetbrains.kotlin.types.AbstractClassTypeConstructor
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.SimpleType
import org.jetbrains.kotlin.types.TypeConstructor
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
import org.jetbrains.kotlin.types.TypeRefinement
import org.jetbrains.kotlin.utils.addToStdlib.flatMapToNullable
import java.util.*
class DeserializedClassDescriptor(
outerContext: DeserializationContext,
@@ -98,7 +93,7 @@ class DeserializedClassDescriptor(
override fun isData() = Flags.IS_DATA.get(classProto.flags)
override fun isInline() = Flags.IS_INLINE_CLASS.get(classProto.flags) && metadataVersion.isAtMost(1, 4, 1)
override fun isInline() = Flags.IS_VALUE_CLASS.get(classProto.flags) && metadataVersion.isAtMost(1, 4, 1)
override fun isExpect() = Flags.IS_EXPECT_CLASS.get(classProto.flags)
@@ -108,7 +103,7 @@ class DeserializedClassDescriptor(
override fun isFun() = Flags.IS_FUN_INTERFACE.get(classProto.flags)
override fun isValue() = Flags.IS_INLINE_CLASS.get(classProto.flags) && metadataVersion.isAtLeast(1, 4, 2)
override fun isValue() = Flags.IS_VALUE_CLASS.get(classProto.flags) && metadataVersion.isAtLeast(1, 4, 2)
override fun getUnsubstitutedMemberScope(kotlinTypeRefiner: KotlinTypeRefiner): MemberScope =
memberScopeHolder.getScope(kotlinTypeRefiner)
@@ -30,8 +30,8 @@ public class Flags {
public static final BooleanFlagField IS_DATA = FlagField.booleanAfter(IS_INNER);
public static final BooleanFlagField IS_EXTERNAL_CLASS = FlagField.booleanAfter(IS_DATA);
public static final BooleanFlagField IS_EXPECT_CLASS = FlagField.booleanAfter(IS_EXTERNAL_CLASS);
public static final BooleanFlagField IS_INLINE_CLASS = FlagField.booleanAfter(IS_EXPECT_CLASS);
public static final BooleanFlagField IS_FUN_INTERFACE = FlagField.booleanAfter(IS_INLINE_CLASS);
public static final BooleanFlagField IS_VALUE_CLASS = FlagField.booleanAfter(IS_EXPECT_CLASS);
public static final BooleanFlagField IS_FUN_INTERFACE = FlagField.booleanAfter(IS_VALUE_CLASS);
// Constructors
@@ -99,7 +99,7 @@ public class Flags {
boolean isData,
boolean isExternal,
boolean isExpect,
boolean isInline,
boolean isValue,
boolean isFun
) {
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
@@ -110,7 +110,7 @@ public class Flags {
| IS_DATA.toFlags(isData)
| IS_EXTERNAL_CLASS.toFlags(isExternal)
| IS_EXPECT_CLASS.toFlags(isExpect)
| IS_INLINE_CLASS.toFlags(isInline)
| IS_VALUE_CLASS.toFlags(isValue)
| IS_FUN_INTERFACE.toFlags(isFun)
;
}