// REQUIRES: swift_swift_parser // RUN: %target-swift-frontend %s -swift-version 5 -module-name main -disable-availability-checking -typecheck -plugin-path %swift-plugin-dir -strict-memory-safety -warnings-as-errors -dump-macro-expansions 2>&1 | %FileCheck --match-full-lines %s @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func ptrNamed(ptr: UnsafePointer, _ len: CInt) { } @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func ptrNamedOther(buf ptr: UnsafePointer, _ len: CInt) { } @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func lenNamed(_ ptr: UnsafePointer, len: CInt) { } @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func lenNamedOther(_ ptr: UnsafePointer, count len: CInt) { } @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func allNamed(ptr: UnsafePointer, len: CInt) { } @_SwiftifyImport(.countedBy(pointer: .param(1), count: "len")) func allNamedOther(buf ptr: UnsafePointer, count len: CInt) { } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func ptrNamed(ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe ptrNamed(ptr: ptr.baseAddress!, len) // CHECK-NEXT: } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func ptrNamedOther(buf ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe ptrNamedOther(buf: ptr.baseAddress!, len) // CHECK-NEXT: } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func lenNamed(_ ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe lenNamed(ptr.baseAddress!, len: len) // CHECK-NEXT: } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func lenNamedOther(_ ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe lenNamedOther(ptr.baseAddress!, count: len) // CHECK-NEXT: } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func allNamed(ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe allNamed(ptr: ptr.baseAddress!, len: len) // CHECK-NEXT: } // CHECK: @_alwaysEmitIntoClient @_disfavoredOverload // CHECK-NEXT: func allNamedOther(buf ptr: UnsafeBufferPointer) { // CHECK-NEXT: let len = CInt(exactly: unsafe ptr.count)! // CHECK-NEXT: return unsafe allNamedOther(buf: ptr.baseAddress!, count: len) // CHECK-NEXT: }