Code cleanup: ConeAttributes
This commit is contained in:
@@ -39,7 +39,7 @@ object CompilerConeAttributes {
|
|||||||
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin.jvm.internal"), Name.identifier("EnhancedNullability"))
|
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin.jvm.internal"), Name.identifier("EnhancedNullability"))
|
||||||
|
|
||||||
override fun union(other: EnhancedNullability?): EnhancedNullability? = other
|
override fun union(other: EnhancedNullability?): EnhancedNullability? = other
|
||||||
override fun intersect(other: EnhancedNullability?): EnhancedNullability? = this
|
override fun intersect(other: EnhancedNullability?): EnhancedNullability = this
|
||||||
override fun isSubtypeOf(other: EnhancedNullability?): Boolean = true
|
override fun isSubtypeOf(other: EnhancedNullability?): Boolean = true
|
||||||
|
|
||||||
override val key: KClass<out EnhancedNullability> = EnhancedNullability::class
|
override val key: KClass<out EnhancedNullability> = EnhancedNullability::class
|
||||||
@@ -51,7 +51,7 @@ object CompilerConeAttributes {
|
|||||||
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin"), Name.identifier("ExtensionFunctionType"))
|
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin"), Name.identifier("ExtensionFunctionType"))
|
||||||
|
|
||||||
override fun union(other: ExtensionFunctionType?): ExtensionFunctionType? = other
|
override fun union(other: ExtensionFunctionType?): ExtensionFunctionType? = other
|
||||||
override fun intersect(other: ExtensionFunctionType?): ExtensionFunctionType? = this
|
override fun intersect(other: ExtensionFunctionType?): ExtensionFunctionType = this
|
||||||
override fun isSubtypeOf(other: ExtensionFunctionType?): Boolean = true
|
override fun isSubtypeOf(other: ExtensionFunctionType?): Boolean = true
|
||||||
|
|
||||||
override val key: KClass<out ExtensionFunctionType> = ExtensionFunctionType::class
|
override val key: KClass<out ExtensionFunctionType> = ExtensionFunctionType::class
|
||||||
@@ -63,7 +63,7 @@ object CompilerConeAttributes {
|
|||||||
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin.internal.ir"), Name.identifier("FlexibleNullability"))
|
val ANNOTATION_CLASS_ID = ClassId(FqName("kotlin.internal.ir"), Name.identifier("FlexibleNullability"))
|
||||||
|
|
||||||
override fun union(other: FlexibleNullability?): FlexibleNullability? = other
|
override fun union(other: FlexibleNullability?): FlexibleNullability? = other
|
||||||
override fun intersect(other: FlexibleNullability?): FlexibleNullability? = this
|
override fun intersect(other: FlexibleNullability?): FlexibleNullability = this
|
||||||
override fun isSubtypeOf(other: FlexibleNullability?): Boolean = true
|
override fun isSubtypeOf(other: FlexibleNullability?): Boolean = true
|
||||||
|
|
||||||
override val key: KClass<out FlexibleNullability> = FlexibleNullability::class
|
override val key: KClass<out FlexibleNullability> = FlexibleNullability::class
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class ConeAttributes private constructor(attributes: List<ConeAttribute<*>>) : A
|
|||||||
val hasEnhancedNullability: Boolean
|
val hasEnhancedNullability: Boolean
|
||||||
get() = enhancedNullability != null
|
get() = enhancedNullability != null
|
||||||
|
|
||||||
val hasFlexibleNullability: Boolean
|
private val hasFlexibleNullability: Boolean
|
||||||
get() = flexibleNullability != null
|
get() = flexibleNullability != null
|
||||||
|
|
||||||
fun union(other: ConeAttributes): ConeAttributes {
|
fun union(other: ConeAttributes): ConeAttributes {
|
||||||
@@ -79,10 +79,7 @@ class ConeAttributes private constructor(attributes: List<ConeAttribute<*>>) : A
|
|||||||
for (index in indices) {
|
for (index in indices) {
|
||||||
val a = arrayMap[index]
|
val a = arrayMap[index]
|
||||||
val b = other.arrayMap[index]
|
val b = other.arrayMap[index]
|
||||||
val res = when {
|
val res = if (a == null) b?.op(a) else a.op(b)
|
||||||
a == null -> b?.op(a)
|
|
||||||
else -> a.op(b)
|
|
||||||
}
|
|
||||||
attributes.addIfNotNull(res)
|
attributes.addIfNotNull(res)
|
||||||
}
|
}
|
||||||
return create(attributes)
|
return create(attributes)
|
||||||
|
|||||||
Reference in New Issue
Block a user