From edd9f0348e09e3d38a06b6787ad562873b8b64b8 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Wed, 6 Mar 2024 17:08:57 +0100 Subject: [PATCH] [LL FIR] LLFirReturnTypeCalculatorWithJump: add `checkCanceled` `tryCalculateReturnTypeOrNull` is the entry point for foreign symbols resolution. We already have `checkCanceled` inside `lazyResolveToPhase` and `checkIsResolved`, but in this case we will cover cases where everything around is already resolved ^KTIJ-27504 --- .../fir/transformers/LLFirReturnTypeCalculatorWithJump.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt index 741b8d1a602..4bc5d188459 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarg import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitBodyTargetResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitTypesLazyResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLImplicitBodyResolveComputationSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkCanceled import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ReturnTypeCalculatorWithJump @@ -45,4 +46,9 @@ internal class LLFirReturnTypeCalculatorWithJump( LLFirImplicitTypesLazyResolver.checkIsResolved(declaration) return declaration.returnTypeRef as FirResolvedTypeRef } + + override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef { + checkCanceled() + return super.tryCalculateReturnTypeOrNull(declaration) + } }