Add test for KotlinBytecodeToolWindow

This commit is contained in:
Natalia Ukhorskaya
2015-04-21 15:46:38 +03:00
parent 907f0db7be
commit f936689db3
21 changed files with 254 additions and 1 deletions
@@ -0,0 +1,10 @@
package inlineFun1
class A<T> {
fun test() = 1
inline fun myFun1(f: () -> T): T {
test()
return f()
}
}
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
A<Int>().myFun1 { 1 }
}
@@ -0,0 +1,3 @@
package inlineFun1
inline fun myFun1(f: () -> Int): Int = f()
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
myFun1 { 1 }
}
@@ -0,0 +1,5 @@
package inlineFun1
import inlineFun2.*
inline fun myFun1(f: () -> Int): Int = myFun2 { f() }
@@ -0,0 +1,3 @@
package inlineFun2
inline fun myFun2(f: () -> Int): Int = f()
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
myFun1 { 1 }
}
@@ -0,0 +1,3 @@
package inlineFun1
inline fun Int.myFun1(f: () -> Int): Int = f()
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
1 myFun1 { 1 }
}
@@ -0,0 +1,3 @@
package inlineFun1
inline fun <reified T> myFun1(f: () -> T): T = f()
@@ -0,0 +1,9 @@
package foo
import inlineFun1.*
fun test() {
myFun1 { 1 }
}
// INLINE: false
@@ -0,0 +1,8 @@
package inlineFun1
import inlineFun2.*
import inlineFun3.*
inline fun myFun1(f: () -> Int): Int {
return myFun3 { f() } + myFun2 { f() }
}
@@ -0,0 +1,5 @@
package inlineFun2
import inlineFun3.*
inline fun myFun2(f: () -> Int): Int = myFun3 { f() }
@@ -0,0 +1,3 @@
package inlineFun3
inline fun myFun3(f: () -> Int): Int = f()
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
myFun1 { 1 }
}
@@ -0,0 +1,26 @@
package inlineFun1
inline fun myFun(inlineOptions(InlineOption.ONLY_LOCAL_RETURN) f: () -> Int): Int {
val o = object {
fun test() = 1
}
o.test()
val lambda = { 1 }
lambda()
val o2 = object {
fun test() = f()
}
o2.test()
val lambda2 = { f() }
lambda2()
val ref = ::reference
ref.invoke()
return f()
}
fun reference() = 1
@@ -0,0 +1,7 @@
package foo
import inlineFun1.*
fun test() {
myFun { 1 }
}