[IR] In irText tests, test full mangled names only computed from IR

We plan to disable computing full mangled names of declarations in all
manglers except the IR mangler (see the subsequent commits).

From now on, in irText tests we dump only the following mangled names:

- Full mangled names computed using the IR mangler
- Signature mangled names computed using the Descriptor mangler
- Signature mangled names computed using the IR mangler
- Signature mangled names computed using the FIR mangler

Here by a full mangled name we mean the mangled name of a declaration
computed using the `MangleMode.FULL` mode. Those mangled names include
the mangled names of the declaration'a parents.

By a signature mangled name we mean the mangled name of a declaration
computed using the `MangleMode.SIGNATURE` mode.
These mangled names are used to compute an `IdSignature` for
the declaration, hence the name.
This commit is contained in:
Sergej Jaskiewicz
2023-11-07 19:15:06 +01:00
committed by Space Team
parent 9ccce52915
commit 69aeddcba8
51 changed files with 372 additions and 91 deletions
+12
View File
@@ -11,26 +11,36 @@ class A {
// CHECK JVM_IR:
// Mangled name (compatible mode: false): A{}b.<no name provided>
// Mangled name (compatible mode: true): A.b.<no name provided>
// Mangled name for the signature (compatible mode: false): {}b
// Mangled name for the signature (compatible mode: true):
local class <no name provided> : DoubleExpression {
// CHECK:
// Mangled name (compatible mode: false): A{}b.<no name provided>#<init>(){}
// Mangled name (compatible mode: true): A.b.<no name provided>#<init>(){}
// Mangled name for the signature (compatible mode: false): {}b<init>(){}
// Mangled name for the signature (compatible mode: true): <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name (compatible mode: false): A{}b.<no name provided>#isEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
// Mangled name (compatible mode: true): A.b.<no name provided>#isEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
// Mangled name for the signature (compatible mode: false): {}bisEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
// Mangled name for the signature (compatible mode: true): isEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
@Override
/* fake */ override fun isEqualTo(value: Double): @EnhancedNullability Any
// CHECK JVM_IR:
// Mangled name (compatible mode: false): A{}b.<no name provided>#isEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
// Mangled name (compatible mode: true): A.b.<no name provided>#isEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
// Mangled name for the signature (compatible mode: false): {}bisEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
// Mangled name for the signature (compatible mode: true): isEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
/* fake */ override fun isEqualTo(value: @EnhancedNullability Double): @EnhancedNullability Any
// CHECK JVM_IR:
// Mangled name (compatible mode: false): A{}b.<no name provided>#get(){}kotlin.Double
// Mangled name (compatible mode: true): A.b.<no name provided>#get(){}kotlin.Double
// Mangled name for the signature (compatible mode: false): {}bget(){}kotlin.Double
// Mangled name for the signature (compatible mode: true): get(){}kotlin.Double
override fun get(): Double
}
@@ -38,6 +48,8 @@ class A {
// CHECK JVM_IR:
// Mangled name (compatible mode: false): A#<get-b>(){}A{}b.<no name provided>
// Mangled name (compatible mode: true): A#<get-b>(){}A.b.<no name provided>
// Mangled name for the signature (compatible mode: false): <get-b>(){}A{}b.<no name provided>
// Mangled name for the signature (compatible mode: true): <get-b>(){}A.b.<no name provided>
// Public signature: /A.b.<get-b>|-6508357397455690228[0]
// Public signature debug description: <get-b>(){}A{}b.<no name provided>
private get
@@ -5,13 +5,16 @@
fun outer(): Unit
// CHECK:
// Mangled name: #outer(){}.LocalClass
// Mangled name for the signature: outer(){}
local class LocalClass {
// CHECK:
// Mangled name: #outer(){}.LocalClass#<init>(){}
// Mangled name for the signature: outer(){}<init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: #outer(){}.LocalClass#foo(){}
// Mangled name for the signature: outer(){}foo(){}
fun foo(): Unit
}
@@ -7,13 +7,19 @@ val test1: Any
// CHECK JVM_IR:
// Mangled name (compatible mode: false): {}test1.<no name provided>
// Mangled name (compatible mode: true): test1.<no name provided>
// Mangled name for the signature (compatible mode: false): {}test1
// Mangled name for the signature (compatible mode: true):
// CHECK JS_IR NATIVE:
// Mangled name (compatible mode: false): {}test1.<no name provided>
// Mangled name (compatible mode: true): test1.<no name provided>
// Mangled name for the signature (compatible mode: false): {}test1
// Mangled name for the signature (compatible mode: true):
local class <no name provided> {
// CHECK:
// Mangled name (compatible mode: false): {}test1.<no name provided>#<init>(){}
// Mangled name (compatible mode: true): test1.<no name provided>#<init>(){}
// Mangled name for the signature (compatible mode: false): {}test1<init>(){}
// Mangled name for the signature (compatible mode: true): <init>(){}
constructor() /* primary */
}
@@ -37,18 +43,26 @@ val test2: IFoo
// CHECK JVM_IR:
// Mangled name (compatible mode: false): {}test2.<no name provided>
// Mangled name (compatible mode: true): test2.<no name provided>
// Mangled name for the signature (compatible mode: false): {}test2
// Mangled name for the signature (compatible mode: true):
// CHECK JS_IR NATIVE:
// Mangled name (compatible mode: false): {}test2.<no name provided>
// Mangled name (compatible mode: true): test2.<no name provided>
// Mangled name for the signature (compatible mode: false): {}test2
// Mangled name for the signature (compatible mode: true):
local class <no name provided> : IFoo {
// CHECK:
// Mangled name (compatible mode: false): {}test2.<no name provided>#<init>(){}
// Mangled name (compatible mode: true): test2.<no name provided>#<init>(){}
// Mangled name for the signature (compatible mode: false): {}test2<init>(){}
// Mangled name for the signature (compatible mode: true): <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name (compatible mode: false): {}test2.<no name provided>#foo(){}
// Mangled name (compatible mode: true): test2.<no name provided>#foo(){}
// Mangled name for the signature (compatible mode: false): {}test2foo(){}
// Mangled name for the signature (compatible mode: true): foo(){}
override fun foo(): Unit
}
@@ -102,19 +116,25 @@ class Outer {
fun test3(): Inner
// CHECK JVM_IR:
// Mangled name: Outer#test3(){}Outer.Inner.<no name provided>
// Mangled name for the signature: test3(){}Outer.Inner
// CHECK JS_IR NATIVE:
// Mangled name: Outer#test3(){}.<no name provided>
// Mangled name for the signature: test3(){}
local class <no name provided> : Inner {
// CHECK JVM_IR:
// Mangled name: Outer#test3(){}Outer.Inner.<no name provided>#<init>(){}
// Mangled name for the signature: test3(){}Outer.Inner<init>(){}
// CHECK JS_IR NATIVE:
// Mangled name: Outer#test3(){}.<no name provided>#<init>(){}
// Mangled name for the signature: test3(){}<init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: Outer#test3(){}Outer.Inner.<no name provided>#foo(){}
// Mangled name for the signature: test3(){}Outer.Innerfoo(){}
// CHECK JS_IR NATIVE:
// Mangled name: Outer#test3(){}.<no name provided>#foo(){}
// Mangled name for the signature: test3(){}foo(){}
override fun foo(): Unit
}
@@ -145,19 +165,25 @@ interface IFoo {
fun Outer.test4(): Inner
// CHECK JVM_IR:
// Mangled name: #test4@Outer(){}Outer.Inner.<no name provided>
// Mangled name for the signature: test4@Outer(){}Outer.Inner
// CHECK JS_IR NATIVE:
// Mangled name: #test4@Outer(){}.<no name provided>
// Mangled name for the signature: test4@Outer(){}
local class <no name provided> : Inner {
// CHECK JVM_IR:
// Mangled name: #test4@Outer(){}Outer.Inner.<no name provided>#<init>(){}
// Mangled name for the signature: test4@Outer(){}Outer.Inner<init>(){}
// CHECK JS_IR NATIVE:
// Mangled name: #test4@Outer(){}.<no name provided>#<init>(){}
// Mangled name for the signature: test4@Outer(){}<init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: #test4@Outer(){}Outer.Inner.<no name provided>#foo(){}
// Mangled name for the signature: test4@Outer(){}Outer.Innerfoo(){}
// CHECK JS_IR NATIVE:
// Mangled name: #test4@Outer(){}.<no name provided>#foo(){}
// Mangled name for the signature: test4@Outer(){}foo(){}
override fun foo(): Unit
}