diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt index d8af581ad99..f9905f48d8c 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt @@ -7,13 +7,10 @@ package org.jetbrains.kotlin.fir.backend.jvm import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleMode import org.jetbrains.kotlin.fir.backend.FirMangleComputer -import org.jetbrains.kotlin.fir.containingClassLookupTag import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.originalForSubstitutionOverride -import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.providers.firProvider -import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.types.coneType @@ -24,7 +21,7 @@ class FirJvmMangleComputer( builder: StringBuilder, mode: MangleMode, ) : FirMangleComputer(builder, mode) { - override val visitor = JvmVisitor() + override val visitor: Visitor = JvmVisitor() override fun FirFunction.platformSpecificSuffix(): String? = if (this is FirSimpleFunction && name.asString() == "main") @@ -36,26 +33,6 @@ class FirJvmMangleComputer( override fun copy(newMode: MangleMode): FirJvmMangleComputer = FirJvmMangleComputer(builder, newMode) - // FIXME this implementation causes the mangler to deliver different result than IR mangler. Consider using base method instead - override fun FirDeclaration.visitParent() { - val (parentPackageFqName, parentClassId) = when (this) { - is FirCallableDeclaration -> this.containingClassLookupTag()?.classId?.let { it.packageFqName to it } ?: return - is FirClassLikeDeclaration -> this.symbol.classId.let { it.packageFqName to it.outerClassId } - else -> return - } - if (parentClassId != null && !parentClassId.isLocal) { - val parentClassLike = this.moduleData.session.symbolProvider.getClassLikeSymbolByClassId(parentClassId)?.fir - ?: error("Attempt to find parent ($parentClassId) for probably-local declaration!") - if (parentClassLike is FirRegularClass || parentClassLike is FirTypeAlias) { - parentClassLike.visit() - } else { - error("Strange class-like declaration: ${parentClassLike.render()}") - } - } else if (parentClassId == null && !parentPackageFqName.isRoot) { - builder.appendName(parentPackageFqName.asString()) - } - } - // FIXME this implementation causes the mangler to deliver different result than IR mangler. Consider using base method instead override fun getEffectiveParent(typeParameter: ConeTypeParameterLookupTag): FirMemberDeclaration = typeParameter.symbol.fir.run { @@ -78,7 +55,7 @@ class FirJvmMangleComputer( throw IllegalStateException("Should not be here!") } - protected inner class JvmVisitor : Visitor() { + private inner class JvmVisitor : Visitor() { override fun visitField(field: FirField) { if (field is FirJavaField) { field.mangleSimpleDeclaration(field.name.asString()) diff --git a/compiler/testData/ir/irText/declarations/kt45308.kt b/compiler/testData/ir/irText/declarations/kt45308.kt index 3d7f4d3ae8e..55509470ccc 100644 --- a/compiler/testData/ir/irText/declarations/kt45308.kt +++ b/compiler/testData/ir/irText/declarations/kt45308.kt @@ -2,9 +2,6 @@ // IGNORE_BACKEND_K1: JS_IR // IGNORE_BACKEND_K1: JS_IR_ES6 -// MUTE_SIGNATURE_COMPARISON_K2: ANY -// ^ KT-57433 - // MODULE: a // FILE: a.kt package a diff --git a/compiler/testData/ir/irText/declarations/kt45308.sig.kt.txt b/compiler/testData/ir/irText/declarations/kt45308.sig.kt.txt index 625515bf05b..4d0efb64096 100644 --- a/compiler/testData/ir/irText/declarations/kt45308.sig.kt.txt +++ b/compiler/testData/ir/irText/declarations/kt45308.sig.kt.txt @@ -13,6 +13,9 @@ package b // CHECK JVM_IR: // Mangled name: b#foo(kotlin.Function0){}kotlin.String // Public signature: b/foo|-5020381652845254261[0] +// CHECK JS_IR NATIVE: +// Mangled name: b#foo(kotlin.Function0){} +// Public signature: b/foo|-2695324588787180624[0] fun foo(f: Function0): String // MODULE: c @@ -21,5 +24,8 @@ fun foo(f: Function0): String // CHECK JVM_IR: // Mangled name: #box(){}kotlin.String // Public signature: /box|-9347091776561469[0] +// CHECK JS_IR NATIVE: +// Mangled name: #box(){} +// Public signature: /box|2173511048851971368[0] fun box(): String diff --git a/compiler/testData/ir/irText/declarations/provideDelegate/javaDelegate.kt b/compiler/testData/ir/irText/declarations/provideDelegate/javaDelegate.kt index 1bf5f96045d..46a4300f9ac 100644 --- a/compiler/testData/ir/irText/declarations/provideDelegate/javaDelegate.kt +++ b/compiler/testData/ir/irText/declarations/provideDelegate/javaDelegate.kt @@ -2,9 +2,6 @@ // TARGET_BACKEND: JVM // SKIP_KT_DUMP -// MUTE_SIGNATURE_COMPARISON_K2: ANY -// ^ KT-57433 - // FILE: box.kt package k diff --git a/compiler/testData/ir/irText/expressions/ambiguousFieldAccess.kt b/compiler/testData/ir/irText/expressions/ambiguousFieldAccess.kt index f7f2bd795d5..de7d1558425 100644 --- a/compiler/testData/ir/irText/expressions/ambiguousFieldAccess.kt +++ b/compiler/testData/ir/irText/expressions/ambiguousFieldAccess.kt @@ -2,9 +2,6 @@ // SKIP_KLIB_TEST // Related to KT-49507 -// MUTE_SIGNATURE_COMPARISON_K2: ANY -// ^ KT-57433 - // FILE: A.java public class A { protected String x = "1"; diff --git a/compiler/testData/ir/irText/expressions/builtinOperators.kt b/compiler/testData/ir/irText/expressions/builtinOperators.kt index 57087f30416..dc62884b46e 100644 --- a/compiler/testData/ir/irText/expressions/builtinOperators.kt +++ b/compiler/testData/ir/irText/expressions/builtinOperators.kt @@ -1,8 +1,5 @@ // FIR_IDENTICAL -// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433 - // FILE: test.kt package test diff --git a/compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt b/compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt index 60f7e41fac7..3282a8c221f 100644 --- a/compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt +++ b/compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt @@ -1,6 +1,3 @@ -// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433 - package test inline fun foo(x: () -> Unit) {} diff --git a/compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt b/compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt index dc782ef7b3b..eebf901bfd7 100644 --- a/compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt +++ b/compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt @@ -1,7 +1,7 @@ // FIR_IDENTICAL // MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433, KT-57429 +// ^ KT-57429 package test diff --git a/compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt b/compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt index dc84100f047..3898f79e0ed 100644 --- a/compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt +++ b/compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt @@ -1,8 +1,5 @@ // FIR_IDENTICAL -// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433 - package test import test.Foo.a diff --git a/compiler/testData/ir/irText/expressions/funImportedFromObject.kt b/compiler/testData/ir/irText/expressions/funImportedFromObject.kt index 907c3e3ad4d..575fc1bcef5 100644 --- a/compiler/testData/ir/irText/expressions/funImportedFromObject.kt +++ b/compiler/testData/ir/irText/expressions/funImportedFromObject.kt @@ -1,8 +1,5 @@ // FIR_IDENTICAL -// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433 - package test import test.Host.foo diff --git a/compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt b/compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt index c0a3f9552c4..8e9c8073621 100644 --- a/compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt +++ b/compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt @@ -1,6 +1,3 @@ -// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR -// ^ KT-57433 - package test class C