From 0b7e8c470862bb3ee3b6e40c4456eb35411f1032 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Fri, 12 Jan 2024 11:23:00 +0200 Subject: [PATCH] [FIR] Add `unwrapFakeOverridesOrDelegated` for symbols --- .../checkers/declaration/FirJsNameClashClassMembersChecker.kt | 4 +--- .../fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt | 3 +++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashClassMembersChecker.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashClassMembersChecker.kt index d8f65dd7094..111f439442b 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashClassMembersChecker.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/declaration/FirJsNameClashClassMembersChecker.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.utils.isFinal import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol -import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirIntersectionCallableSymbol @@ -182,9 +181,8 @@ object FirJsNameClashClassMembersChecker : FirClassChecker() { val nonFakeOverrideClashes = stableNames.collectNonFakeOverrideClashes { it in fakeOverrideStableNames } for ((symbol, clashedWith) in nonFakeOverrideClashes) { - @OptIn(SymbolInternals::class) val source = when (symbol) { - is FirCallableSymbol<*> -> symbol.fir.unwrapFakeOverridesOrDelegated().source + is FirCallableSymbol<*> -> symbol.unwrapFakeOverridesOrDelegated().source else -> symbol.source } ?: declaration.source reporter.reportOn(source, FirJsErrors.JS_NAME_CLASH, name, clashedWith, context) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt index 5dee002f783..7088f8af1c3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt @@ -130,6 +130,9 @@ inline fun D.unwrapFakeOverridesOrDelegated } while (true) } +inline fun > D.unwrapFakeOverridesOrDelegated(): FirCallableSymbol<*> = + fir.unwrapFakeOverridesOrDelegated().symbol + inline fun D.unwrapSubstitutionOverrides(): D { var current = this