From a711280b6caf7dbd2b3d0e404461368a1cb1a5c4 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Thu, 19 Aug 2021 23:36:43 -0700 Subject: [PATCH] FIR IDE: APIs to unwrap upper/lower bounds of flexible KtType --- .../kotlin/idea/frontend/api/components/KtTypeProvider.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeProvider.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeProvider.kt index 2c86b383bb0..639e415294b 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeProvider.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtTypeProvider.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.components import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol +import org.jetbrains.kotlin.idea.frontend.api.types.KtFlexibleType import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.idea.frontend.api.types.KtTypeNullability import org.jetbrains.kotlin.psi.KtDoubleColonExpression @@ -72,6 +73,9 @@ public interface KtTypeProviderMixIn : KtAnalysisSessionMixIn { public fun KtType.withNullability(newNullability: KtTypeNullability): KtType = analysisSession.typeProvider.withNullability(this, newNullability) + + public fun KtType.upperBoundIfFlexible(): KtType = (this as? KtFlexibleType)?.upperBound ?: this + public fun KtType.lowerBoundIfFlexible(): KtType = (this as? KtFlexibleType)?.lowerBound ?: this } @Suppress("PropertyName")