From dafcafc23230b659a06f979d317b979f44aae738 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Fri, 11 Mar 2022 17:39:48 +0300 Subject: [PATCH] Fix infinite tail recursion --- .../src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index da1b4fc86fe..a3fde4ff096 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -326,7 +326,9 @@ private fun ConstantValueKind<*>.toIrConstKind(): IrConstKind<*> = when (this) { internal tailrec fun FirCallableSymbol<*>.unwrapSubstitutionAndIntersectionOverrides(): FirCallableSymbol<*> { val originalForSubstitutionOverride = originalForSubstitutionOverride - if (originalForSubstitutionOverride != null) return originalForSubstitutionOverride.unwrapSubstitutionAndIntersectionOverrides() + if (originalForSubstitutionOverride != null && originalForSubstitutionOverride != this) { + return originalForSubstitutionOverride.unwrapSubstitutionAndIntersectionOverrides() + } val baseForIntersectionOverride = baseForIntersectionOverride if (baseForIntersectionOverride != null) return baseForIntersectionOverride.unwrapSubstitutionAndIntersectionOverrides()