[FIR JS] Fix the false report of JS_NAME_CLASH on external generic class
^KT-61862 Fixed
This commit is contained in:
committed by
Space Team
parent
9e7d9f3b53
commit
98fdaeb9a7
+6
-1
@@ -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.analysis.js.checkers.FirJsStableName
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
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.declarations.utils.isFinal
|
||||||
import org.jetbrains.kotlin.fir.scopes.*
|
import org.jetbrains.kotlin.fir.scopes.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -67,10 +68,14 @@ object FirJsNameClashClassMembersChecker : FirClassChecker() {
|
|||||||
if (stableName.isPresentInGeneratedCode) {
|
if (stableName.isPresentInGeneratedCode) {
|
||||||
add(stableName.copy(symbol = targetSymbol))
|
add(stableName.copy(symbol = targetSymbol))
|
||||||
} else {
|
} else {
|
||||||
|
val isPresentInGeneratedCode = when (targetSymbol.origin) {
|
||||||
|
is FirDeclarationOrigin.SubstitutionOverride -> overriddenSymbol.isPresentInGeneratedCode(context.session)
|
||||||
|
else -> targetSymbol.isPresentInGeneratedCode(context.session)
|
||||||
|
}
|
||||||
val inheritedExternalName = stableName.copy(
|
val inheritedExternalName = stableName.copy(
|
||||||
symbol = targetSymbol,
|
symbol = targetSymbol,
|
||||||
canBeMangled = false,
|
canBeMangled = false,
|
||||||
isPresentInGeneratedCode = targetSymbol.isPresentInGeneratedCode(context.session)
|
isPresentInGeneratedCode = isPresentInGeneratedCode
|
||||||
)
|
)
|
||||||
add(inheritedExternalName)
|
add(inheritedExternalName)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user