From 48fbb62658ee40878b4948470143c4336e92e8d1 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 27 Oct 2022 16:47:04 +0900 Subject: [PATCH] [FE] Add missing 'originalForSubstitutionOverrideAttr' to parameters 'originalForSubstitutionOverrideAttr' is supposed to be on all 'SubstitutionOverride' declarations, and certain functionality, such as 'KtFirOverrideInfoProvider#getOriginalOverriddenSymbol()' depends on it. Absence of the attribute might trigger infinite loop/recursion in substitution unwrapping. --- .../kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 339ba221009..25987d8a14e 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -266,6 +266,8 @@ object FirFakeOverrideGenerator { origin = FirDeclarationOrigin.SubstitutionOverride returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType) symbol = FirValueParameterSymbol(valueParameter.name) + }.apply { + originalForSubstitutionOverrideAttr = valueParameter } }