From 7a522ade15db43518b9e217f631f5677667b317d Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Mon, 9 Aug 2021 16:00:09 +0300 Subject: [PATCH] [FIR] Add isSubtypeOf function --- .../src/org/jetbrains/kotlin/fir/types/TypeUtils.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt index a94bdc07398..fd3759f723f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject +import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap @@ -528,3 +529,14 @@ fun ConeKotlinType.isSubtypeOf(superType: ConeKotlinType, session: FirSession): session.typeContext.newTypeCheckerState(errorTypesEqualToAnything = false, stubTypesEqualToAnything = false), this, superType, ) + +fun FirTypedDeclaration.isSubtypeOf( + other: FirTypedDeclaration, + typeCheckerContext: TypeCheckerState +): Boolean { + return AbstractTypeChecker.isSubtypeOf( + typeCheckerContext, + returnTypeRef.coneType, + other.returnTypeRef.coneType + ) +}