Frontend support for function as expression

This commit is contained in:
Stanislav Erokhin
2015-02-05 23:29:22 +03:00
parent 6ccd8ab764
commit 44895a23cf
28 changed files with 498 additions and 10 deletions
@@ -0,0 +1,31 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
fun <T> parameter() = fun (t: T) = t
fun <T> receiver() = fun T.() = this
fun <T> returnType() = fun (): T = null!!
val <T> T.fromVal: () -> T get() = fun (): T = this@fromVal
fun devNull(a: Any?){}
fun <O> outer() {
fun <T> parameter() = fun (t: T) = t
fun <T> receiver() = fun T.() = this
fun <T> returnType() = fun (): T = null!!
devNull(fun (t: O) = t)
devNull(fun O.() = this)
devNull(fun (): O = null!!)
}
class Outer<O> {
fun <T> parameter() = fun (t: T) = t
fun <T> receiver() = fun T.() = this
fun <T> returnType() = fun (): T = null!!
init {
devNull(fun (t: O) = t)
devNull(fun O.() = this)
devNull(fun (): O = null!!)
}
}