From 732a9974792320c6b9cd426488626b02ff0bb502 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Fri, 8 Jan 2021 16:54:21 +0100 Subject: [PATCH] Use Variance instead of custom class in KtTypeArgumentWithVariance --- .../jetbrains/kotlin/idea/frontend/api/KtTypeArgument.kt | 8 ++------ .../kotlin/idea/frontend/api/components/KtTypeRenderer.kt | 7 ++++--- .../kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt | 7 ++++--- .../kotlin/idea/frontend/api/fir/types/FirKtType.kt | 3 ++- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/KtTypeArgument.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/KtTypeArgument.kt index bc00b24824f..71c3f693e6b 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/KtTypeArgument.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/KtTypeArgument.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.frontend.api import org.jetbrains.kotlin.idea.frontend.api.types.KtType +import org.jetbrains.kotlin.types.Variance sealed class KtTypeArgument @@ -13,10 +14,5 @@ object KtStarProjectionTypeArgument : KtTypeArgument() abstract class KtTypeArgumentWithVariance : KtTypeArgument() { abstract val type: KtType - abstract val variance: KtTypeArgumentVariance + abstract val variance: Variance } - -enum class KtTypeArgumentVariance { - COVARIANT, CONTRAVARIANT, INVARIANT -} - diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeRenderer.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeRenderer.kt index 451368ac759..0692ab9ce2e 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeRenderer.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeRenderer.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.frontend.api.components import org.jetbrains.kotlin.idea.frontend.api.* import org.jetbrains.kotlin.idea.frontend.api.types.* import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.types.Variance abstract class KtTypeRenderer : KtAnalysisSessionComponent() { abstract fun render(type: KtType, options: KtTypeRendererOptions): String @@ -83,9 +84,9 @@ class KtDefaultTypeRenderer(override val analysisSession: KtAnalysisSession, ove } is KtTypeArgumentWithVariance -> { val varianceWithSpace = when (typeArgument.variance) { - KtTypeArgumentVariance.COVARIANT -> "out " - KtTypeArgumentVariance.CONTRAVARIANT -> "in " - KtTypeArgumentVariance.INVARIANT -> "" + Variance.OUT_VARIANCE -> "out " + Variance.IN_VARIANCE -> "in " + Variance.INVARIANT -> "" } append(varianceWithSpace) render(typeArgument.type, options) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt index bf887c7db11..ce51b91852c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.types.Variance import java.util.concurrent.ConcurrentMap /** @@ -189,9 +190,9 @@ internal class KtSymbolByFirBuilder private constructor( } private fun ProjectionKind.toVariance() = when (this) { - ProjectionKind.OUT -> KtTypeArgumentVariance.COVARIANT - ProjectionKind.IN -> KtTypeArgumentVariance.CONTRAVARIANT - ProjectionKind.INVARIANT -> KtTypeArgumentVariance.INVARIANT + ProjectionKind.OUT -> Variance.OUT_VARIANCE + ProjectionKind.IN -> Variance.IN_VARIANCE + ProjectionKind.INVARIANT -> Variance.INVARIANT ProjectionKind.STAR -> error("KtStarProjectionTypeArgument be directly created") } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt index b163dac78ce..30f1b39c1fe 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.KtTypeParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.types.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.types.Variance internal interface KtFirType : KtType, ValidityTokenOwner { val coneType: ConeKotlinType @@ -103,5 +104,5 @@ internal class KtFirIntersectionType( internal class KtFirTypeArgumentWithVariance( override val type: KtType, - override val variance: KtTypeArgumentVariance + override val variance: Variance ) : KtTypeArgumentWithVariance() \ No newline at end of file