@CompileTimeCalculation fun getArray(array: Array) = array const val a1 = getArray(arrayOf(1, 2.0, "3")) as? Array == null const val a2 = getArray(arrayOf(1, 2, 3)) as? Array == null const val a3 = getArray(arrayOf(1, 2, 3)) as? Array == null const val a4 = getArray(arrayOf(1, 2, 3)) as? Array == null const val b1 = arrayOf(arrayOf(1, 2, 3)) as? Array> == null const val b2 = arrayOf(arrayOf(1, 2, 3)) as? Array> == null const val b3 = arrayOf(arrayOf(1, 2, 3)) as? Array> == null const val c1 = arrayOf(arrayOf(1, 2, 3), arrayOf("1", "2", "3"))[0] as? Array == null const val c2 = arrayOf(arrayOf(1, 2, 3), arrayOf("1", "2", "3"))[1] as? Array == null @CompileTimeCalculation fun combineArrays(array1: Array, array2: Array) = arrayOf(array1, array2) const val d1 = combineArrays(arrayOf(1, 2, 3), arrayOf(1, 2, 3)) as? Array> == null const val d2 = combineArrays(arrayOf(1, 2, 3), arrayOf(1, 2, 3)) as? Array> == null const val d3 = combineArrays(arrayOf(1, 2, 3), arrayOf(1, 2, 3)) as? Array> == null const val d4 = combineArrays(arrayOf(1, 2, 3), arrayOf(1, 2, 3)) as? Array> == null const val d5 = combineArrays(arrayOf(1, 2, 3), arrayOf("1", "2", "3"))[0] as? Array == null const val d6 = combineArrays(arrayOf(1, 2, 3), arrayOf("1", "2", "3"))[1] as? Array == null const val d7 = combineArrays(arrayOf(1, 2, 3), arrayOf("1", "2", "3"))[1] as? Array == null @CompileTimeCalculation fun echo(array: T) = array const val e1 = echo(arrayOf(1, 2, 3)) as? Array == null const val e2 = echo(arrayOf(arrayOf(1, 2, 3))) as? Array> == null const val e3 = echo(arrayOf(echo(1), echo(2), echo(3))) as? Array == null