[JS IR] split fqn-ish JsNames before resolving temporary names
This commit is contained in:
committed by
TeamCityServer
parent
a5d9cb0cc6
commit
05e8bfcd2a
+15
@@ -8,6 +8,21 @@ package org.jetbrains.kotlin.ir.backend.js.transformers.irToJs
|
|||||||
import org.jetbrains.kotlin.js.backend.ast.*
|
import org.jetbrains.kotlin.js.backend.ast.*
|
||||||
|
|
||||||
fun JsNode.resolveTemporaryNames() {
|
fun JsNode.resolveTemporaryNames() {
|
||||||
|
object : JsVisitorWithContextImpl() {
|
||||||
|
override fun endVisit(x: JsNameRef, ctx: JsContext<JsNode>) {
|
||||||
|
x.name?.ident?.let {
|
||||||
|
if (it.contains('.')) {
|
||||||
|
val parts = it.split('.').map { JsName(it, false) }
|
||||||
|
var result = JsNameRef(parts[0])
|
||||||
|
for (i in 1 until parts.size) {
|
||||||
|
result = JsNameRef(parts[i], result)
|
||||||
|
}
|
||||||
|
ctx.replaceMe(result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.accept(this)
|
||||||
|
|
||||||
val renamings = resolveNames()
|
val renamings = resolveNames()
|
||||||
accept(object : RecursiveJsVisitor() {
|
accept(object : RecursiveJsVisitor() {
|
||||||
override fun visitElement(node: JsNode) {
|
override fun visitElement(node: JsNode) {
|
||||||
|
|||||||
Reference in New Issue
Block a user