From 62c86f281399c722a118ee8f90d977ee00996eaa Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 2 Mar 2020 12:44:08 +0300 Subject: [PATCH] [JS IR] Remove filthy hacks from namer --- .../kotlin/ir/backend/js/utils/NameTables.kt | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt index 4acc690d607..c92db8e9874 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt @@ -282,15 +282,7 @@ class NameTables( private fun generateNameForMemberFunction(declaration: IrSimpleFunction) { when (val signature = functionSignature(declaration)) { is StableNameSignature -> memberNames.declareStableName(signature, signature.name) - is ParameterTypeBasedSignature -> { - // TODO: Fix hack: Coroutines runtime currently relies on stable names - // of `invoke` functions in FunctionN interfaces - if (declaration.name.asString().startsWith("invoke")) { - memberNames.declareStableName(signature, sanitizeName(signature.mangledName)) - } else { - memberNames.declareFreshName(signature, signature.suggestedName) - } - } + is ParameterTypeBasedSignature -> memberNames.declareFreshName(signature, signature.suggestedName) } } @@ -309,11 +301,6 @@ class NameTables( val global: String? = globalNames.names[declaration] if (global != null) return global - if (declaration is IrTypeParameter) { - // TODO: Fix type parameters - return declaration.name.identifier - } - var parent: IrDeclarationParent = declaration.parent while (parent is IrDeclaration) { val parentLocalNames = localNames[parent] @@ -325,7 +312,7 @@ class NameTables( parent = parent.parent } - return mappedNames[mapToKey(declaration)] ?: error("Can't find name for declaration ${declaration.fqNameWhenAvailable}") + return mappedNames[mapToKey(declaration)] ?: error("Can't find name for declaration ${declaration.render()}") } fun getNameForMemberField(field: IrField): String { @@ -347,11 +334,6 @@ class NameTables( val signature = functionSignature(function) val name = memberNames.names[signature] ?: mappedNames[mapToKey(signature)] - // TODO: Fix hack: Coroutines runtime currently relies on stable names - // of `invoke` functions in FunctionN interfaces - if (name == null && signature is ParameterTypeBasedSignature && signature.suggestedName.startsWith("invoke")) - return signature.suggestedName - // TODO Add a compiler flag, which enables this behaviour // TODO remove in DCE if (name == null) {