fun > arrayData(vararg values: T, toArray: @ExtensionFunctionType Function1, Unit>) { } fun arrayLongInheritedData(vararg values: T, toArray: @ExtensionFunctionType Function1, Unit>) { } fun arrayOfLongData(vararg values: Long, toArray: @ExtensionFunctionType Function1, Unit>) { } fun arrayOfShortData(vararg values: Short, toArray: @ExtensionFunctionType Function1, Unit>) { } fun box(): String { arrayData(values = [42], toArray = local fun Array.() { return Unit } ) arrayLongInheritedData(values = [42L], toArray = local fun Array.() { return Unit } ) longArrayData(values = [42L], toArray = local fun LongArray.() { return Unit } ) shortArrayData(values = [42S], toArray = local fun ShortArray.() { return Unit } ) arrayOfLongData(values = [42L], toArray = local fun Array.() { return Unit } ) arrayOfShortData(values = [42S], toArray = local fun Array.() { return Unit } ) return "OK" } fun longArrayData(vararg values: Long, toArray: @ExtensionFunctionType Function1) { } fun shortArrayData(vararg values: Short, toArray: @ExtensionFunctionType Function1) { }