[JS IR] Avoid name clashes for @JsQualifier-annotated declarations

#KT-42039 Fixed
This commit is contained in:
Sergej Jaskiewicz
2021-09-03 17:00:10 +03:00
committed by TeamCityServer
parent 681ff2dcec
commit 2f07589b42
6 changed files with 42 additions and 9 deletions
@@ -6,13 +6,8 @@
package org.jetbrains.kotlin.ir.backend.js.utils
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.IrConstructor
import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName
import org.jetbrains.kotlin.ir.declarations.IrDeclarationBase
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
import org.jetbrains.kotlin.ir.util.isPropertyAccessor
import org.jetbrains.kotlin.ir.util.isPropertyField
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.utils.addIfNotNull
@@ -76,14 +71,14 @@ class StableNamesCollector : IrElementVisitorVoid {
val importedFromModuleOnly = declaration.isImportedFromModuleOnly()
val jsName = declaration.getJsName()
val jsQualifier = declaration.getJsQualifier()
val jsQualifier = declaration.fileOrNull?.getJsQualifier()
return when {
importedFromModuleOnly ->
null
jsQualifier != null ->
jsQualifier.split('1')[0]
jsQualifier.substringBefore('.')
jsName != null ->
jsName