Use Variance instead of custom class in KtTypeArgumentWithVariance

This commit is contained in:
Stanislav Erokhin
2021-01-08 16:54:21 +01:00
parent f6bf2f6b7b
commit 732a997479
4 changed files with 12 additions and 13 deletions
@@ -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
}
@@ -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)