New tests added

This commit is contained in:
Konstantin Anisimov
2017-03-03 17:45:51 +07:00
committed by KonstantinAnisimov
parent b9235ca8b1
commit c7e4f0f28f
7 changed files with 98 additions and 5 deletions
+16 -4
View File
@@ -1306,10 +1306,10 @@ task inline4(type: RunKonanTest) {
source = "codegen/inline/inline4.kt"
}
//task inline5(type: RunKonanTest) {
// goldValue = "33\n"
// source = "codegen/inline/inline5.kt"
//}
task inline5(type: RunKonanTest) {
goldValue = "33\n"
source = "codegen/inline/inline5.kt"
}
task inline6(type: RunKonanTest) {
goldValue = "hello1\nhello2\nhello3\nhello4\n"
@@ -1357,6 +1357,18 @@ task inline17(type: RunKonanTest) {
source = "codegen/inline/inline17.kt"
}
task inline18(type: RunKonanTest) {
disabled = true
goldValue = "true\n"
source = "codegen/inline/inline18.kt"
}
task inline19(type: RunKonanTest) {
disabled = true
goldValue = "6\n"
source = "codegen/inline/inline19.kt"
}
kotlinNativeInterop {
sysstat {
pkg 'sysstat'
@@ -0,0 +1,12 @@
@Suppress("NOTHING_TO_INLINE")
inline fun <reified T> foo (i2: Any): Boolean {
return i2 is T
}
fun bar(i1: Int): Boolean {
return foo<Double>(i1)
}
fun main(args: Array<String>) {
println(bar(1).toString())
}
@@ -0,0 +1,12 @@
@Suppress("NOTHING_TO_INLINE")
inline fun <T> foo (): Boolean {
return Any() is Any
}
fun bar(i1: Int): Boolean {
return foo<Double>()
}
fun main(args: Array<String>) {
println(bar(1).toString())
}
@@ -1,6 +1,8 @@
@Suppress("NOTHING_TO_INLINE")
inline fun <T> foo(i1: T, i2: T): List<T> {
return listOf(i1, i2)
val j1 = i1
val j2 = i2
return listOf(j1, j2)
}
fun bar(): List<Int> {
@@ -0,0 +1,29 @@
@Suppress("NOTHING_TO_INLINE")
inline fun <T> foo2(i2: T, j2: T, p2: (T, T) -> Boolean): Boolean {
return p2(i2, j2)
}
@Suppress("NOTHING_TO_INLINE")
inline fun <T> foo1(i1: T, j1: T, p1: (T, T) -> Boolean): Boolean {
return foo2<T>(i1, j1, p1)
}
fun bar(): Boolean {
val result = foo1 <Int> (3, 3) { x1: Int, x2: Int -> x1 == x2 }
return result
}
fun main(args: Array<String>) {
println(bar().toString())
}
public inline fun foo(): Any? {
var result = null
return result
}
fun bar() {
foo()
foo()
}
@@ -0,0 +1,14 @@
@Suppress("NOTHING_TO_INLINE")
inline private fun foo(i: Int): Int {
val result = i
return result + i
}
fun bar(): Int {
return foo(1) + foo(2)
}
fun main(args: Array<String>) {
println(bar().toString())
}
@@ -0,0 +1,12 @@
@Suppress("NOTHING_TO_INLINE")
inline fun bar(block: () -> String) : String {
return block()
}
fun bar2() : String {
return bar { return "def" }
}
fun main(args: Array<String>) {
println(bar2())
}