AA/FIR: differentiate dynamic type rendering

This commit is contained in:
Jinseong Jeon
2022-06-21 00:08:01 -07:00
committed by Ilya Kirillov
parent 2d52c59bc7
commit b6371a5b9a
5 changed files with 23 additions and 132 deletions
@@ -30,20 +30,8 @@ fun ConeKotlinType.render(): String {
is ConeLookupTagBasedType -> {
"${renderAttributes()}${lookupTag.name.asString()}"
}
is ConeDynamicType -> {
buildString {
append("dynamic")
}
}
is ConeFlexibleType -> {
buildString {
append("ft<")
append(lowerBound.render())
append(", ")
append(upperBound.render())
append(">")
}
}
is ConeDynamicType -> "dynamic"
is ConeFlexibleType -> this.render()
is ConeIntersectionType -> {
intersectedTypes.joinToString(
separator = " & ",
@@ -59,6 +47,15 @@ fun ConeKotlinType.render(): String {
} + nullabilitySuffix
}
private fun ConeFlexibleType.render(): String =
buildString {
append("ft<")
append(lowerBound.render())
append(", ")
append(upperBound.render())
append(">")
}
private fun ConeKotlinType.renderAttributes(): String {
if (!attributes.any()) return ""
return attributes.joinToString(" ", postfix = " ") { it.toString() }