Exclude nested classes of private classes from ABI classes

This commit is contained in:
Alexey Tsvetkov
2018-12-03 20:33:25 +03:00
parent 64380f55d2
commit d54ce2da6f
14 changed files with 323 additions and 9 deletions
+39
View File
@@ -0,0 +1,39 @@
package test
interface Interface {
}
open class BaseClass {
open val baseClassPublicVal: Int = 0
open fun baseClassPublicFun(): Int = 1
internal val baseClassInternalVal: Int = 2
internal fun baseClassInternalFun(): Int = 3
protected val baseClassProtectedVal: Int = 4
protected fun baseClassProtectedFun(): Int = 5
private val baseClassPrivateVal: Int = 6
private fun baseClassPrivateFun(): Int = 7
companion object {
const val basePublicConst: Int = 8
private const val basePrivateConst: Int = 9
}
}
class Class : BaseClass(), Interface {
fun classPublicMethod() {
class publicMethodLocalClass {
val x = 0
}
val publicMethodLambda: (Int) -> Int = { it * it }
}
private class NestedInnerClass() {
class NestedNestedInnerClass() {}
}
}
private class PrivateClass
@@ -0,0 +1,23 @@
class test/BaseClass$Companion : java/lang/Object {
public fun <init> (Lkotlin/jvm/internal/DefaultConstructorMarker;)V
}
class test/BaseClass : java/lang/Object {
public static final val basePublicConst I = 8
public static final val Companion Ltest/BaseClass$Companion; = null
public fun getBaseClassPublicVal ()I
public fun baseClassPublicFun ()I
public final fun getBaseClassInternalVal$main ()I
public final fun baseClassInternalFun$main ()I
protected final fun getBaseClassProtectedVal ()I
protected final fun baseClassProtectedFun ()I
public fun <init> ()V
}
class test/Class : test/BaseClass, test/Interface {
public final fun classPublicMethod ()V
public fun <init> ()V
}
interface test/Interface : java/lang/Object {
}