[klib] Add an option to write out header klibs
The header klib is supposed to only contain the public abi of the module similar to jvm-abi-gen. It is intended to be used as a dependency for other klib compilations instead of the full klib for compilation avoidance. ^KT-60807
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
private val x = object { fun f() = 1 }
|
||||
|
||||
fun g() =
|
||||
x.f() +
|
||||
object { fun f() = 0 }.f()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun g() = 1
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class Class
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
open class Class
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package test
|
||||
|
||||
class A {
|
||||
val publicVal = 0
|
||||
fun publicMethod() = 0
|
||||
|
||||
internal val internalVal = 0
|
||||
internal fun internalMethod() = 0
|
||||
|
||||
protected val protectedVal = 0
|
||||
protected fun protectedMethod() = 0
|
||||
|
||||
private val privateVal = 0
|
||||
private fun privateMethod() = 0
|
||||
|
||||
val publicValBody = internalMethod() + privateMethod() + 2
|
||||
val publicMethodBody = publicValBody + 2
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package test
|
||||
|
||||
class A {
|
||||
val publicVal = 0
|
||||
fun publicMethod() = 0
|
||||
|
||||
internal val internalVal = 42
|
||||
internal fun internalMethod() = 42
|
||||
|
||||
protected val protectedVal = 0
|
||||
protected fun protectedMethod() = 0
|
||||
|
||||
val publicValBody = internalMethod() + 1
|
||||
val publicMethodBody = publicValBody + 1
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
const val x = 0
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
const val x = 1
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
inline fun f() = 1
|
||||
inline fun g() = 2
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
inline fun g() = 2
|
||||
|
||||
inline fun f() = 1
|
||||
|
||||
// This changes the line numbers in f, g
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
fun sum(x: Int, y: Int): Int =
|
||||
try {
|
||||
var result = x
|
||||
result += y
|
||||
result
|
||||
} finally {
|
||||
// do nothing
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun sum(x: Int, y: Int): Int = y + x
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private class A {
|
||||
inline fun test(crossinline s: () -> Unit) {
|
||||
object {
|
||||
fun run() {
|
||||
s()
|
||||
}
|
||||
}.run()
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
private class A {
|
||||
inline fun test(crossinline s: () -> Unit) {
|
||||
object {
|
||||
fun run() {
|
||||
//s()
|
||||
}
|
||||
}.run()
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
class A {
|
||||
private class B {
|
||||
inline fun test(crossinline s: () -> Unit) {
|
||||
object {
|
||||
fun run() {
|
||||
s()
|
||||
}
|
||||
}.run()
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
class A {
|
||||
private class B {
|
||||
inline fun test(crossinline s: () -> Unit) {
|
||||
object {
|
||||
fun run() {
|
||||
//s()
|
||||
}
|
||||
}.run()
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
inline fun sum(x: Int, y: Int): Int = x + y
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
inline fun sum(x: Int, y: Int): Int = y + x
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
private inline fun f() = { 1 }()
|
||||
fun g() = f()
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun g() = 1
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun id(x: Int): Int = x
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun id(y: Int): Int = y
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
private interface A {
|
||||
fun foo() = 0
|
||||
fun bar(): String
|
||||
}
|
||||
|
||||
class B: A {
|
||||
override fun bar() = "test${foo()}"
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
private interface A {
|
||||
fun foo() = 42
|
||||
fun bar(): String
|
||||
}
|
||||
|
||||
class B: A {
|
||||
override fun bar() = "test${foo()}"
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
class PublicClass1
|
||||
class PublicClass2
|
||||
|
||||
typealias PublicTypeAlias1 = PublicClass1
|
||||
typealias PublicTypeAlias2 = PublicClass1
|
||||
|
||||
internal typealias InternalTypeAlias1 = PublicClass1
|
||||
internal typealias InternalTypeAlias2 = PublicClass1
|
||||
|
||||
private typealias PrivateTypeAlias1 = PublicClass1
|
||||
private typealias PrivateTypeAlias2 = PublicClass1
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
package test
|
||||
|
||||
class PublicClass1
|
||||
class PublicClass2
|
||||
|
||||
typealias PublicTypeAlias1 = PublicClass1
|
||||
typealias PublicTypeAlias2 = PublicClass1
|
||||
|
||||
internal typealias InternalTypeAlias1 = PublicClass1
|
||||
internal typealias InternalTypeAlias2 = PublicClass1
|
||||
|
||||
private typealias PrivateTypeAlias1 = PublicClass2
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun foo() = 0
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun foo() = "0"
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
open class A
|
||||
class B : A()
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
open class A
|
||||
class B
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
private val x = 1
|
||||
|
||||
object A { fun f() = x }
|
||||
|
||||
val y = 2
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
object A { fun f() = 1 }
|
||||
|
||||
val y = 2
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
val publicVal = 0
|
||||
const val publicConst = 0
|
||||
fun publicFun() = 0
|
||||
|
||||
internal val internalVal = 0
|
||||
internal const val internalConst = 0
|
||||
internal fun internalFun() = 0
|
||||
|
||||
private val privateVal = 0
|
||||
private const val privateConst = 0
|
||||
private fun privateFun() = 0
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
val publicVal = 0
|
||||
const val publicConst = 0
|
||||
fun publicFun() = 0
|
||||
|
||||
internal val internalVal = 0
|
||||
internal const val internalConst = 0
|
||||
internal fun internalFun() = 0
|
||||
Reference in New Issue
Block a user