Files
kotlin-fork/compiler/testData/codegen/boxInline/trait/trait.kt
T
2016-02-27 15:40:05 +03:00

45 lines
853 B
Kotlin
Vendored

// FILE: 1.kt
package test
interface InlineTrait {
fun finalInline(s: () -> String): String {
return s()
}
companion object {
inline final fun finalInline(s: () -> String): String {
return s()
}
}
}
class Z: InlineTrait {
}
// FILE: 2.kt
import test.*
fun testFinalInline(): String {
return Z().finalInline({"final"})
}
fun testFinalInline2(instance: InlineTrait): String {
return instance.finalInline({"final2"})
}
fun testClassObject(): String {
return InlineTrait.finalInline({"classobject"})
}
fun box(): String {
if (testFinalInline() != "final") return "test1: ${testFinalInline()}"
if (testFinalInline2(Z()) != "final2") return "test2: ${testFinalInline2(Z())}"
if (testClassObject() != "classobject") return "test3: ${testClassObject()}"
return "OK"
}