From a3401b2f9e02ee996c94403f7a6496e5f94495be Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Mon, 16 Oct 2023 11:59:20 +0200 Subject: [PATCH] Minor: cleanup + support variance in ErrorListDiagnosticListRenderer 1. Support variance in ErrorListDiagnosticListRenderer. I will make some diagnostics to have covariant type arguments in the next commits 2. Drop unused code Review: https://jetbrains.team/p/kt/reviews/12750/timeline --- .../diagnostics/model/ErrorListDiagnosticListRenderer.kt | 6 ++++++ .../resolve/multiplatform/ExpectActualCompatibility.kt | 8 -------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/ErrorListDiagnosticListRenderer.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/ErrorListDiagnosticListRenderer.kt index 0881fc6cfac..25d497848ed 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/ErrorListDiagnosticListRenderer.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/model/ErrorListDiagnosticListRenderer.kt @@ -13,6 +13,7 @@ import java.io.File import kotlin.reflect.KClass import kotlin.reflect.KType import kotlin.reflect.KTypeProjection +import kotlin.reflect.KVariance object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() { const val BASE_PACKAGE = "org.jetbrains.kotlin.fir.analysis.diagnostics" @@ -116,6 +117,11 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() { if (typeArgumentType == null) { print("*") } else { + when (typeArgument.variance) { + KVariance.INVARIANT, null -> {} + KVariance.IN -> print("in ") + KVariance.OUT -> print("out ") + } printType(typeArgumentType) } } diff --git a/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt b/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt index 876375a05ef..239e394a3b1 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt @@ -105,11 +105,3 @@ val ExpectActualCompatibility<*>.isCompatibleOrWeaklyIncompatible: Boolean val ExpectActualCompatibility<*>.compatible: Boolean get() = this == ExpectActualCompatibility.Compatible - -@OptIn(ExperimentalContracts::class) -fun ExpectActualCompatibility<*>.isIncompatible(): Boolean { - contract { - returns(true) implies (this@isIncompatible is ExpectActualCompatibility.Incompatible<*>) - } - return !compatible -}