Files
kotlin-fork/compiler/testData/diagnostics/tests/resolve/resolveWithFunctionLiterals.kt
T
Svetlana Isakova 39450dd954 resolve function literal expression (as parameter) after resolve call
(therefore only once)
while resolve use FAKE_FUNCTION_TYPE as type
for function literal (which is a subtype/supertype for any function type)
2012-11-20 19:54:55 +04:00

31 lines
837 B
Kotlin

object A {
val iii = 42
}
//inappropriate but participating in resolve functions
//fun foo(s: String, a: Any) = s + a
//fun foo(a: Any, s: String) = s + a
//fun foo(i: Int, j: Int) = i + j
//fun foo(a: Any, i: Int) = "$a$i"
//fun foo(f: (Int)->Int, i: Int) = f(i)
//fun foo(f: (String)->Int, s: String) = f(s)
//fun foo(f: (Any)->Int, a: Any) = f(a)
//fun foo(s: String, f: (String)->Int) = f(s)
//fun foo(a: Any, f: (Any)->Int) = f(a)
//appropriate function
fun foo(i: Int, f: (Int)->Int) = f(i)
fun test() {
foo(1) { (x1: Int):Int ->
foo(2) { (x2: Int): Int ->
foo(3) { (x3: Int): Int ->
foo(4) { (x4: Int): Int ->
foo(5) { (x5: Int): Int ->
x1 + x2 + x3 + x4 + x5 + A.iii
}
}
}
}
}
}