diff --git a/validation-test/stdlib/NewArray.swift.gyb b/validation-test/stdlib/NewArray.swift.gyb index 2e9d4eb7d36c7..4bfb174b34905 100644 --- a/validation-test/stdlib/NewArray.swift.gyb +++ b/validation-test/stdlib/NewArray.swift.gyb @@ -10,13 +10,11 @@ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// -// RUN-DISABLED: %target-run-simple-swift | %FileCheck %s // RUN: %empty-directory(%t) // RUN: %gyb %s -o %t/NewArray.swift // RUN: %line-directive %t/NewArray.swift -- %target-build-swift %t/NewArray.swift -o %t/a.out -Xfrontend -disable-access-control // RUN: %target-run %t/a.out 2>&1 | %line-directive %t/NewArray.swift -- %FileCheck %t/NewArray.swift --check-prefix=CHECK --check-prefix=CHECK-%target-runtime // REQUIRES: executable_test -// XFAIL: * import StdlibUnittest import StdlibCollectionUnittest @@ -40,15 +38,14 @@ protocol MyArrayProtocol : RandomAccessCollection, RangeReplaceableCollection, MutableCollection, - ArrayLiteralConvertible { - - associatedtype Iterator : IteratorProtocol - + ExpressibleByArrayLiteral + where ArrayLiteralElement == Element +{ var _owner: AnyObject? { get } var capacity: Int { get } - func += < + static func += < S : Sequence >(lhs: inout Self, rhs: S) where S.Iterator.Element == Iterator.Element @@ -89,8 +86,7 @@ func test< T : MyArrayProtocol >(_: T.Type, _ label: String) where -T.Iterator.Element == LifetimeTracked, -T.Iterator.Element == T.Element, +T.Element == LifetimeTracked, T.Index == Int { print("test: \(label)...", terminator: "") @@ -113,15 +109,15 @@ T.Index == Int { x += LifetimeTracked(0).. Array { +func nsArrayOfStrings() -> NSArray { let src: ContiguousArray = ["foo", "bar", "baz"] return src.withUnsafeBufferPointer { - let ns = NSArray( + return NSArray( objects: unsafeBitCast($0.baseAddress!, to: UnsafeMutablePointer.self), count: $0.count) - return ns as! [NSString] } } +func swiftArrayWithNSArrayOfStrings() -> Array { + return nsArrayOfStrings() as! [NSString] +} + func testCocoa() { print("== Cocoa ==") // CHECK-objc: == Cocoa == - var a = nsArrayOfStrings() + var a = swiftArrayWithNSArrayOfStrings() printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz] @@ -232,7 +231,7 @@ func testCocoa() { printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz, qux] - a = nsArrayOfStrings() + a = swiftArrayWithNSArrayOfStrings() printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz] @@ -246,12 +245,12 @@ func testCocoa() { printSequence(b) // CHECK-objc-NEXT: [foo, bar, baz] - a = nsArrayOfStrings() + a = swiftArrayWithNSArrayOfStrings() a.insert("bag", at: 2) printSequence(a) // CHECK-objc-NEXT: [foo, bar, bag, baz] - a = nsArrayOfStrings() + a = swiftArrayWithNSArrayOfStrings() a.reserveCapacity(30) printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz] @@ -269,12 +268,6 @@ func testCocoa() { testCocoa() #endif // _runtime(_ObjC) -extension ArraySlice { - mutating func qsort(_ compare: @escaping (Element, Element) -> Bool) { - _introSort(&self, subRange: Range(self.indices), by: compare) - } -} - func testSlice() { print("== ArraySlice ==") // CHECK: == ArraySlice == @@ -301,14 +294,13 @@ func testSlice() { printSequence(b) // CHECK-NEXT: [0, 1, 2, 3, 41, 5, 6, 7, 8, 9] let c = b - b[b.startIndex..( - _ArrayBuffer(nsArray: nsArrayOfStrings()._buffer._asCocoaArray())) + let a = Array(_buffer: _ArrayBuffer(nsArray: nsArrayOfStrings())) printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz] @@ -456,8 +448,8 @@ func testIsEmptyFirstLast${A}() { print("<\(${A}(3..<43).first!)>") // CHECK-NEXT: <3> print("<\(${A}(3..<43).last!)>") // CHECK-NEXT: <42> - print("<\(${A}().first)>") // CHECK-NEXT: nil - print("<\(${A}().last)>") // CHECK-NEXT: nil + print("<\(String(describing: ${A}().first))>") // CHECK-NEXT: nil + print("<\(String(describing:${A}().last))>") // CHECK-NEXT: nil var a = ${A}(LifetimeTracked(0)..