Some tests for inline members.
This commit is contained in:
committed by
alexander-gorshenev
parent
c6d13abddc
commit
2a246a9a3a
@@ -1739,6 +1739,21 @@ task deserialized_listof0(type: RunKonanTest) {
|
|||||||
source = "serialization/deserialized_listof0.kt"
|
source = "serialization/deserialized_listof0.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task deserialized_members(type: LinkKonanTest) {
|
||||||
|
goldValue=
|
||||||
|
"first level\n"+
|
||||||
|
"second level\n"+
|
||||||
|
"third levelxz\n"+
|
||||||
|
"inner first level\n"+
|
||||||
|
"inner second level\n"+
|
||||||
|
"inner third level\n"+
|
||||||
|
"types first level: 13\n"+
|
||||||
|
"types second level cha-cha-cha\n"+
|
||||||
|
"types third level 1\n"
|
||||||
|
lib = "serialization/serialize_members.kt"
|
||||||
|
source = "serialization/deserialize_members.kt"
|
||||||
|
}
|
||||||
|
|
||||||
// Just check that the driver is able to produce runnable binaries.
|
// Just check that the driver is able to produce runnable binaries.
|
||||||
task driver0(type: RunDriverKonanTest) {
|
task driver0(type: RunDriverKonanTest) {
|
||||||
goldValue = "Hello, world!\n"
|
goldValue = "Hello, world!\n"
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import foo.bar.*
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
val c = C()
|
||||||
|
val d = C.D()
|
||||||
|
val e = C.D.E()
|
||||||
|
c.foo()
|
||||||
|
d.foo()
|
||||||
|
e.foo()
|
||||||
|
|
||||||
|
val c2 = C2()
|
||||||
|
val d2 = C2().D2()
|
||||||
|
val e2 = C2().D2().E2()
|
||||||
|
c2.foo()
|
||||||
|
d2.foo()
|
||||||
|
e2.foo()
|
||||||
|
|
||||||
|
val c3 = C3<Int>()
|
||||||
|
val d3 = C3.D3<String>()
|
||||||
|
val e3 = C3.D3.E3<Float>()
|
||||||
|
c3.foo(13)
|
||||||
|
d3.foo("cha-cha-cha")
|
||||||
|
e3.foo(1.0f)
|
||||||
|
|
||||||
|
// This part doesn't work with file local inline functions.
|
||||||
|
// So disabled for now.
|
||||||
|
// val c4 = C4<Int>()
|
||||||
|
// val d4 = C4<String>().D4<Int>()
|
||||||
|
// val e4 = C4<Int>().D4<String>().E4<Int>()
|
||||||
|
// c4.foo(13)
|
||||||
|
// d4.foo("cawabunga", 17)
|
||||||
|
// e4.foo(19, "raqa-taqa", 23)
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package foo.bar
|
||||||
|
|
||||||
|
class R<T> {
|
||||||
|
inline fun bar(t: T) {
|
||||||
|
println("just a single class: $t")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C {
|
||||||
|
inline fun foo() {
|
||||||
|
println("first level")
|
||||||
|
}
|
||||||
|
|
||||||
|
class D {
|
||||||
|
inline fun foo() {
|
||||||
|
println("second level")
|
||||||
|
}
|
||||||
|
|
||||||
|
class E {
|
||||||
|
inline fun foo() {
|
||||||
|
println("third levelxz")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C2 {
|
||||||
|
inline fun foo() {
|
||||||
|
println("inner first level")
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class D2 {
|
||||||
|
inline fun foo() {
|
||||||
|
println("inner second level")
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class E2 {
|
||||||
|
inline fun foo() {
|
||||||
|
println("inner third level")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C3<X> {
|
||||||
|
inline fun foo(x: X) {
|
||||||
|
println("types first level: $x")
|
||||||
|
}
|
||||||
|
|
||||||
|
class D3<X> {
|
||||||
|
inline fun foo(x: X) {
|
||||||
|
println("types second level $x")
|
||||||
|
}
|
||||||
|
|
||||||
|
class E3<X> {
|
||||||
|
inline fun foo(x: X) {
|
||||||
|
println("types third level $x")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C4<X> {
|
||||||
|
inline fun foo(x: X) {
|
||||||
|
println("inner types first level: $x")
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class D4<Y> {
|
||||||
|
inline fun foo(x: X, y: Y) {
|
||||||
|
println("inner types second level $x, $y")
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class E4<Z> {
|
||||||
|
inline fun foo(x: X, y: Y, z: Z) {
|
||||||
|
println("inner types third level $x, $y, $z")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user