How to check lambda emptiness in kotlin

You couldn't test if the body of an lambda is empty (so it contains no source-code) but you can check if the lambda is your default value by creating a constant for that value and use this as default value. Than you can also check if the value is the default value:

fun main(args: Array<String>) {
    foo()
    foo { }
    foo { println("Bar") }
}

private val EMPTY: (Throwable) -> Unit = {}
fun foo(onError: (Throwable) -> Unit = EMPTY) {
    if (onError === EMPTY) {
       // the default value is used
    } else {
       // a lambda was defined - no default value used
    }
}