Skip to content

Commit f7c84c6

Browse files
fzhinkinshanshin
authored andcommitted
[ABI Validation] Group dumped declaration by declaration kind (class, function, property, etc.)
Closes Kotlin/binary-compatibility-validator#197 Pull request Kotlin/binary-compatibility-validator#224 Moved from Kotlin/binary-compatibility-validator@a835a73
1 parent 933f844 commit f7c84c6

32 files changed

+672
-383
lines changed

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfig.klib.clash.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
// Library unique name: <testproject>
1010
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1111
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
12-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1312
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1413
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
14+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1515
}
1616
// Targets: [linux]
1717
final fun (org.different.pack/BuildConfig).org.different.pack/linuxArm64Specific(): kotlin/Int // org.different.pack/linuxArm64Specific|linuxArm64Specific@org.different.pack.BuildConfig(){}[0]

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfig.klib.custom.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1211
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1312
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1414
}

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfig.klib.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1211
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1312
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1414
}

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfig.klib.linuxX64Only.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1211
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1312
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1414
}

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfig.klib.web.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1211
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1312
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1414
}

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfigLinux.klib.grouping.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
// Library unique name: <testproject>
1010
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1111
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
12-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1312
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1413
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
14+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1515
}
1616
// Targets: [linux]
1717
final fun (org.different.pack/BuildConfig).org.different.pack/linuxArm64Specific(): kotlin/Int // org.different.pack/linuxArm64Specific|linuxArm64Specific@org.different.pack.BuildConfig(){}[0]

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfigLinuxArm64Extra.klib.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1211
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1312
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
1414
}
1515
// Targets: [linuxArm64]
1616
final fun (org.different.pack/BuildConfig).org.different.pack/linuxArm64Specific(): kotlin/Int // org.different.pack/linuxArm64Specific|linuxArm64Specific@org.different.pack.BuildConfig(){}[0]

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/AnotherBuildConfigModified.klib.dump

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
// Library unique name: <testproject>
99
final class org.different.pack/BuildConfig { // org.different.pack/BuildConfig|null[0]
1010
constructor <init>() // org.different.pack/BuildConfig.<init>|<init>(){}[0]
11-
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
12-
final fun f2(): kotlin/Int // org.different.pack/BuildConfig.f2|f2(){}[0]
1311
final val p1 // org.different.pack/BuildConfig.p1|{}p1[0]
1412
final fun <get-p1>(): kotlin/Int // org.different.pack/BuildConfig.p1.<get-p1>|<get-p1>(){}[0]
13+
final fun f1(): kotlin/Int // org.different.pack/BuildConfig.f1|f1(){}[0]
14+
final fun f2(): kotlin/Int // org.different.pack/BuildConfig.f2|f2(){}[0]
1515
}

libraries/tools/abi-validation/src/functionalTest/resources/examples/classes/TopLevelDeclarations.klib.all.dump

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,58 @@
66
// - Show declarations: true
77

