[FIR JS] Fix the false report of JS_NAME_CLASH on external generic class

^KT-61862 Fixed
This commit is contained in:
Alexander Korepanov
2023-09-12 14:21:01 +02:00
committed by Space Team
parent 9e7d9f3b53
commit 98fdaeb9a7
@@ -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)
}