[FIR] Introduce valueClassRepresentation to FIR

#KT-1179
This commit is contained in:
Evgeniy.Zhelenskiy
2022-03-14 16:33:05 +03:00
committed by teamcity
parent 28bf83ceac
commit b6f2513dd2
16 changed files with 131 additions and 33 deletions
@@ -18,5 +18,5 @@ class InlineClassRepresentation<Type : SimpleTypeMarker> constructor(
override fun containsPropertyWithName(name: Name): Boolean = underlyingPropertyName == name
override fun propertyTypeByName(name: Name): Type? = underlyingType.takeIf { containsPropertyWithName(name) }
override fun getPropertyTypeByName(name: Name): Type? = underlyingType.takeIf { containsPropertyWithName(name) }
}
@@ -17,5 +17,5 @@ class MultiFieldValueClassRepresentation<Type : SimpleTypeMarker>(
}
override fun containsPropertyWithName(name: Name): Boolean = name in map
override fun propertyTypeByName(name: Name): Type? = map[name]
override fun getPropertyTypeByName(name: Name): Type? = map[name]
}
@@ -32,7 +32,7 @@ interface TypeSystemCommonBackendContext : TypeSystemContext {
fun TypeConstructorMarker.isInlineClass(): Boolean
fun TypeConstructorMarker.isMultiFieldValueClass(): Boolean
fun TypeConstructorMarker.valueClassRepresentationTypeMarkersList(): List<Pair<Name, SimpleTypeMarker>>?
fun TypeConstructorMarker.getValueClassProperties(): List<Pair<Name, SimpleTypeMarker>>?
fun TypeConstructorMarker.isInnerClass(): Boolean
fun TypeParameterMarker.getRepresentativeUpperBound(): KotlinTypeMarker
fun KotlinTypeMarker.getUnsubstitutedUnderlyingType(): KotlinTypeMarker?