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 @@
package app
//UnexpectedInnerClass although declared in a separate module
//appear to be an inner class of the class generated from this file
fun runAppAndReturnOk() = AppKt.UnexpectedInnerClass.result()
@@ -0,0 +1,7 @@
package app
class AppKt {
object UnexpectedInnerClass {
fun result() = "OK"
}
}
@@ -0,0 +1,12 @@
package app
import lib.*
fun runAppAndReturnOk(): String {
f1()
if (v1 != "OK") return "Fail 1"
f2()
if (v2 != "OK") return "Fail 2"
return "OK"
}
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T1 = String
fun f1() {}
val v1: T1 = "OK"
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T2 = String
fun f2() {}
val v2: T2 = "OK"
@@ -0,0 +1,12 @@
package app
import lib.*
fun runAppAndReturnOk(): String {
f1()
if (v1 != "OK") return "Fail 1"
f2()
if (v2 != "OK") return "Fail 2"
return "OK"
}
@@ -0,0 +1 @@
// INHERIT_MULTIFILE_PARTS
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T1 = String
fun f1() {}
val v1: T1 = "OK"
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T2 = String
fun f2() {}
val v2: T2 = "OK"
@@ -0,0 +1,12 @@
package app
import lib.*
fun runAppAndReturnOk(): String {
f1()
if (v1 != "OK") return "Fail 1"
f2()
if (v2 != "OK") return "Fail 2"
return "OK"
}
@@ -0,0 +1,2 @@
// INHERIT_MULTIFILE_PARTS
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T1 = String
fun f1() {}
val v1: T1 = "OK"
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T2 = String
fun f2() {}
val v2: T2 = "OK"
@@ -0,0 +1,12 @@
package app
import lib.*
fun runAppAndReturnOk(): String {
f1()
if (v1 != "OK") return "Fail 1"
f2()
if (v2 != "OK") return "Fail 2"
return "OK"
}
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T1 = String
fun f1() {}
val v1: T1 = "OK"
@@ -0,0 +1,7 @@
@file:JvmMultifileClass
@file:JvmName("Multifile")
package lib
typealias T2 = String
fun f2() {}
val v2: T2 = "OK"
@@ -0,0 +1,7 @@
package app
import lib.*
fun runAppAndReturnOk(): String {
return Outer.Public.result()
}
@@ -0,0 +1 @@
// REMOVE_PRIVATE_CLASSES
@@ -0,0 +1,13 @@
package lib
class Outer {
object Public : Private
private interface Private: Secret.EffectivelyPrivate
private object Secret {
interface EffectivelyPrivate {
fun result(): String = "OK"
}
}
}