jvm-abi-gen: Remove effectively private classes from ABI

#KT-64590 Fixed
This commit is contained in:
Vladimir Tagakov
2023-12-26 18:11:39 -07:00
committed by Space Team
parent 7cf793f308
commit 11d3ead975
50 changed files with 511 additions and 56 deletions
@@ -0,0 +1,5 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package test
fun f() {}
@@ -0,0 +1,5 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package test
// Removal of function from a multi-file class should result in a different ABI even though the multi-file part class is package-private.
@@ -0,0 +1,9 @@
package test
class Class {
private companion object {}
private class PrivateClass {
companion object {}
class NestedClass
}
}
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,3 @@
package test
class Class
@@ -0,0 +1,7 @@
package test
class SomeClass {
private interface PrivateInterface {
fun d() = "Default implementation of removed interface should not affect abi."
}
}
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,7 @@
package test
class SomeClass {
private interface PrivateInterface {
fun d(): String
}
}
@@ -0,0 +1,9 @@
package test
class Outer {
class Public : NestedClass.I
private class NestedClass {
interface I
}
}
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,11 @@
package test
class Outer {
class Public : NestedClass.I
private class NestedClass {
interface I
fun someFun() = Unit
}
}
@@ -0,0 +1,5 @@
package test
class Class
private class PrivateClass
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,3 @@
package test
class Class
@@ -0,0 +1,5 @@
package test
class Class
private class PrivateClass
@@ -0,0 +1,3 @@
package test
class Class