FIR renderer: extract separate ConeTypeRenderer

This commit is contained in:
Mikhail Glukhikh
2022-07-05 11:56:50 +02:00
committed by Space
parent 591143be7c
commit a82baf87cb
46 changed files with 438 additions and 266 deletions
@@ -161,7 +161,7 @@ internal class KtFirTypeProvider(
require(typeParameterSymbols.size == argumentTypes.size) {
"'${symbol.fir.render(FirRenderer.RenderMode.NoBodies)}' expects '${typeParameterSymbols.size}' type arguments " +
"but type '${this.render()}' has ${argumentTypes.size} type arguments."
"but type '${this.renderForDebugging()}' has ${argumentTypes.size} type arguments."
}
val substitutor = substitutorByMap(typeParameterSymbols.zip(argumentTypes).toMap(), session)
@@ -77,7 +77,7 @@ internal class ConeTypeIdeRenderer(
}
is ConeCapturedType -> {
renderAnnotationList(type)
append(type.render())
append(type.renderReadableWithFqNames())
renderNullability(type.type)
}
is ConeDefinitelyNotNullType -> {
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.types.KtCapturedType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.types.ConeCapturedType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirCapturedType(
override val coneType: ConeCapturedType,
@@ -27,7 +27,7 @@ internal class KtFirCapturedType(
KtFirAnnotationListForType.create(coneType, builder.rootSession, token)
}
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.analysis.api.types.KtClassErrorType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.types.ConeErrorType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirClassErrorType(
override val coneType: ConeErrorType,
@@ -37,7 +37,7 @@ internal class KtFirClassErrorType(
symbols.map { builder.classifierBuilder.buildClassLikeSymbol(it) }
}
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.types.KtDefinitelyNotNullType
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.fir.types.ConeDefinitelyNotNullType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirDefinitelyNotNullType(
override val coneType: ConeDefinitelyNotNullType,
@@ -26,7 +26,7 @@ internal class KtFirDefinitelyNotNullType(
KtFirAnnotationListForType.create(coneType, builder.rootSession, token)
}
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.types.KtDynamicType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.types.ConeDynamicType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirDynamicType(
override val coneType: ConeDynamicType,
@@ -26,7 +26,7 @@ internal class KtFirDynamicType(
}
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.types.KtFlexibleType
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirFlexibleType(
override val coneType: ConeFlexibleType,
@@ -30,7 +30,7 @@ internal class KtFirFlexibleType(
}
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.isExtensionFunctionType
import org.jetbrains.kotlin.fir.types.isSuspendFunctionType
import org.jetbrains.kotlin.fir.types.receiverType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
import org.jetbrains.kotlin.name.ClassId
internal class KtFirFunctionalType(
@@ -73,7 +73,7 @@ internal class KtFirFunctionalType(
override val returnType: KtType
get() = withValidityAssertion { (typeArguments.last() as KtTypeArgumentWithVariance).type }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.types.KtClassType
import org.jetbrains.kotlin.analysis.api.types.KtIntegerLiteralType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.types.ConeIntegerLiteralConstantType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirIntegerLiteralType(
override val coneType: ConeIntegerLiteralConstantType,
@@ -38,7 +38,7 @@ internal class KtFirIntegerLiteralType(
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.types.KtIntersectionType
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.fir.types.ConeIntersectionType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
internal class KtFirIntersectionType(
override val coneType: ConeIntersectionType,
@@ -30,7 +30,7 @@ internal class KtFirIntersectionType(
}
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.analysis.api.types.KtTypeParameterType
import org.jetbrains.kotlin.fir.types.ConeTypeParameterType
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
import org.jetbrains.kotlin.name.Name
internal class KtFirTypeParameterType(
@@ -35,7 +35,7 @@ internal class KtFirTypeParameterType(
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
import org.jetbrains.kotlin.analysis.api.types.KtUsualClassType
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.render
import org.jetbrains.kotlin.fir.types.renderForDebugging
import org.jetbrains.kotlin.name.ClassId
internal class KtFirUsualClassType(
@@ -40,7 +40,7 @@ internal class KtFirUsualClassType(
}
override val nullability: KtTypeNullability get() = withValidityAssertion { coneType.nullability.asKtNullability() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.render() }
override fun asStringForDebugging(): String = withValidityAssertion { coneType.renderForDebugging() }
override fun equals(other: Any?) = typeEquals(other)
override fun hashCode() = typeHashcode()
}