IR text tests: Don't dump signatures for local declarations

1. Local declarations don't participate in IR-linkage, because they
can be referenced only inside the same body -> can be dropped
from IR text tests.

2. Mangled names for private declarations computed by descriptors/fir
are actually not used anywhere (they are recomputed by IR
immediately before serialization of IR). But sometimes such
mangled names diverge between K1 and K2 -> don't check them, but
always check mangled names computed by IR even for private
declarations.

3. Also: Drop DUMP_LOCAL_DECLARATION_SIGNATURES test directive.

^KT-57428 Obsolete
^KT-57430 Obsolete
^KT-57434 Obsolete
^KT-57778 Obsolete
^KT-57775 Obsolete
This commit is contained in:
Dmitriy Dolovov
2023-11-20 19:10:54 +01:00
committed by Space Team
parent 514ae0c813
commit 02604060ae
125 changed files with 259 additions and 1376 deletions
@@ -7,11 +7,6 @@ class Test1 : IBase {
// Public signature: /Test1.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Test1.$$delegate_0
// Public signature: /Test1.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: BaseImpl
// CHECK JVM_IR:
// Mangled name: Test1#bar(){}kotlin.Int
// Public signature: /Test1.bar|-6436649210114349217[0]
@@ -45,16 +40,6 @@ class Test2 : IBase, IOther {
// Public signature: /Test2.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: Test2.$$delegate_0
// Public signature: /Test2.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: BaseImpl
// CHECK:
// Mangled name: Test2.$$delegate_1
// Public signature: /Test2.$$delegate_1|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_1: IOther
// CHECK JVM_IR:
// Mangled name: Test2#bar(){}kotlin.Int
// Public signature: /Test2.bar|-6436649210114349217[0]
@@ -8,11 +8,6 @@ class C : IFooBar {
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C.$$delegate_0
// Public signature: /C.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: FooBarImpl
// CHECK:
// Mangled name: C#foo(){}
// Public signature: /C.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
+2 -8
View File
@@ -1,12 +1,6 @@
// WITH_STDLIB
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JS_IR JS_IR_ES6 NATIVE
// ^ KT-61141: absent enum fake_overrides: finalize (K1), getDeclaringClass (K1), clone (K2)
enum class TestEnum1 {
TEST1, TEST2
+2 -8
View File
@@ -1,11 +1,5 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JS_IR JS_IR_ES6 NATIVE
// ^ KT-61141: absent enum fake_overrides: finalize (K1), getDeclaringClass (K1), clone (K2)
enum class TestFinalEnum1 {
X1
@@ -1,11 +1,5 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JS_IR JS_IR_ES6 NATIVE
// ^ KT-61141: absent enum fake_overrides: finalize (K1), getDeclaringClass (K1), clone (K2)
enum class A {
X("asd"),
@@ -1,12 +1,6 @@
// WITH_STDLIB
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775
// KT-61141: absent enum fake_overrides: finalize(K1), getDeclaringClass(K1), clone(K2),
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JS_IR JS_IR_ES6 NATIVE
// ^ KT-61141: absent enum fake_overrides: finalize (K1), getDeclaringClass (K1), clone (K2)
enum class Test0(val x: Int) {
ZERO;
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57788
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57788: Fix computing mangled names of types with @EnhancedNullability from IR-based declaration descriptors
// FILE: implicitNotNullOnDelegatedImplementation.kt
interface IFoo {
@@ -79,11 +79,6 @@ class TestJFoo : IFoo {
// Public signature: /TestJFoo.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: TestJFoo.$$delegate_0
// Public signature: /TestJFoo.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: JFoo
// CHECK JVM_IR:
// Mangled name: TestJFoo#foo(){}kotlin.String
// Public signature: /TestJFoo.foo|485335955883620819[0]
@@ -101,11 +96,6 @@ class TestK1 : IFoo {
// Public signature: /TestK1.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: TestK1.$$delegate_0
// Public signature: /TestK1.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: K1
// CHECK JVM_IR:
// Mangled name: TestK1#foo(){}kotlin.String
// Public signature: /TestK1.foo|485335955883620819[0]
@@ -123,11 +113,6 @@ class TestK2 : IFoo {
// Public signature: /TestK2.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: TestK2.$$delegate_0
// Public signature: /TestK2.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: K2
// CHECK JVM_IR:
// Mangled name: TestK2#foo(){}kotlin.String
// Public signature: /TestK2.foo|485335955883620819[0]
@@ -145,11 +130,6 @@ class TestK3 : IFoo {
// Public signature: /TestK3.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: TestK3.$$delegate_0
// Public signature: /TestK3.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: K3
// CHECK JVM_IR:
// Mangled name: TestK3#foo(){}kotlin.String
// Public signature: /TestK3.foo|485335955883620819[0]
@@ -167,11 +147,6 @@ class TestK4 : IFoo {
// Public signature: /TestK4.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: TestK4.$$delegate_0
// Public signature: /TestK4.$$delegate_0|-7286425919675154353[0]
// Public signature debug description:
private /* final field */ val $$delegate_0: K4
// CHECK JVM_IR:
// Mangled name: TestK4#foo(){}kotlin.String
// Public signature: /TestK4.foo|485335955883620819[0]
+2 -3
View File
@@ -1,8 +1,7 @@
// TARGET_BACKEND: JVM
// DUMP_LOCAL_DECLARATION_SIGNATURES
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57430, KT-57788
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57788: Fix computing mangled names of types with @EnhancedNullability from IR-based declaration descriptors
// FILE: kt43217.kt
class A {
+4 -44
View File
@@ -7,49 +7,9 @@ class A {
// Public signature: /A.b|772347207915745207[0]
// Public signature debug description: {}b
private val b: <no name provided>
field
// 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
}
// CHECK JVM_IR:
// CHECK:
// 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
@@ -72,20 +32,20 @@ class C : DoubleExpression {
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// CHECK:
// Mangled name: C#isEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
// Public signature: /C.isEqualTo|6549516741996743028[0]
// Public signature debug description: isEqualTo(kotlin.Double){}kotlin.Any{EnhancedNullability}
@Override
/* fake */ override fun isEqualTo(value: Double): @EnhancedNullability Any
// CHECK JVM_IR:
// CHECK:
// Mangled name: C#isEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
// Public signature: /C.isEqualTo|3976283770497294654[0]
// Public signature debug description: isEqualTo(kotlin.Double{EnhancedNullability}){}kotlin.Any{EnhancedNullability}
/* fake */ override fun isEqualTo(value: @EnhancedNullability Double): @EnhancedNullability Any
// CHECK JVM_IR:
// CHECK:
// Mangled name: C#get(){}kotlin.Double
// Public signature: /C.get|-8276149070669614990[0]
// Public signature debug description: get(){}kotlin.Double
-4
View File
@@ -1,8 +1,4 @@
// FIR_IDENTICAL
// DUMP_LOCAL_DECLARATION_SIGNATURES
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57430
fun outer() {
class LocalClass {
@@ -3,19 +3,4 @@
// Public signature: /outer|1607449560170809066[0]
// Public signature debug description: outer(){}
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
}
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// WITH_STDLIB
// DUMP_LOCAL_DECLARATION_SIGNATURES
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57430
interface IFoo {
fun foo()
@@ -3,27 +3,6 @@
// Public signature: /test1|6005685442305498193[0]
// Public signature debug description: {}test1
val test1: Any
field
// 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 */
}
// CHECK JVM_IR:
// Mangled name: #<get-test1>(){}kotlin.Any
// Public signature: /test1.<get-test1>|-6000098324399857556[0]
@@ -39,34 +18,6 @@ val test1: Any
// Public signature: /test2|2517758057000911509[0]
// Public signature debug description: {}test2
val test2: IFoo
field
// 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
}
// CHECK JVM_IR:
// Mangled name: #<get-test2>(){}IFoo
// Public signature: /test2.<get-test2>|8558399082919905120[0]
@@ -114,30 +65,6 @@ class Outer {
// Public signature: /Outer.test3|-3759735065270951803[0]
// Public signature debug description: test3(){}
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
}
}
@@ -163,28 +90,4 @@ interface IFoo {
// Public signature: /test4|5715080467126173402[0]
// Public signature debug description: test4@Outer(){}
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
}