// !WITH_NEW_INFERENCE fun fail1(): Array = Array(1) { null!! } fun ok1(block: () -> Array): Array = block() inline fun ok2(): Array = Array(1) { null!! } fun fail2(): Array = ok1 { Array<T>(1) { null!! } } fun ok3(block: () -> Array): Array = ok1 { block() } inline fun ok4(): Array = ok1 { Array(1) { null!! } } fun fail3(block: () -> T): Pair, Array> = Pair(arrayOf( block()), arrayOf() ) inline fun ok5(block: () -> T): Pair, Array> = Pair( arrayOf(block()), arrayOf() )