// RUN: %target-swift-emit-silgen %s -verify -module-name M | %FileCheck %s // https://github.com/apple/swift/issues/45309 func f(_: () -> T) {} func f(_: @autoclosure () -> T) {} // CHECK: function_ref @$s1M1fyyxyXElF f { } // OK func f1(_: () -> T, _: () -> T) {} func f1(_: @autoclosure () -> T, _: @autoclosure () -> T) {} // CHECK: function_ref @$s1M2f1yyxyXE_xyXEtlF f1({}, {}) // OK func f2(_: () -> T, _: () -> T) { } func f2(_: () -> T, _: @autoclosure () -> T) { } // CHECK: function_ref @$s1M2f2yyxyXE_xyXEtlF f2({}, {}) // OK func f3(_: () -> Int) {} func f3(_: @autoclosure () -> Int) {} // CHECK: function_ref @$s1M2f3yySiyXEF f3 { 0 } // OK func autoclosure(f: () -> Int) { } func autoclosure(f: @autoclosure () -> Int) { } func autoclosure(f: Int) { } // CHECK: function_ref @$s1M11autoclosure1fySiyXE_tF autoclosure(f: { 0 }) // OK // CHECK: function_ref @$s1M2fnyySiyXEF let _ = autoclosure as (() -> (Int)) -> () // OK func test(_: (@autoclosure () -> Int) -> Void) {} func test(_: (() -> Int) -> Void) {} func fn(_: () -> Int) {} // CHECK: function_ref @$s1M4testyyySiyXEXEF test(fn) // OK