From 98fdaeb9a752f75bb1048d56348803e6d55def76 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Tue, 12 Sep 2023 14:21:01 +0200 Subject: [PATCH] [FIR JS] Fix the false report of JS_NAME_CLASH on external generic class ^KT-61862 Fixed --- .../declaration/FirJsNameClashClassMembersChecker.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 59c7dae7268..89ce055d249 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 @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.analysis.js.checkers.* import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsStableName import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration +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 @@ -67,10 +68,14 @@ object FirJsNameClashClassMembersChecker : FirClassChecker() { if (stableName.isPresentInGeneratedCode) { add(stableName.copy(symbol = targetSymbol)) } else { + val isPresentInGeneratedCode = when (targetSymbol.origin) { + is FirDeclarationOrigin.SubstitutionOverride -> overriddenSymbol.isPresentInGeneratedCode(context.session) + else -> targetSymbol.isPresentInGeneratedCode(context.session) + } val inheritedExternalName = stableName.copy( symbol = targetSymbol, canBeMangled = false, - isPresentInGeneratedCode = targetSymbol.isPresentInGeneratedCode(context.session) + isPresentInGeneratedCode = isPresentInGeneratedCode ) add(inheritedExternalName) }