//===--- ArrayAppend.swift ------------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// // This test checks the performance of appending to an array. import TestsUtils // Append single element @inline(never) public func run_ArrayAppend(_ N: Int) { for _ in 0.. { var x: T var y: U } // Append another array. Length of sequence known so // can pre-reserve capacity. @inline(never) public func run_ArrayAppendGenericStructs(_ N: Int) { let other = Array(repeating: S(x: 3, y: 4.2), count: 10_000) for _ in 0..]() for _ in 0..<8 { nums += other } } } } // Append another array. Length of sequence known so // can pre-reserve capacity. @inline(never) public func run_ArrayAppendOptionals(_ N: Int) { let other: [Int?] = Array(repeating: 1, count: 10_000) for _ in 0..(array: inout [S.Iterator.Element], sequence: S) { array.append(contentsOf: sequence) } @inline(never) public func run_ArrayAppendFromGeneric(_ N: Int) { let other = Array(repeating: 1, count: 10_000) for _ in 0..(collection: inout R, array: [R.Iterator.Element]) { collection.append(contentsOf: array) } @inline(never) public func run_ArrayAppendToGeneric(_ N: Int) { let other = Array(repeating: 1, count: 10_000) for _ in 0..(collection: inout R, sequence: S) where R.Iterator.Element == S.Iterator.Element { collection.append(contentsOf: sequence) } @inline(never) public func run_ArrayAppendToFromGeneric(_ N: Int) { let other = Array(repeating: 1, count: 10_000) for _ in 0..