[JS IR] Remove unnecessary overrides in IrNamer
This commit is contained in:
committed by
TeamCityServer
parent
0921235637
commit
b76f5547e4
@@ -9,12 +9,7 @@ import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.backend.common.ir.isTopLevel
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
|
||||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
|
||||||
import org.jetbrains.kotlin.js.backend.ast.JsName
|
import org.jetbrains.kotlin.js.backend.ast.JsName
|
||||||
import org.jetbrains.kotlin.js.backend.ast.JsNameRef
|
|
||||||
|
|
||||||
class IrNamerImpl(
|
class IrNamerImpl(
|
||||||
private val newNameTables: NameTables,
|
private val newNameTables: NameTables,
|
||||||
@@ -33,50 +28,4 @@ class IrNamerImpl(
|
|||||||
require(!field.isStatic)
|
require(!field.isStatic)
|
||||||
return newNameTables.getNameForMemberField(field).toJsName()
|
return newNameTables.getNameForMemberField(field).toJsName()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getNameForField(field: IrField): JsName {
|
|
||||||
return if (field.isStatic || field.parent is IrScript) {
|
|
||||||
getNameForStaticDeclaration(field)
|
|
||||||
} else {
|
|
||||||
getNameForMemberField(field)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
override fun getNameForClass(klass: IrClass): JsName =
|
|
||||||
getNameForStaticDeclaration(klass)
|
|
||||||
|
|
||||||
override fun getNameForStaticFunction(function: IrSimpleFunction): JsName =
|
|
||||||
getNameForStaticDeclaration(function)
|
|
||||||
|
|
||||||
override fun getNameForProperty(property: IrProperty): JsName =
|
|
||||||
if (property.isTopLevel) getNameForStaticDeclaration(property) else property.getJsNameOrKotlinName().asString().toJsName()
|
|
||||||
|
|
||||||
override fun getRefForExternalClass(klass: IrClass): JsNameRef {
|
|
||||||
val parent = klass.parent
|
|
||||||
if (klass.isCompanion)
|
|
||||||
return getRefForExternalClass(parent as IrClass)
|
|
||||||
|
|
||||||
val currentClassName = if (klass.isTopLevel) getNameForStaticDeclaration(klass).ident else klass.getJsNameOrKotlinName().identifier
|
|
||||||
return when (parent) {
|
|
||||||
is IrClass ->
|
|
||||||
JsNameRef(currentClassName, getRefForExternalClass(parent))
|
|
||||||
|
|
||||||
is IrPackageFragment ->
|
|
||||||
JsNameRef(currentClassName)
|
|
||||||
|
|
||||||
else ->
|
|
||||||
error("Unsupported external class parent $parent")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private val associatedObjectKeyMap = mutableMapOf<IrClass, Int>()
|
|
||||||
|
|
||||||
override fun getAssociatedObjectKey(irClass: IrClass): Int? {
|
|
||||||
if (irClass.isAssociatedObjectAnnotatedAnnotation) {
|
|
||||||
|
|
||||||
return associatedObjectKeyMap.getOrPut(irClass) { associatedObjectKeyMap.size }
|
|
||||||
}
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user