88
// Library unique name: <testproject>
9-
abstract class examples.classes/AC { // examples.classes/AC|null[0]
10-
abstract fun a() // examples.classes/AC.a|a(){}[0]
11-
constructor <init>() // examples.classes/AC.<init>|<init>(){}[0]
12-
final fun b() // examples.classes/AC.b|b(){}[0]
9+
open annotation class examples.classes/A : kotlin/Annotation { // examples.classes/A|null[0]
10+
constructor <init>() // examples.classes/A.<init>|<init>(){}[0]
11+
}
12+
open annotation class examples.classes/AA : kotlin/Annotation { // examples.classes/AA|null[0]
13+
constructor <init>() // examples.classes/AA.<init>|<init>(){}[0]
14+
}
15+
open annotation class examples.classes/AAA : kotlin/Annotation { // examples.classes/AAA|null[0]
16+
constructor <init>() // examples.classes/AAA.<init>|<init>(){}[0]
17+
}
18+
final enum class examples.classes/E : kotlin/Enum<examples.classes/E> { // examples.classes/E|null[0]
19+
enum entry A // examples.classes/E.A|null[0]
20+
enum entry B // examples.classes/E.B|null[0]
21+
enum entry C // examples.classes/E.C|null[0]
22+
final val entries // examples.classes/E.entries|#static{}entries[0]
23+
final fun <get-entries>(): kotlin.enums/EnumEntries<examples.classes/E> // examples.classes/E.entries.<get-entries>|<get-entries>#static(){}[0]
24+
final fun valueOf(kotlin/String): examples.classes/E // examples.classes/E.valueOf|valueOf#static(kotlin.String){}[0]
25+
final fun values(): kotlin/Array<examples.classes/E> // examples.classes/E.values|values#static(){}[0]
26+
}
27+
final enum class examples.classes/EE : kotlin/Enum<examples.classes/EE> { // examples.classes/EE|null[0]
28+
enum entry AA // examples.classes/EE.AA|null[0]
29+
enum entry BB // examples.classes/EE.BB|null[0]
30+
enum entry CC // examples.classes/EE.CC|null[0]
31+
final val entries // examples.classes/EE.entries|#static{}entries[0]
32+
final fun <get-entries>(): kotlin.enums/EnumEntries<examples.classes/EE> // examples.classes/EE.entries.<get-entries>|<get-entries>#static(){}[0]
33+
final fun valueOf(kotlin/String): examples.classes/EE // examples.classes/EE.valueOf|valueOf#static(kotlin.String){}[0]
34+
final fun values(): kotlin/Array<examples.classes/EE> // examples.classes/EE.values|values#static(){}[0]
1335
}
1436
abstract fun interface examples.classes/FI { // examples.classes/FI|null[0]
1537
abstract fun a() // examples.classes/FI.a|a(){}[0]
1638
}
1739
abstract interface examples.classes/I // examples.classes/I|null[0]
1840
abstract interface examples.classes/II // examples.classes/II|null[0]
41+
abstract class examples.classes/AC { // examples.classes/AC|null[0]
42+
constructor <init>() // examples.classes/AC.<init>|<init>(){}[0]
43+
abstract fun a() // examples.classes/AC.a|a(){}[0]
44+
final fun b() // examples.classes/AC.b|b(){}[0]
45+
}
1946
final class examples.classes/C { // examples.classes/C|null[0]
2047
constructor <init>(kotlin/Any) // examples.classes/C.<init>|<init>(kotlin.Any){}[0]
21-
final fun m() // examples.classes/C.m|m(){}[0]
2248
final val v // examples.classes/C.v|{}v[0]
2349
final fun <get-v>(): kotlin/Any // examples.classes/C.v.<get-v>|<get-v>(){}[0]
50+
final fun m() // examples.classes/C.m|m(){}[0]
2451
}
2552
final class examples.classes/D { // examples.classes/D|null[0]
2653
constructor <init>(kotlin/Int) // examples.classes/D.<init>|<init>(kotlin.Int){}[0]
54+
final val x // examples.classes/D.x|{}x[0]
55+
final fun <get-x>(): kotlin/Int // examples.classes/D.x.<get-x>|<get-x>(){}[0]
2756
final fun component1(): kotlin/Int // examples.classes/D.component1|component1(){}[0]
2857
final fun copy(kotlin/Int =...): examples.classes/D // examples.classes/D.copy|copy(kotlin.Int){}[0]
2958
final fun equals(kotlin/Any?): kotlin/Boolean // examples.classes/D.equals|equals(kotlin.Any?){}[0]
3059
final fun hashCode(): kotlin/Int // examples.classes/D.hashCode|hashCode(){}[0]
3160
final fun toString(): kotlin/String // examples.classes/D.toString|toString(){}[0]
32-
final val x // examples.classes/D.x|{}x[0]
33-
final fun <get-x>(): kotlin/Int // examples.classes/D.x.<get-x>|<get-x>(){}[0]
3461
}
3562
final class examples.classes/IC : examples.classes/II { // examples.classes/IC|null[0]
3663
constructor <init>() // examples.classes/IC.<init>|<init>(){}[0]
@@ -43,10 +70,10 @@ final class examples.classes/Outer { // examples.classes/Outer|null[0]
4370
enum entry A // examples.classes/Outer.Nested.NE.A|null[0]
4471
enum entry B // examples.classes/Outer.Nested.NE.B|null[0]
4572
enum entry C // examples.classes/Outer.Nested.NE.C|null[0]
46-
final fun valueOf(kotlin/String): examples.classes/Outer.Nested.NE // examples.classes/Outer.Nested.NE.valueOf|valueOf#static(kotlin.String){}[0]
47-
final fun values(): kotlin/Array<examples.classes/Outer.Nested.NE> // examples.classes/Outer.Nested.NE.values|values#static(){}[0]
4873
final val entries // examples.classes/Outer.Nested.NE.entries|#static{}entries[0]
4974
final fun <get-entries>(): kotlin.enums/EnumEntries<examples.classes/Outer.Nested.NE> // examples.classes/Outer.Nested.NE.entries.<get-entries>|<get-entries>#static(){}[0]
75+
final fun valueOf(kotlin/String): examples.classes/Outer.Nested.NE // examples.classes/Outer.Nested.NE.valueOf|valueOf#static(kotlin.String){}[0]
76+
final fun values(): kotlin/Array<examples.classes/Outer.Nested.NE> // examples.classes/Outer.Nested.NE.values|values#static(){}[0]
5077
}
5178
final inner class Inner { // examples.classes/Outer.Nested.Inner|null[0]
5279
constructor <init>() // examples.classes/Outer.Nested.Inner.<init>|<init>(){}[0]
@@ -56,59 +83,10 @@ final class examples.classes/Outer { // examples.classes/Outer|null[0]
5683
}
5784
}
5885
}
59-
final const val examples.classes/con // examples.classes/con|{}con[0]
60-
final fun <get-con>(): kotlin/String // examples.classes/con.<get-con>|<get-con>(){}[0]
61-
final const val examples.classes/intCon // examples.classes/intCon|{}intCon[0]
62-
final fun <get-intCon>(): kotlin/Int // examples.classes/intCon.<get-intCon>|<get-intCon>(){}[0]
63-
final enum class examples.classes/E : kotlin/Enum<examples.classes/E> { // examples.classes/E|null[0]
64-
enum entry A // examples.classes/E.A|null[0]
65-
enum entry B // examples.classes/E.B|null[0]
66-
enum entry C // examples.classes/E.C|null[0]
67-
final fun valueOf(kotlin/String): examples.classes/E // examples.classes/E.valueOf|valueOf#static(kotlin.String){}[0]
68-
final fun values(): kotlin/Array<examples.classes/E> // examples.classes/E.values|values#static(){}[0]
69-
final val entries // examples.classes/E.entries|#static{}entries[0]
70-
final fun <get-entries>(): kotlin.enums/EnumEntries<examples.classes/E> // examples.classes/E.entries.<get-entries>|<get-entries>#static(){}[0]
71-
}
72-
final enum class examples.classes/EE : kotlin/Enum<examples.classes/EE> { // examples.classes/EE|null[0]
73-
enum entry AA // examples.classes/EE.AA|null[0]
74-
enum entry BB // examples.classes/EE.BB|null[0]
75-
enum entry CC // examples.classes/EE.CC|null[0]
76-
final fun valueOf(kotlin/String): examples.classes/EE // examples.classes/EE.valueOf|valueOf#static(kotlin.String){}[0]
77-
final fun values(): kotlin/Array<examples.classes/EE> // examples.classes/EE.values|values#static(){}[0]
78-
final val entries // examples.classes/EE.entries|#static{}entries[0]
79-
final fun <get-entries>(): kotlin.enums/EnumEntries<examples.classes/EE> // examples.classes/EE.entries.<get-entries>|<get-entries>#static(){}[0]
80-
}
81-
final fun <#A: kotlin/Any?> examples.classes/consume(#A) // examples.classes/consume|consume(0:0){0§<kotlin.Any?>}[0]
82-
final fun examples.classes/testFun(): kotlin/Int // examples.classes/testFun|testFun(){}[0]
83-
final inline fun examples.classes/testInlineFun() // examples.classes/testInlineFun|testInlineFun(){}[0]
84-
final object examples.classes/O // examples.classes/O|null[0]
85-
final object examples.classes/OO // examples.classes/OO|null[0]
86-
final val examples.classes/a // examples.classes/a|{}a[0]
87-
final fun <get-a>(): kotlin/Any // examples.classes/a.<get-a>|<get-a>(){}[0]
88-
final val examples.classes/i // examples.classes/i|{}i[0]
89-
final fun <get-i>(): kotlin/Int // examples.classes/i.<get-i>|<get-i>(){}[0]
90-
final val examples.classes/l // examples.classes/l|{}l[0]
91-
final fun <get-l>(): kotlin/Long // examples.classes/l.<get-l>|<get-l>(){}[0]
92-
final var examples.classes/d // examples.classes/d|{}d[0]
93-
final fun <get-d>(): kotlin/Double // examples.classes/d.<get-d>|<get-d>(){}[0]
94-
final fun <set-d>(kotlin/Double) // examples.classes/d.<set-d>|<set-d>(kotlin.Double){}[0]
95-
final var examples.classes/r // examples.classes/r|{}r[0]
96-
final fun <get-r>(): kotlin/Float // examples.classes/r.<get-r>|<get-r>(){}[0]
97-
final fun <set-r>(kotlin/Float) // examples.classes/r.<set-r>|<set-r>(kotlin.Float){}[0]
98-
open annotation class examples.classes/A : kotlin/Annotation { // examples.classes/A|null[0]
99-
constructor <init>() // examples.classes/A.<init>|<init>(){}[0]
100-
}
101-
open annotation class examples.classes/AA : kotlin/Annotation { // examples.classes/AA|null[0]
102-
constructor <init>() // examples.classes/AA.<init>|<init>(){}[0]
103-
}
104-
open annotation class examples.classes/AAA : kotlin/Annotation { // examples.classes/AAA|null[0]
105-
constructor <init>() // examples.classes/AAA.<init>|<init>(){}[0]
106-
}
10786
open class examples.classes/OC { // examples.classes/OC|null[0]
10887
constructor <init>(kotlin/Int) // examples.classes/OC.<init>|<init>(kotlin.Int){}[0]
10988
constructor <init>(kotlin/Long) // examples.classes/OC.<init>|<init>(kotlin.Long){}[0]
11089
constructor <init>(kotlin/String) // examples.classes/OC.<init>|<init>(kotlin.String){}[0]
111-
final fun c() // examples.classes/OC.c|c(){}[0]
11290
final val ix // examples.classes/OC.ix|{}ix[0]
11391
final fun <get-ix>(): kotlin/Int // examples.classes/OC.ix.<get-ix>|<get-ix>(){}[0]
11492
final val iy // examples.classes/OC.iy|{}iy[0]
@@ -124,5 +102,27 @@ open class examples.classes/OC { // examples.classes/OC|null[0]
124102
final var z // examples.classes/OC.z|{}z[0]
125103
final fun <get-z>(): kotlin/Int // examples.classes/OC.z.<get-z>|<get-z>(){}[0]
126104
final fun <set-z>(kotlin/Int) // examples.classes/OC.z.<set-z>|<set-z>(kotlin.Int){}[0]
105+
final fun c() // examples.classes/OC.c|c(){}[0]
127106
open fun o(): kotlin/Int // examples.classes/OC.o|o(){}[0]
128107
}
108+
final object examples.classes/O // examples.classes/O|null[0]
109+
final object examples.classes/OO // examples.classes/OO|null[0]
110+
final const val examples.classes/con // examples.classes/con|{}con[0]
111+
final fun <get-con>(): kotlin/String // examples.classes/con.<get-con>|<get-con>(){}[0]
112+
final const val examples.classes/intCon // examples.classes/intCon|{}intCon[0]
113+
final fun <get-intCon>(): kotlin/Int // examples.classes/intCon.<get-intCon>|<get-intCon>(){}[0]
114+
final val examples.classes/a // examples.classes/a|{}a[0]
115+
final fun <get-a>(): kotlin/Any // examples.classes/a.<get-a>|<get-a>(){}[0]
116+
final val examples.classes/i // examples.classes/i|{}i[0]
117+
final fun <get-i>(): kotlin/Int // examples.classes/i.<get-i>|<get-i>(){}[0]
118+
final val examples.classes/l // examples.classes/l|{}l[0]
119+
final fun <get-l>(): kotlin/Long // examples.classes/l.<get-l>|<get-l>(){}[0]
120+
final var examples.classes/d // examples.classes/d|{}d[0]
121+
final fun <get-d>(): kotlin/Double // examples.classes/d.<get-d>|<get-d>(){}[0]
122+
final fun <set-d>(kotlin/Double) // examples.classes/d.<set-d>|<set-d>(kotlin.Double){}[0]
123+
final var examples.classes/r // examples.classes/r|{}r[0]
124+
final fun <get-r>(): kotlin/Float // examples.classes/r.<get-r>|<get-r>(){}[0]
125+
final fun <set-r>(kotlin/Float) // examples.classes/r.<set-r>|<set-r>(kotlin.Float){}[0]
126+
final fun <#A: kotlin/Any?> examples.classes/consume(#A) // examples.classes/consume|consume(0:0){0§<kotlin.Any?>}[0]
127+
final fun examples.classes/testFun(): kotlin/Int // examples.classes/testFun|testFun(){}[0]
128+
final inline fun examples.classes/testInlineFun() // examples.classes/testInlineFun|testInlineFun(){}[0]

0 commit comments

Comments
 (0)