Update the rest of the testsuite for the array syntax change.

Swift SVN r19223
This commit is contained in:
Doug Gregor
2014-06-26 05:39:25 +00:00
parent 9c3fc9e6b4
commit e064416c8f
46 changed files with 327 additions and 327 deletions

View File

@@ -70,7 +70,7 @@ func test() {
var object = NSObject() var object = NSObject()
var arrayInt = [10, 20, 30] var arrayInt = [10, 20, 30]
var arrayOptionalInt : Int?[] = [10, .None, 30, .None, 20] var arrayOptionalInt : [Int?] = [10, .None, 30, .None, 20]
var arrayString = ["Kate", "Sean", "Barry"] var arrayString = ["Kate", "Sean", "Barry"]
var arrayPerson = [Person(), Person()] var arrayPerson = [Person(), Person()]
var dictionary = [1 : "Kate", 2 : "Sean", 3 : "Barry"] var dictionary = [1 : "Kate", 2 : "Sean", 3 : "Barry"]

View File

@@ -73,10 +73,10 @@ println(tuple)
// Arrays are represented as an instantiation of Array. // Arrays are represented as an instantiation of Array.
// CHECK-DAG: null, null, metadata ![[Array:.*]]} ; [ DW_TAG_structure_type ] [Array] // CHECK-DAG: null, null, metadata ![[Array:.*]]} ; [ DW_TAG_structure_type ] [Array]
// CHECK-DAG: metadata ![[Array]], i32 0,{{.*}}[ DW_TAG_variable ] [array_of_tuples] [line [[@LINE+1]]] [def] // CHECK-DAG: metadata ![[Array]], i32 0,{{.*}}[ DW_TAG_variable ] [array_of_tuples] [line [[@LINE+1]]] [def]
var array_of_tuples : (a : Int, b : Int)[] = [(1,2)] var array_of_tuples : [(a : Int, b : Int)] = [(1,2)]
var twod : [Int][] = [[1]] var twod : [[Int]] = [[1]]
func bar( x: (a : Int, b : Int)[], y: [Int][] ) { func bar( x: [(a : Int, b : Int)], y: [[Int]] ) {
} }

View File

@@ -117,7 +117,7 @@ sil @_TFC15generic_classes11RootGenericD : $@cc(method) @thin <T> (RootGeneric<T
class RootGenericFixedLayout<T> { class RootGenericFixedLayout<T> {
var x : UInt8 var x : UInt8
var y : T[] var y : [T]
var z : UInt8 var z : UInt8
init() init()

View File

@@ -172,7 +172,7 @@ for nsd: NSDictionary! in nsa3 {
let p:NSDictionary = nsd let p:NSDictionary = nsd
} }
var nsa4: NSDictionary![] = [] var nsa4: [NSDictionary!] = []
for nsd2: NSDictionary! in nsa4 { for nsd2: NSDictionary! in nsa4 {
let p:NSDictionary = nsd2 let p:NSDictionary = nsd2
} }

View File

@@ -58,7 +58,7 @@ func testEquatable<E: Equatable>(x: E) {}
func test_Equatable() { func test_Equatable() {
// CHECK-NEXT: Found 2.5 at index 1 // CHECK-NEXT: Found 2.5 at index 1
let array: NSNumber[] = [1, 2.5, 3.14159] let array: [NSNumber] = [1, 2.5, 3.14159]
if let index = find(array, 2.5) { if let index = find(array, 2.5) {
println("Found \(array[index]) at index \(index)") println("Found \(array[index]) at index \(index)")
} else { } else {

View File

@@ -47,7 +47,7 @@ println("Active X objects = \(activeXObjects)")
// Bridge an array of an implicitly unwrapped bridged value type. // Bridge an array of an implicitly unwrapped bridged value type.
func testConvertArrayOfImplicitUnwrappedValue() { func testConvertArrayOfImplicitUnwrappedValue() {
println("Converting array of IOU of String to NSArray...") println("Converting array of IOU of String to NSArray...")
var stringArr1: (String!)[] = ["Hello", "World"] var stringArr1: [String!] = ["Hello", "World"]
let stringNSArr1: NSArray = stringArr1 let stringNSArr1: NSArray = stringArr1
@@ -72,10 +72,10 @@ testConvertArrayOfImplicitUnwrappedValue()
// Bridge an array of an implicitly unwrapped array value type. // Bridge an array of an implicitly unwrapped array value type.
func testConvertArrayOfImplicitUnwrappedArray() { func testConvertArrayOfImplicitUnwrappedArray() {
println("Converting array of IUO of Arrays of String to NSArray...") println("Converting array of IUO of Arrays of String to NSArray...")
var stringArr1: (String!)[] = ["Hello", "World"] var stringArr1: [String!] = ["Hello", "World"]
var stringArr2 = [getIUO("Welcome"), getIUO("Swift")] var stringArr2 = [getIUO("Welcome"), getIUO("Swift")]
var stringArrArr: (((String!)[])!)[] = [] var stringArrArr: [[String!]!] = []
stringArrArr.append(getIUO(stringArr1)) stringArrArr.append(getIUO(stringArr1))
stringArrArr.append(getIUO(stringArr2)) stringArrArr.append(getIUO(stringArr2))
@@ -99,7 +99,7 @@ func testConvertArrayOfImplicitUnwrappedArray() {
println("Element \(index) is not an NSArray") println("Element \(index) is not an NSArray")
} }
// FIXME: Downcast to (String!)[] // FIXME: Downcast to [String!]
} }
} }
@@ -112,7 +112,7 @@ func testConvertToArrayOfImplicitUnwrappedClass() {
nsarr.addObject(X(value: 1)) nsarr.addObject(X(value: 1))
nsarr.addObject(X(value: 2)) nsarr.addObject(X(value: 2))
var arr: (X!)[] = _convertNSArrayToArray(nsarr) var arr: [X!] = _convertNSArrayToArray(nsarr)
// CHECK: Class array count = 2 // CHECK: Class array count = 2
// CHECK: Element 0 has value X(1) // CHECK: Element 0 has value X(1)
@@ -136,7 +136,7 @@ func testConvertToArrayOfImplicitUnwrappedString() {
nsarr.addObject(NSString(string: "Hello")) nsarr.addObject(NSString(string: "Hello"))
nsarr.addObject(NSString(string: "World")) nsarr.addObject(NSString(string: "World"))
var arr: (String!)[] = _convertNSArrayToArray(nsarr) var arr: [String!] = _convertNSArrayToArray(nsarr)
// CHECK: String array count = 2 // CHECK: String array count = 2
// CHECK: Element 0 has value Hello // CHECK: Element 0 has value Hello

View File

@@ -21,7 +21,7 @@ println("NSData:")
autoreleasepool { autoreleasepool {
var bytes: UnsafePointer<UInt8> var bytes: UnsafePointer<UInt8>
do { do {
let data = NSData(bytes: [2, 3, 5, 7] as UInt8[], length: 4) let data = NSData(bytes: [2, 3, 5, 7] as [UInt8], length: 4)
hangCanary(data) hangCanary(data)
bytes = UnsafePointer<UInt8>(data.bytes) bytes = UnsafePointer<UInt8>(data.bytes)
} while false // CHECK-NOT: died } while false // CHECK-NOT: died
@@ -36,7 +36,7 @@ println("AnyObject:")
autoreleasepool { autoreleasepool {
var bytes: UnsafePointer<UInt8> var bytes: UnsafePointer<UInt8>
do { do {
let data = NSData(bytes: [11, 13, 17, 19] as UInt8[], length: 4) let data = NSData(bytes: [11, 13, 17, 19] as [UInt8], length: 4)
hangCanary(data) hangCanary(data)
let dataAsAny: AnyObject = data let dataAsAny: AnyObject = data
bytes = UnsafePointer<UInt8>(dataAsAny.bytes!) bytes = UnsafePointer<UInt8>(dataAsAny.bytes!)

View File

@@ -9,7 +9,7 @@
// CHECK: 30 // CHECK: 30
// CHECK: hello world // CHECK: hello world
func main() { func main() {
var arrOpt : (Int?)[] = [10,.None,20,.None,30] var arrOpt : [Int?] = [10,.None,20,.None,30]
for item in arrOpt { for item in arrOpt {
switch item { switch item {
case .None: case .None:

View File

@@ -60,7 +60,7 @@ println()
// Create an array of (String, Bool) pairs. <rdar://problem/16916422> // Create an array of (String, Bool) pairs. <rdar://problem/16916422>
do { do {
let x: (String, Bool)[] = [("foo", true)] let x: [(String, Bool)] = [("foo", true)]
println(x[0].0) // CHECK: foo println(x[0].0) // CHECK: foo
println(x[0].1) // CHECK: true println(x[0].1) // CHECK: true
} while false } while false
@@ -125,7 +125,7 @@ class Spoon: Runcible {
let x: Int let x: Int
init(x: Int) { self.x = x } init(x: Int) { self.x = x }
} }
let runceArray: Runcible[] = [Spoon(x: 219)] let runceArray: [Runcible] = [Spoon(x: 219)]
// CHECK: 1 element // CHECK: 1 element
// CHECK-NEXT: {{.*}}Spoon // CHECK-NEXT: {{.*}}Spoon
// CHECK-NEXT: x: 219 // CHECK-NEXT: x: 219

View File

@@ -245,7 +245,7 @@ tryRunce(Optionable(Spoon()))
tryRunce(Optionable(Hat())) tryRunce(Optionable(Hat()))
func optionableInts() { func optionableInts() {
var optionables: Optionable<Int>[] = [ var optionables: [Optionable<Int>] = [
.Mere(219), .Mere(219),
.Nought, .Nought,
.Nought, .Nought,
@@ -285,7 +285,7 @@ func println(suit: Suit) {
} }
func optionableSuits() { func optionableSuits() {
var optionables: Optionable<Suit>[] = [ var optionables: [Optionable<Suit>] = [
.Mere(.Spades), .Mere(.Spades),
.Mere(.Diamonds), .Mere(.Diamonds),
.Nought, .Nought,
@@ -309,7 +309,7 @@ func optionableSuits() {
optionableSuits() optionableSuits()
func optionableRuncibles<T : Runcible>(x: T) { func optionableRuncibles<T : Runcible>(x: T) {
var optionables: Optionable<T>[] = [ var optionables: [Optionable<T>] = [
.Mere(x), .Mere(x),
.Nought, .Nought,
.Mere(x), .Mere(x),

View File

@@ -127,9 +127,9 @@ class NotObjC {}
func testIgnoredParam(_: Int) {} func testIgnoredParam(_: Int) {}
func testIgnoredParams(_: Int, again _: Int) {} func testIgnoredParams(_: Int, again _: Int) {}
func testArrayBridging(a: Methods[]) {} func testArrayBridging(a: [Methods]) {}
func testArrayBridging2(a: AnyObject[]) {} func testArrayBridging2(a: [AnyObject]) {}
func testArrayBridging3(a: String[]) {} func testArrayBridging3(a: [String]) {}
} }
typealias AliasForNSRect = NSRect typealias AliasForNSRect = NSRect
@@ -239,7 +239,7 @@ class MyObject : NSObject {}
@IBOutlet var outlet: AnyObject @IBOutlet var outlet: AnyObject
var string = "abc" var string = "abc"
var array: AnyObject[] = [] var array: [AnyObject] = []
var dictionary: Dictionary<String, String> = [:] var dictionary: Dictionary<String, String> = [:]
} }
@@ -248,7 +248,7 @@ class MyObject : NSObject {}
// CHECK-NEXT: - (instancetype)init // CHECK-NEXT: - (instancetype)init
// CHECK-NEXT: @end // CHECK-NEXT: @end
@objc class PropertiesOverridden : Hive { @objc class PropertiesOverridden : Hive {
override var bees : (AnyObject[])! { override var bees : [AnyObject]! {
get { get {
return super.bees return super.bees
} }
@@ -312,7 +312,7 @@ class MyObject : NSObject {}
} }
// <rdar://problem/17165953> Swift: @lazy property reflects back into Objective-C with two properties, one for underlying storage // <rdar://problem/17165953> Swift: @lazy property reflects back into Objective-C with two properties, one for underlying storage
@lazy var cardPaths : String[] = [] @lazy var cardPaths : [String] = []
} }
// CHECK-LABEL: @interface Subscripts3 // CHECK-LABEL: @interface Subscripts3

View File

@@ -23,7 +23,7 @@ func posix_read(fd: Int32, buf: CMutableVoidPointer, sz: UInt) -> Int
@final class Keyboard { @final class Keyboard {
init() { } init() { }
func read(inout buf: UInt8[]) -> Int { func read(inout buf: [UInt8]) -> Int {
// ensure uniqueness before we allow buf to be modified // ensure uniqueness before we allow buf to be modified
buf.reserveCapacity(0) buf.reserveCapacity(0)
var r = buf.withUnsafePointerToElements { var r = buf.withUnsafePointerToElements {
@@ -69,7 +69,7 @@ var kbd : Keyboard = Keyboard()
@final class Console { @final class Console {
init() { } init() { }
func write(inout buf: UInt8[]) -> Int { func write(inout buf: [UInt8]) -> Int {
let count = buf.count let count = buf.count
var r = 0 var r = 0
for var start = 0; start < count; start += 1024 { for var start = 0; start < count; start += 1024 {

View File

@@ -10,11 +10,11 @@ func _convertStringToNSString(string: String) -> NSString
func _convertNSStringToString(nsstring: NSString) -> String func _convertNSStringToString(nsstring: NSString) -> String
// NSArray bridging entry points // NSArray bridging entry points
func _convertNSArrayToArray<T>(nsarr: NSArray) -> T[] { func _convertNSArrayToArray<T>(nsarr: NSArray) -> [T] {
return T[]() return [T]()
} }
func _convertArrayToNSArray<T>(arr: T[]) -> NSArray { func _convertArrayToNSArray<T>(arr: [T]) -> NSArray {
return NSArray() return NSArray()
} }

View File

@@ -5,7 +5,7 @@
// CHECK-LABEL: sil @_TF25array_literal_abstraction14array_of_funcsFT_GSaFT_T__ // CHECK-LABEL: sil @_TF25array_literal_abstraction14array_of_funcsFT_GSaFT_T__
// CHECK: alloc_array $@callee_owned (@out (), @in ()) -> () // CHECK: alloc_array $@callee_owned (@out (), @in ()) -> ()
func array_of_funcs() -> (() -> ())[] { func array_of_funcs() -> [(() -> ())] {
return [{}, {}] return [{}, {}]
} }

View File

@@ -27,69 +27,69 @@ func == (x: BridgedSwift, y: BridgedSwift) -> Bool { return true }
// CHECK-LABEL: sil @_TF19collection_downcast17testArrayDowncast // CHECK-LABEL: sil @_TF19collection_downcast17testArrayDowncast
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>): // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>):
func testArrayDowncast(array: AnyObject[]) -> BridgedObjC[] { func testArrayDowncast(array: [AnyObject]) -> [BridgedObjC] {
// CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs14_arrayDownCastU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs14_arrayDownCastU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
// CHECK: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
return array as BridgedObjC[] return array as [BridgedObjC]
} }
// CHECK-LABEL: sil @_TF19collection_downcast27testArrayDowncastFromObject // CHECK-LABEL: sil @_TF19collection_downcast27testArrayDowncastFromObject
// CHECK: bb0([[OBJ:%[0-9]+]] : $AnyObject): // CHECK: bb0([[OBJ:%[0-9]+]] : $AnyObject):
func testArrayDowncastFromObject(obj: AnyObject) -> BridgedObjC[] { func testArrayDowncastFromObject(obj: AnyObject) -> [BridgedObjC] {
// CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__ : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0> // CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__ : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0>
// CHECK: [[ARRAY_META:%[0-9]+]] = metatype $@thin Array<BridgedObjC>.Type // CHECK: [[ARRAY_META:%[0-9]+]] = metatype $@thin Array<BridgedObjC>.Type
// CHECK: [[NSARRAY_OBJ:%[0-9]+]] = unconditional_checked_cast [[OBJ]] : $AnyObject to $NSArray // CHECK: [[NSARRAY_OBJ:%[0-9]+]] = unconditional_checked_cast [[OBJ]] : $AnyObject to $NSArray
// CHECK: apply [[BRIDGE_FN]]<BridgedObjC>([[NSARRAY_OBJ]], [[ARRAY_META]]) : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0> // CHECK: apply [[BRIDGE_FN]]<BridgedObjC>([[NSARRAY_OBJ]], [[ARRAY_META]]) : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0>
return obj as BridgedObjC[] return obj as [BridgedObjC]
} }
// CHECK-LABEL: sil @_TF19collection_downcast28testArrayDowncastFromNSArray // CHECK-LABEL: sil @_TF19collection_downcast28testArrayDowncastFromNSArray
// CHECK: bb0([[NSARRAY_OBJ:%[0-9]+]] : $NSArray): // CHECK: bb0([[NSARRAY_OBJ:%[0-9]+]] : $NSArray):
func testArrayDowncastFromNSArray(obj: NSArray) -> BridgedObjC[] { func testArrayDowncastFromNSArray(obj: NSArray) -> [BridgedObjC] {
// CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__ : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0> // CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__ : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0>
// CHECK: [[ARRAY_META:%[0-9]+]] = metatype $@thin Array<BridgedObjC>.Type // CHECK: [[ARRAY_META:%[0-9]+]] = metatype $@thin Array<BridgedObjC>.Type
// CHECK: apply [[BRIDGE_FN]]<BridgedObjC>([[NSARRAY_OBJ]], [[ARRAY_META]]) : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0> // CHECK: apply [[BRIDGE_FN]]<BridgedObjC>([[NSARRAY_OBJ]], [[ARRAY_META]]) : $@thin <τ_0_0> (@owned NSArray, @thin Array<τ_0_0>.Type) -> @owned Array<τ_0_0>
return obj as BridgedObjC[] return obj as [BridgedObjC]
} }
// CHECK-LABEL: sil @_TF19collection_downcast28testArrayDowncastConditional // CHECK-LABEL: sil @_TF19collection_downcast28testArrayDowncastConditional
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>): // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>):
func testArrayDowncastConditional(array: AnyObject[]) -> BridgedObjC[]? { func testArrayDowncastConditional(array: [AnyObject]) -> [BridgedObjC]? {
// CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs25_arrayDownCastConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs25_arrayDownCastConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
// CHECK-NEXT: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK-NEXT: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
return array as? BridgedObjC[] return array as? [BridgedObjC]
} }
// CHECK-LABEL: sil @_TF19collection_downcast12testArrayIsa // CHECK-LABEL: sil @_TF19collection_downcast12testArrayIsa
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>) // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>)
func testArrayIsa(array: AnyObject[]) -> Bool { func testArrayIsa(array: [AnyObject]) -> Bool {
// CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs25_arrayDownCastConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs25_arrayDownCastConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
// CHECK-NEXT: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK-NEXT: apply [[DOWNCAST_FN]]<AnyObject, BridgedObjC>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
return array is BridgedObjC[] ? true : false return array is [BridgedObjC] ? true : false
} }
// CHECK-LABEL: sil @_TF19collection_downcast24testArrayDowncastBridged // CHECK-LABEL: sil @_TF19collection_downcast24testArrayDowncastBridged
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>): // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>):
func testArrayDowncastBridged(array: AnyObject[]) -> BridgedSwift[] { func testArrayDowncastBridged(array: [AnyObject]) -> [BridgedSwift] {
// CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs26_arrayBridgeFromObjectiveCU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs26_arrayBridgeFromObjectiveCU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
// CHECK-NEXT: apply [[BRIDGE_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK-NEXT: apply [[BRIDGE_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
return array as BridgedSwift[] return array as [BridgedSwift]
} }
// CHECK-LABEL: sil @_TF19collection_downcast35testArrayDowncastBridgedConditional // CHECK-LABEL: sil @_TF19collection_downcast35testArrayDowncastBridgedConditional
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>): // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>):
func testArrayDowncastBridgedConditional(array: AnyObject[]) -> BridgedSwift[]?{ func testArrayDowncastBridgedConditional(array: [AnyObject]) -> [BridgedSwift]?{
// CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs37_arrayBridgeFromObjectiveCConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs37_arrayBridgeFromObjectiveCConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
// CHECK-NEXT: apply [[BRIDGE_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK-NEXT: apply [[BRIDGE_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
return array as? BridgedSwift[] return array as? [BridgedSwift]
} }
// CHECK-LABEL: sil @_TF19collection_downcast19testArrayIsaBridged // CHECK-LABEL: sil @_TF19collection_downcast19testArrayIsaBridged
// CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>) // CHECK: bb0([[ARRAY:%[0-9]+]] : $Array<AnyObject>)
func testArrayIsaBridged(array: AnyObject[]) -> Bool { func testArrayIsaBridged(array: [AnyObject]) -> Bool {
// CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs37_arrayBridgeFromObjectiveCConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK: [[DOWNCAST_FN:%[0-9]+]] = function_ref @_TFSs37_arrayBridgeFromObjectiveCConditionalU___FGSaQ__GSqGSaQ0___ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
// CHECK: apply [[DOWNCAST_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>> // CHECK: apply [[DOWNCAST_FN]]<AnyObject, BridgedSwift>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Optional<Array<τ_0_1>>
return array is BridgedSwift[] ? true : false return array is [BridgedSwift] ? true : false
} }
// CHECK-LABEL: sil @_TF19collection_downcast32testDictionaryDowncastFromObject // CHECK-LABEL: sil @_TF19collection_downcast32testDictionaryDowncastFromObject

View File

@@ -27,18 +27,18 @@ func == (x: BridgedSwift, y: BridgedSwift) -> Bool { return true }
// CHECK-LABEL: sil @_TF17collection_upcast15testArrayUpcast // CHECK-LABEL: sil @_TF17collection_upcast15testArrayUpcast
// CHECK-NEXT: bb0([[ARRAY:%[0-9]+]] : $Array<BridgedObjC>): // CHECK-NEXT: bb0([[ARRAY:%[0-9]+]] : $Array<BridgedObjC>):
func testArrayUpcast(array: BridgedObjC[]) { func testArrayUpcast(array: [BridgedObjC]) {
// CHECK: [[UPCAST_FN:%[0-9]+]] = function_ref @_TFSs12_arrayUpCastU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK: [[UPCAST_FN:%[0-9]+]] = function_ref @_TFSs12_arrayUpCastU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
// CHECK-NEXT: apply [[UPCAST_FN]]<BridgedObjC, AnyObject>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK-NEXT: apply [[UPCAST_FN]]<BridgedObjC, AnyObject>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
let anyObjectArr: AnyObject[] = array let anyObjectArr: [AnyObject] = array
} }
// CHECK-LABEL: sil @_TF17collection_upcast22testArrayUpcastBridged // CHECK-LABEL: sil @_TF17collection_upcast22testArrayUpcastBridged
// CHECK-NEXT: bb0([[ARRAY:%[0-9]+]] : $Array<BridgedSwift>): // CHECK-NEXT: bb0([[ARRAY:%[0-9]+]] : $Array<BridgedSwift>):
func testArrayUpcastBridged(array: BridgedSwift[]) { func testArrayUpcastBridged(array: [BridgedSwift]) {
// CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs24_arrayBridgeToObjectiveCU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK: [[BRIDGE_FN:%[0-9]+]] = function_ref @_TFSs24_arrayBridgeToObjectiveCU___FGSaQ__GSaQ0__ : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
// CHECK-NEXT: apply [[BRIDGE_FN]]<BridgedSwift, AnyObject>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1> // CHECK-NEXT: apply [[BRIDGE_FN]]<BridgedSwift, AnyObject>([[ARRAY]]) : $@thin <τ_0_0, τ_0_1> (@owned Array<τ_0_0>) -> @owned Array<τ_0_1>
let anyObjectArr: AnyObject[] = array let anyObjectArr: [AnyObject] = array
} }
// CHECK-LABEL: sil @_TF17collection_upcast20testDictionaryUpcast // CHECK-LABEL: sil @_TF17collection_upcast20testDictionaryUpcast

View File

@@ -158,7 +158,7 @@ func scalar_to_tuple() {
// CHECK-LABEL: sil @_TF11expressions11array_alloc // CHECK-LABEL: sil @_TF11expressions11array_alloc
func array_alloc(n: Int) { func array_alloc(n: Int) {
var a: Int[] = new Int[n] var a: [Int] = new Int[n]
} }
struct SomeStruct { struct SomeStruct {
@@ -354,7 +354,7 @@ struct Spoon : Runcible, Mincible {
} }
struct Hat<T> : Runcible { struct Hat<T> : Runcible {
typealias U = T[] typealias U = [T]
var free: Int { return 1 } var free: Int { return 1 }
var associated: U { get {} } var associated: U { get {} }
@@ -426,7 +426,7 @@ func tuple_element(var x: (Int, Float)) {
} }
// CHECK-LABEL: sil @_TF11expressions10containers // CHECK-LABEL: sil @_TF11expressions10containers
func containers() -> (Int[], Dictionary<String, Int>) { func containers() -> ([Int], Dictionary<String, Int>) {
return ([1, 2, 3], ["Ankeny": 1, "Burnside": 2, "Couch": 3]) return ([1, 2, 3], ["Ankeny": 1, "Burnside": 2, "Couch": 3])
} }

View File

@@ -121,7 +121,7 @@ func testAddressOnlyLet<T>(a : T) {
} }
func produceSubscriptableRValue() -> String[] {} func produceSubscriptableRValue() -> [String] {}
// CHECK-LABEL: sil @{{.*}}subscriptRValue // CHECK-LABEL: sil @{{.*}}subscriptRValue
func subscriptRValue() { func subscriptRValue() {

View File

@@ -20,7 +20,7 @@ func Pročprostěnemluvíčesky() { }
// non-variadic tuples. // non-variadic tuples.
// CHECK-LABEL: sil @_TF8mangling9r13757744FT1xGSaSi__T_ // CHECK-LABEL: sil @_TF8mangling9r13757744FT1xGSaSi__T_
func r13757744(#x: Int[]) {} func r13757744(#x: [Int]) {}
// CHECK-LABEL: sil @_TF8mangling9r13757744Ft1xGSaSi__T_ // CHECK-LABEL: sil @_TF8mangling9r13757744Ft1xGSaSi__T_
func r13757744(#x: Int...) {} func r13757744(#x: Int...) {}

View File

@@ -309,7 +309,7 @@ class Bas : NSObject {
// CHECK: [[SWIFT_FN:%[0-9]+]] = function_ref @_TFC13objc_bridging3Bas{{.*}} : $@cc(method) @thin (@owned Array<AnyObject>, @owned Bas) -> () // CHECK: [[SWIFT_FN:%[0-9]+]] = function_ref @_TFC13objc_bridging3Bas{{.*}} : $@cc(method) @thin (@owned Array<AnyObject>, @owned Bas) -> ()
// CHECK: [[RESULT:%[0-9]+]] = apply [[SWIFT_FN]]([[ARRAY]], [[SELF]]) : $@cc(method) @thin (@owned Array<AnyObject>, @owned Bas) -> () // CHECK: [[RESULT:%[0-9]+]] = apply [[SWIFT_FN]]([[ARRAY]], [[SELF]]) : $@cc(method) @thin (@owned Array<AnyObject>, @owned Bas) -> ()
// CHECK: return [[RESULT]] : $() // CHECK: return [[RESULT]] : $()
func arrayArg(array: AnyObject[]) { } func arrayArg(array: [AnyObject]) { }
// CHECK-LABEL: sil @_TToFC13objc_bridging3Bas11arrayResult{{.*}} : $@cc(objc_method) @thin (Bas) -> @autoreleased NSArray // CHECK-LABEL: sil @_TToFC13objc_bridging3Bas11arrayResult{{.*}} : $@cc(objc_method) @thin (Bas) -> @autoreleased NSArray
// CHECK: bb0([[SELF:%[0-9]+]] : $Bas): // CHECK: bb0([[SELF:%[0-9]+]] : $Bas):
@@ -318,11 +318,11 @@ class Bas : NSObject {
// CHECK: [[ARRAY:%[0-9]+]] = apply [[SWIFT_FN]]([[SELF]]) : $@cc(method) @thin (@owned Bas) -> @owned Array<AnyObject> // CHECK: [[ARRAY:%[0-9]+]] = apply [[SWIFT_FN]]([[SELF]]) : $@cc(method) @thin (@owned Bas) -> @owned Array<AnyObject>
// CHECK: [[CONV_FN:%[0-9]+]] = function_ref @_TF10Foundation22_convertArrayToNSArray{{.*}} : $@thin <τ_0_0> (@owned Array<τ_0_0>) -> @owned NSArray // CHECK: [[CONV_FN:%[0-9]+]] = function_ref @_TF10Foundation22_convertArrayToNSArray{{.*}} : $@thin <τ_0_0> (@owned Array<τ_0_0>) -> @owned NSArray
// CHECK: [[NSARRAY:%[0-9]+]] = apply [[CONV_FN]]<AnyObject>([[ARRAY]]) : $@thin <τ_0_0> (@owned Array<τ_0_0>) -> @owned NSArray // CHECK: [[NSARRAY:%[0-9]+]] = apply [[CONV_FN]]<AnyObject>([[ARRAY]]) : $@thin <τ_0_0> (@owned Array<τ_0_0>) -> @owned NSArray
func arrayResult() -> AnyObject[] { return [] } func arrayResult() -> [AnyObject] { return [] }
// CHECK-LABEL: sil [transparent] @_TToFC13objc_bridging3Basg9arrayPropGSaSS_ : $@cc(objc_method) @thin (Bas) -> @autoreleased NSArray // CHECK-LABEL: sil [transparent] @_TToFC13objc_bridging3Basg9arrayPropGSaSS_ : $@cc(objc_method) @thin (Bas) -> @autoreleased NSArray
// CHECK-LABEL: sil [transparent] @_TToFC13objc_bridging3Bass9arrayPropGSaSS_ : $@cc(objc_method) @thin (NSArray, Bas) -> () // CHECK-LABEL: sil [transparent] @_TToFC13objc_bridging3Bass9arrayPropGSaSS_ : $@cc(objc_method) @thin (NSArray, Bas) -> ()
var arrayProp: String[] = [] var arrayProp: [String] = []
} }
// CHECK-LABEL: sil @_TF13objc_bridging16applyStringBlock // CHECK-LABEL: sil @_TF13objc_bridging16applyStringBlock

View File

@@ -271,7 +271,7 @@ func tuple_element(x: (Int, Float)) {
} }
func containers() -> (Int[], Dictionary<String, Int>) { func containers() -> ([Int], Dictionary<String, Int>) {
return ([1, 2, 3], ["Ankeny": 1, "Burnside": 2, "Couch": 3]) return ([1, 2, 3], ["Ankeny": 1, "Burnside": 2, "Couch": 3])
// CHECK-LABEL: sil @_TF13sil_locations10containers // CHECK-LABEL: sil @_TF13sil_locations10containers
// CHECK: string_literal utf16 "Ankeny" {{.*}} line:[[@LINE-2]]:23 // CHECK: string_literal utf16 "Ankeny" {{.*}} line:[[@LINE-2]]:23

View File

@@ -190,7 +190,7 @@ class C {}
func use(c: C) {} func use(c: C) {}
func for_each_loop(x: C[]) { func for_each_loop(x: [C]) {
for i in x { for i in x {
use(i) use(i)
} }

View File

@@ -40,7 +40,7 @@ func bridgedIs(obj: AnyObject) {
// CHECK: [[ARRAY_BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__ // CHECK: [[ARRAY_BRIDGE_FN:%[0-9]+]] = function_ref @_TFSa20bridgeFromObjectiveCU__fMGSaQ__FCSo7NSArrayGSaQ__
// CHECK: apply [[ARRAY_BRIDGE_FN]]<NSString> // CHECK: apply [[ARRAY_BRIDGE_FN]]<NSString>
case is NSString[]: case is [NSString]:
() ()
default: default:

View File

@@ -1,7 +1,7 @@
// RUN: %swift %s -O3 -emit-sil // RUN: %swift %s -O3 -emit-sil
// Make sure we are not crashing on this one. // Make sure we are not crashing on this one.
var a : String[] = ["foo"] var a : [String] = ["foo"]
_preconditionFailure("unreachable") _preconditionFailure("unreachable")
for i in 0...a.count { for i in 0...a.count {

View File

@@ -13,6 +13,6 @@
// As a workaround the devirtualizer checks that the array size match as // As a workaround the devirtualizer checks that the array size match as
// expected an bail if this is not the case. // expected an bail if this is not the case.
func asHex(a: UInt8[]) -> String { func asHex(a: [UInt8]) -> String {
return "".join(a.map { "0x" + String($0, radix: 16)}) return "".join(a.map { "0x" + String($0, radix: 16)})
} }

View File

@@ -6,7 +6,7 @@ import SwiftShims
class MD5 { class MD5 {
init() init()
@final var w: UInt32[] @final var w: [UInt32]
} }
// CHECK-LABEL:sil @test_unique_check_arc : $@cc(method) @thin (@owned MD5) -> () // CHECK-LABEL:sil @test_unique_check_arc : $@cc(method) @thin (@owned MD5) -> ()

View File

@@ -6,7 +6,7 @@
//CHECK-NOT: strong_retain //CHECK-NOT: strong_retain
//CHECK-NOT: strong_release //CHECK-NOT: strong_release
//CHECK: return //CHECK: return
func swapByIndex(inout A : Int8[], x : Int, y : Int) { func swapByIndex(inout A : [Int8], x : Int, y : Int) {
swap(&A[x],&A[y]) swap(&A[x],&A[y])
} }

View File

@@ -17,7 +17,7 @@ extension Int {
typealias EspeciallyMagicalInt = Int64 typealias EspeciallyMagicalInt = Int64
} }
typealias IntSlice = Int[] typealias IntSlice = [Int]
struct Base { struct Base {

View File

@@ -14,7 +14,7 @@ func useNested((x: Int, y: Int), #n: Int) {}
func variadic(#x: Double, y: Int...) {} func variadic(#x: Double, y: Int...) {}
func slice(#x: Int[]) {} func slice(#x: [Int]) {}
func optional(#x: Int?) {} func optional(#x: Int?) {}
func overloaded(#x: Int) {} func overloaded(#x: Int) {}

View File

@@ -11,7 +11,7 @@ extension CodePoints {
func print(x: CodePoints) { print(String(x._base)) } func print(x: CodePoints) { print(String(x._base)) }
func println(x: CodePoints) { println(String(x._base)) } func println(x: CodePoints) { println(String(x._base)) }
func println(x: CodePoints[]) { func println(x: [CodePoints]) {
print("[ ") print("[ ")
var prefix="" var prefix=""
for s in x { for s in x {
@@ -53,7 +53,7 @@ testSplit()
// generic algorithms that work on Sequences, so need a lightweight // generic algorithms that work on Sequences, so need a lightweight
// way to get Streams out of them. // way to get Streams out of them.
operator prefix ^ {} operator prefix ^ {}
@prefix func ^ (x: Int[]) -> Array<Int>.GeneratorType @prefix func ^ (x: [Int]) -> Array<Int>.GeneratorType
{ return x.generate() } { return x.generate() }
// FIXME: This class is a temporary workaround for // FIXME: This class is a temporary workaround for
@@ -61,7 +61,7 @@ operator prefix ^ {}
struct VecIntStream : Generator, Sequence { struct VecIntStream : Generator, Sequence {
typealias Element = Int typealias Element = Int
init(_ owner: Int[]) { init(_ owner: [Int]) {
self.owner = owner self.owner = owner
self.value = owner.generate() self.value = owner.generate()
} }
@@ -71,12 +71,12 @@ struct VecIntStream : Generator, Sequence {
func generate() -> VecIntStream { func generate() -> VecIntStream {
return self return self
} }
var owner: Int[] var owner: [Int]
var value: Array<Int>.GeneratorType var value: Array<Int>.GeneratorType
} }
operator prefix ^^ {} operator prefix ^^ {}
@prefix func ^^ (x: Int[]) -> VecIntStream @prefix func ^^ (x: [Int]) -> VecIntStream
{ {
var result = Array<Int>() var result = Array<Int>()

View File

@@ -28,7 +28,7 @@ func testTakeActualArray() {
for x in primes0 { primes1.append(x) } for x in primes0 { primes1.append(x) }
// Take the elements of primes1 in an Array // Take the elements of primes1 in an Array
var primes2 : Int[] = primes1 var primes2 : [Int] = primes1
// Check that the copy worked // Check that the copy worked
// CHECK-NEXT: <2> <3> <5> <7> <11> . // CHECK-NEXT: <2> <3> <5> <7> <11> .

View File

@@ -136,12 +136,12 @@ class Thunks : NSObject {
return BridgedObjC(value) return BridgedObjC(value)
} }
@objc func acceptBridgedObjCArray(x: BridgedObjC[]) { @objc func acceptBridgedObjCArray(x: [BridgedObjC]) {
println("acceptBridgedObjCArray(\(x))") println("acceptBridgedObjCArray(\(x))")
} }
@objc func produceBridgedObjCArray(numItems: Int) -> BridgedObjC[] { @objc func produceBridgedObjCArray(numItems: Int) -> [BridgedObjC] {
var array: BridgedObjC[] = [] var array: [BridgedObjC] = []
for i in 0..<numItems { for i in 0..<numItems {
array.append(BridgedObjC(i)) array.append(BridgedObjC(i))
} }
@@ -149,12 +149,12 @@ class Thunks : NSObject {
return array return array
} }
@objc func acceptBridgedSwiftArray(x: BridgedSwift[]) { @objc func acceptBridgedSwiftArray(x: [BridgedSwift]) {
println("acceptBridgedSwiftArray(\(x))") println("acceptBridgedSwiftArray(\(x))")
} }
@objc func produceBridgedSwiftArray(numItems: Int) -> BridgedSwift[] { @objc func produceBridgedSwiftArray(numItems: Int) -> [BridgedSwift] {
var array: BridgedSwift[] = [] var array: [BridgedSwift] = []
for i in 0..<numItems { for i in 0..<numItems {
array.append(BridgedSwift(i)) array.append(BridgedSwift(i))
} }
@@ -169,7 +169,7 @@ class Thunks : NSObject {
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
func testBridgedVerbatim() { func testBridgedVerbatim() {
let bases: Base[] = [Base(100), Base(200), Base(300)] let bases: [Base] = [Base(100), Base(200), Base(300)]
//===--- Implicit conversion to/from NSArray ------------------------------===// //===--- Implicit conversion to/from NSArray ------------------------------===//
@@ -180,8 +180,8 @@ func testBridgedVerbatim() {
// Create an ordinary NSArray, not a native one // Create an ordinary NSArray, not a native one
let nsArrayOfBase: NSArray = NSArray(object: Base(42)) let nsArrayOfBase: NSArray = NSArray(object: Base(42))
// NSArray converts implicitly to AnyObject[]... // NSArray converts implicitly to [AnyObject]...
let nsArrayOfBaseConvertedToAnyObjectArray: AnyObject[] = nsArrayOfBase let nsArrayOfBaseConvertedToAnyObjectArray: [AnyObject] = nsArrayOfBase
// Capture the representation of the first element // Capture the representation of the first element
// CHECK-NEXT: [[base42:Base.*42]] // CHECK-NEXT: [[base42:Base.*42]]
@@ -192,12 +192,12 @@ func testBridgedVerbatim() {
println(nsArrayOfBaseConvertedToAnyObjectArray[0] as Base) println(nsArrayOfBaseConvertedToAnyObjectArray[0] as Base)
//===--- Up- and Down-casts -----------------------------------------------===// //===--- Up- and Down-casts -----------------------------------------------===//
var derived: Derived[] = [Derived(11), Derived(22)] var derived: [Derived] = [Derived(11), Derived(22)]
// CHECK-NEXT: [[derived0:\[Derived#[0-9]+\(11\), Derived#[0-9]+\(22\)\]{1}]] // CHECK-NEXT: [[derived0:\[Derived#[0-9]+\(11\), Derived#[0-9]+\(22\)\]{1}]]
println(derived) println(derived)
// upcast is implicit // upcast is implicit
let derivedAsBases: Base[] = derived let derivedAsBases: [Base] = derived
// CHECK-NEXT: [[derived0]] // CHECK-NEXT: [[derived0]]
println(derivedAsBases) println(derivedAsBases)
@@ -211,7 +211,7 @@ func testBridgedVerbatim() {
println(derivedAsBases) println(derivedAsBases)
// CHECK-NEXT: [[derived0]] // CHECK-NEXT: [[derived0]]
if let roundTripDerived = derivedAsBases as? Derived[] { if let roundTripDerived = derivedAsBases as? [Derived] {
println(roundTripDerived) println(roundTripDerived)
} }
else { else {
@@ -219,11 +219,11 @@ func testBridgedVerbatim() {
} }
// CHECK-NEXT: [[derived2:\[Derived#[0-9]+\(44\), Derived#[0-9]+\(55\)\]{1}]] // CHECK-NEXT: [[derived2:\[Derived#[0-9]+\(44\), Derived#[0-9]+\(55\)\]{1}]]
let derivedInBaseBuffer: Base[] = [Derived(44), Derived(55)] let derivedInBaseBuffer: [Base] = [Derived(44), Derived(55)]
println(derivedInBaseBuffer) println(derivedInBaseBuffer)
// CHECK-NEXT: Explicit downcast-ability is based on element type, not buffer type // CHECK-NEXT: Explicit downcast-ability is based on element type, not buffer type
if let downcastBaseBuffer = derivedInBaseBuffer as? Derived[] { if let downcastBaseBuffer = derivedInBaseBuffer as? [Derived] {
println("Explicit downcast-ability is based on element type, not buffer type") println("Explicit downcast-ability is based on element type, not buffer type")
} }
else { else {
@@ -232,11 +232,11 @@ func testBridgedVerbatim() {
// We can up-cast to array of AnyObject // We can up-cast to array of AnyObject
// CHECK-NEXT: [[derived2]] // CHECK-NEXT: [[derived2]]
let derivedAsAnyObjectArray: AnyObject[] = derivedInBaseBuffer let derivedAsAnyObjectArray: [AnyObject] = derivedInBaseBuffer
println(derivedAsAnyObjectArray) println(derivedAsAnyObjectArray)
// CHECK-NEXT: downcastBackToBase = [[derived2]] // CHECK-NEXT: downcastBackToBase = [[derived2]]
if let downcastBackToBase = derivedAsAnyObjectArray as? Base[] { if let downcastBackToBase = derivedAsAnyObjectArray as? [Base] {
println("downcastBackToBase = \(downcastBackToBase)") println("downcastBackToBase = \(downcastBackToBase)")
} }
else { else {
@@ -244,7 +244,7 @@ func testBridgedVerbatim() {
} }
// CHECK-NEXT: downcastBackToDerived = [[derived2]] // CHECK-NEXT: downcastBackToDerived = [[derived2]]
if let downcastBackToDerived = derivedAsAnyObjectArray as? Derived[] { if let downcastBackToDerived = derivedAsAnyObjectArray as? [Derived] {
println("downcastBackToDerived = \(downcastBackToDerived)") println("downcastBackToDerived = \(downcastBackToDerived)")
} }
else { else {
@@ -252,28 +252,28 @@ func testBridgedVerbatim() {
} }
// CHECK-NEXT: downcastToProtocols = [[derived2]] // CHECK-NEXT: downcastToProtocols = [[derived2]]
if let downcastToProtocols = derivedAsAnyObjectArray as? Fooable[] { if let downcastToProtocols = derivedAsAnyObjectArray as? [Fooable] {
println("downcastToProtocols = \(downcastToProtocols)") println("downcastToProtocols = \(downcastToProtocols)")
} else { } else {
println("downcastToProtocols failed") println("downcastToProtocols failed")
} }
// CHECK-NEXT: downcastToProtocols = [[derived2]] // CHECK-NEXT: downcastToProtocols = [[derived2]]
if let downcastToProtocols = derivedAsAnyObjectArray as? Barable[] { if let downcastToProtocols = derivedAsAnyObjectArray as? [Barable] {
println("downcastToProtocols = \(downcastToProtocols)") println("downcastToProtocols = \(downcastToProtocols)")
} else { } else {
println("downcastToProtocols failed") println("downcastToProtocols failed")
} }
// CHECK-NEXT: downcastToProtocols = [[derived2]] // CHECK-NEXT: downcastToProtocols = [[derived2]]
if let downcastToProtocols = derivedAsAnyObjectArray as? protocol<Barable, Fooable>[] { if let downcastToProtocols = derivedAsAnyObjectArray as? [protocol<Barable, Fooable>] {
println("downcastToProtocols = \(downcastToProtocols)") println("downcastToProtocols = \(downcastToProtocols)")
} else { } else {
println("downcastToProtocols failed") println("downcastToProtocols failed")
} }
// CHECK-NEXT: downcastToProtocols failed // CHECK-NEXT: downcastToProtocols failed
if let downcastToProtocols = derivedAsAnyObjectArray as? protocol<Barable, Bazable>[] { if let downcastToProtocols = derivedAsAnyObjectArray as? [protocol<Barable, Bazable>] {
println("downcastToProtocols = \(downcastToProtocols)") println("downcastToProtocols = \(downcastToProtocols)")
} else { } else {
println("downcastToProtocols failed") println("downcastToProtocols failed")
@@ -303,11 +303,11 @@ func testExplicitlyBridged() {
let bridgedSwiftsAsNSArray: NSArray = bridgedSwifts let bridgedSwiftsAsNSArray: NSArray = bridgedSwifts
// CHECK-NEXT: [BridgedObjC#{{[0-9]+}}(42), BridgedObjC#{{[0-9]+}}(17)] // CHECK-NEXT: [BridgedObjC#{{[0-9]+}}(42), BridgedObjC#{{[0-9]+}}(17)]
println("bridgedSwiftsAsNSArray = \(bridgedSwiftsAsNSArray as AnyObject[]))") println("bridgedSwiftsAsNSArray = \(bridgedSwiftsAsNSArray as [AnyObject]))")
// Make sure we can bridge back. // Make sure we can bridge back.
let roundTripBridgedSwifts let roundTripBridgedSwifts
= BridgedSwift[].bridgeFromObjectiveC(bridgedSwiftsAsNSArray) = [BridgedSwift].bridgeFromObjectiveC(bridgedSwiftsAsNSArray)
// CHECK-NEXT-NOT: [BridgedSwift#[[id00]](42), BridgedSwift#[[id01]](17)] // CHECK-NEXT-NOT: [BridgedSwift#[[id00]](42), BridgedSwift#[[id01]](17)]
// CHECK-NEXT: [BridgedSwift#[[id10:[0-9]+]](42), BridgedSwift#[[id11:[0-9]+]](17)] // CHECK-NEXT: [BridgedSwift#[[id10:[0-9]+]](42), BridgedSwift#[[id11:[0-9]+]](17)]
println("roundTripBridgedSwifts = \(roundTripBridgedSwifts))") println("roundTripBridgedSwifts = \(roundTripBridgedSwifts))")
@@ -317,7 +317,7 @@ func testExplicitlyBridged() {
// ...and bridge *that* back // ...and bridge *that* back
let bridgedBackSwifts let bridgedBackSwifts
= BridgedSwift[].bridgeFromObjectiveC(cocoaBridgedSwifts) = [BridgedSwift].bridgeFromObjectiveC(cocoaBridgedSwifts)
// CHECK-NEXT-NOT: [BridgedSwift#[[id00]](42), BridgedSwift#[[id01]](17)] // CHECK-NEXT-NOT: [BridgedSwift#[[id00]](42), BridgedSwift#[[id01]](17)]
// CHECK-NEXT-NOT: [BridgedSwift#[[id10]](42), BridgedSwift#[[id11]](17)] // CHECK-NEXT-NOT: [BridgedSwift#[[id10]](42), BridgedSwift#[[id11]](17)]
// CHECK-NEXT: [BridgedSwift#{{[0-9]+}}(42), BridgedSwift#{{[0-9]+}}(17)] // CHECK-NEXT: [BridgedSwift#{{[0-9]+}}(42), BridgedSwift#{{[0-9]+}}(17)]
@@ -325,23 +325,23 @@ func testExplicitlyBridged() {
// all: verbatim, not, and doesn't bridge // all: verbatim, not, and doesn't bridge
// implicit conversions to/from NSArray // implicit conversions to/from NSArray
// Base[] -> Derived[] and Derived[] -> Base[] where Base can be AnyObject // [Base] -> [Derived] and [Derived] -> [Base] where Base can be AnyObject
// defining @objc method taking T[] and returning T[] // defining @objc method taking [T] and returning [T]
// Up-casts. // Up-casts.
let bridgedSwiftsAsBridgedObjCs: BridgedObjC[] = bridgedSwifts let bridgedSwiftsAsBridgedObjCs: [BridgedObjC] = bridgedSwifts
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(bridgedSwiftsAsBridgedObjCs[0]) println(bridgedSwiftsAsBridgedObjCs[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
println(bridgedSwiftsAsBridgedObjCs[1]) println(bridgedSwiftsAsBridgedObjCs[1])
let bridgedSwiftsAsBases: Base[] = bridgedSwifts let bridgedSwiftsAsBases: [Base] = bridgedSwifts
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(bridgedSwiftsAsBases[0]) println(bridgedSwiftsAsBases[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
println(bridgedSwiftsAsBases[1]) println(bridgedSwiftsAsBases[1])
let bridgedSwiftsAsAnyObjects: AnyObject[] = bridgedSwifts let bridgedSwiftsAsAnyObjects: [AnyObject] = bridgedSwifts
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(bridgedSwiftsAsAnyObjects[0]) println(bridgedSwiftsAsAnyObjects[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
@@ -349,7 +349,7 @@ func testExplicitlyBridged() {
// Downcasts of non-verbatim bridged value types to objects. // Downcasts of non-verbatim bridged value types to objects.
if true { if true {
let downcasted = bridgedSwifts as BridgedObjC[] let downcasted = bridgedSwifts as [BridgedObjC]
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
@@ -357,7 +357,7 @@ func testExplicitlyBridged() {
} }
if true { if true {
let downcasted = bridgedSwifts as Base[] let downcasted = bridgedSwifts as [Base]
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
@@ -365,7 +365,7 @@ func testExplicitlyBridged() {
} }
if true { if true {
let downcasted = bridgedSwifts as AnyObject[] let downcasted = bridgedSwifts as [AnyObject]
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
@@ -373,67 +373,67 @@ func testExplicitlyBridged() {
} }
// Downcasts of up-casted arrays. // Downcasts of up-casted arrays.
if let downcasted = bridgedSwiftsAsAnyObjects as? BridgedObjC[] { if let downcasted = bridgedSwiftsAsAnyObjects as? [BridgedObjC] {
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[] to BridgedObjC[]?") println("Could not downcast [AnyObject] to [BridgedObjC]?")
} }
if let downcasted = bridgedSwiftsAsAnyObjects as? Base[] { if let downcasted = bridgedSwiftsAsAnyObjects as? [Base] {
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[] to Base[]?") println("Could not downcast [AnyObject] to [Base]?")
} }
// Downcast of Cocoa array to an array of classes. // Downcast of Cocoa array to an array of classes.
let wrappedCocoaBridgedSwifts: AnyObject[] = cocoaBridgedSwifts let wrappedCocoaBridgedSwifts: [AnyObject] = cocoaBridgedSwifts
if let downcasted = wrappedCocoaBridgedSwifts as? BridgedObjC[] { if let downcasted = wrappedCocoaBridgedSwifts as? [BridgedObjC] {
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[] to BridgedObjC[]?") println("Could not downcast [AnyObject] to [BridgedObjC]?")
} }
// Downcast of Cocoa array to an array of values. // Downcast of Cocoa array to an array of values.
if let downcasted = wrappedCocoaBridgedSwifts as? BridgedSwift[] { if let downcasted = wrappedCocoaBridgedSwifts as? [BridgedSwift] {
// CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[] to BridgedSwift[]?") println("Could not downcast [AnyObject] to [BridgedSwift]?")
} }
// Downcast of Cocoa array to an array of strings (which should fail) // Downcast of Cocoa array to an array of strings (which should fail)
// CHECK-NEXT: Could not downcast AnyObject[] to String[] // CHECK-NEXT: Could not downcast [AnyObject] to [String]
if let downcasted = wrappedCocoaBridgedSwifts as? String[] { if let downcasted = wrappedCocoaBridgedSwifts as? [String] {
println("Shouldn't be able to downcast to an array of strings") println("Shouldn't be able to downcast to an array of strings")
} else { } else {
println("Could not downcast AnyObject[] to String[]") println("Could not downcast [AnyObject] to [String]")
} }
// Downcast from an implicitly unwrapped optional array of AnyObjects. // Downcast from an implicitly unwrapped optional array of AnyObjects.
var wrappedCocoaBridgedSwiftsIUO: AnyObject[]! = wrappedCocoaBridgedSwifts var wrappedCocoaBridgedSwiftsIUO: [AnyObject]! = wrappedCocoaBridgedSwifts
if let downcasted = wrappedCocoaBridgedSwiftsIUO as? BridgedSwift[] { if let downcasted = wrappedCocoaBridgedSwiftsIUO as? [BridgedSwift] {
// CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[]! to BridgedSwift[]") println("Could not downcast [AnyObject]! to [BridgedSwift]")
} }
// Downcast from a nil implicitly unwrapped optional array of AnyObjects. // Downcast from a nil implicitly unwrapped optional array of AnyObjects.
wrappedCocoaBridgedSwiftsIUO = nil wrappedCocoaBridgedSwiftsIUO = nil
if let downcasted = wrappedCocoaBridgedSwiftsIUO as? BridgedSwift[] { if let downcasted = wrappedCocoaBridgedSwiftsIUO as? [BridgedSwift] {
println("Cannot downcast from a nil array!") println("Cannot downcast from a nil array!")
} else { } else {
// CHECK-NEXT: Correctly rejected downcast of nil array // CHECK-NEXT: Correctly rejected downcast of nil array
@@ -441,19 +441,19 @@ func testExplicitlyBridged() {
} }
// Downcast from an optional array of AnyObjects. // Downcast from an optional array of AnyObjects.
var wrappedCocoaBridgedSwiftsOpt: AnyObject[]? = wrappedCocoaBridgedSwifts var wrappedCocoaBridgedSwiftsOpt: [AnyObject]? = wrappedCocoaBridgedSwifts
if let downcasted = wrappedCocoaBridgedSwiftsOpt as? BridgedSwift[] { if let downcasted = wrappedCocoaBridgedSwiftsOpt as? [BridgedSwift] {
// CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42) // CHECK-NEXT: BridgedSwift#[[ID0:[0-9]+]](42)
println(downcasted[0]) println(downcasted[0])
// CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17) // CHECK-NEXT: BridgedSwift#[[ID1:[0-9]+]](17)
println(downcasted[1]) println(downcasted[1])
} else { } else {
println("Could not downcast AnyObject[]! to BridgedSwift[]") println("Could not downcast [AnyObject]! to [BridgedSwift]")
} }
// Downcast from a nil optional array of AnyObjects. // Downcast from a nil optional array of AnyObjects.
wrappedCocoaBridgedSwiftsOpt = nil wrappedCocoaBridgedSwiftsOpt = nil
if let downcasted = wrappedCocoaBridgedSwiftsOpt as? BridgedSwift[] { if let downcasted = wrappedCocoaBridgedSwiftsOpt as? [BridgedSwift] {
println("Cannot downcast from a nil array!") println("Cannot downcast from a nil array!")
} else { } else {
// CHECK-NEXT: Correctly rejected downcast of nil array // CHECK-NEXT: Correctly rejected downcast of nil array

View File

@@ -37,7 +37,7 @@ if arg == "OutOfBounds3" {
} }
if arg == "OutOfBounds4" { if arg == "OutOfBounds4" {
var a: Int[] = [] var a: [Int] = []
println("OK") println("OK")
a.removeLast() a.removeLast()
} }
@@ -46,23 +46,23 @@ class Base { }
class Derived : Base { } class Derived : Base { }
if arg == "Downcast1" { if arg == "Downcast1" {
let ba: Base[] = [Derived(), Base()] let ba: [Base] = [Derived(), Base()]
// <rdar://problem/17340393> Array downcast should do deferred checking // <rdar://problem/17340393> Array downcast should do deferred checking
// FIXME: The "OK" should be moved after "let d0 = da[0]" when we // FIXME: The "OK" should be moved after "let d0 = da[0]" when we
// get deferred checking. // get deferred checking.
println("OK") println("OK")
let da: Derived[] = _arrayDownCast(ba) let da: [Derived] = _arrayDownCast(ba)
let d0 = da[0] let d0 = da[0]
let d1 = da[1] let d1 = da[1]
} }
if arg == "Downcast2" { if arg == "Downcast2" {
let a: AnyObject[] = ["String", 1] let a: [AnyObject] = ["String", 1]
// <rdar://problem/17340393> Array downcast should do deferred checking // <rdar://problem/17340393> Array downcast should do deferred checking
// FIXME: The "OK" should be moved after "let s0 = sa[0]" when we // FIXME: The "OK" should be moved after "let s0 = sa[0]" when we
// get deferred checking. // get deferred checking.
println("OK") println("OK")
let sa: NSString[] = _arrayBridgeFromObjectiveC(a) let sa: [NSString] = _arrayBridgeFromObjectiveC(a)
let s0 = sa[0] let s0 = sa[0]
let s1 = sa[1] let s1 = sa[1]
} }

View File

@@ -101,7 +101,7 @@ func testScope() {
// Because the elements come back at +0, we really don't want to // Because the elements come back at +0, we really don't want to
// treat them as objects, or we'll get double deletion // treat them as objects, or we'll get double deletion
let objects: Word[] = [0, 0] let objects: [Word] = [0, 0]
objects.withUnsafePointerToElements { objects.withUnsafePointerToElements {
nsx.getObjects( nsx.getObjects(

View File

@@ -1170,7 +1170,7 @@ func uniformRandom(max: Int) -> Int {
return random() % max return random() % max
} }
func pickRandom<T>(a: T[]) -> T { func pickRandom<T>(a: [T]) -> T {
return a[uniformRandom(a.count)] return a[uniformRandom(a.count)]
} }
@@ -1201,7 +1201,7 @@ func testDeleteChainCollisionRandomized() {
let chainLength = 7 let chainLength = 7
var knownKeys: TestKeyTy[] = [] var knownKeys: [TestKeyTy] = []
func getKey(value: Int) -> TestKeyTy { func getKey(value: Int) -> TestKeyTy {
for k in knownKeys { for k in knownKeys {
if k.value == value { if k.value == value {
@@ -2783,7 +2783,7 @@ func test_BridgedFromObjC_Verbatim_ArrayOfDictionaries() {
getAsNSDictionary([ 10: 1010 + i, 20: 1020 + i, 30: 1030 + i ])) getAsNSDictionary([ 10: 1010 + i, 20: 1020 + i, 30: 1030 + i ]))
} }
var a = nsa as AnyObject[] as Dictionary<NSObject, AnyObject>[] var a = nsa as [AnyObject] as [Dictionary<NSObject, AnyObject>]
for i in 0..<3 { for i in 0..<3 {
var d = a[i] var d = a[i]
var gen = d.generate() var gen = d.generate()
@@ -2807,7 +2807,7 @@ func test_BridgedFromObjC_Nonverbatim_ArrayOfDictionaries() {
getAsNSDictionary([ 10: 1010 + i, 20: 1020 + i, 30: 1030 + i ])) getAsNSDictionary([ 10: 1010 + i, 20: 1020 + i, 30: 1030 + i ]))
} }
var a = nsa as AnyObject[] as Dictionary<TestBridgedKeyTy, TestBridgedValueTy>[] var a = nsa as [AnyObject] as [Dictionary<TestBridgedKeyTy, TestBridgedValueTy>]
for i in 0..<3 { for i in 0..<3 {
var d = a[i] var d = a[i]
var gen = d.generate() var gen = d.generate()

View File

@@ -15,7 +15,7 @@ struct Print<T : Printable> : Sink {
var z = [ 1, 2, 3 ] var z = [ 1, 2, 3 ]
func printArray<T : Printable>(x: T[]) { func printArray<T : Printable>(x: [T]) {
pipe(SequenceOf(x), SinkOf(Print<T>())) pipe(SequenceOf(x), SinkOf(Print<T>()))
println() println()
} }

View File

@@ -8,7 +8,7 @@ struct Bundle {
locations = Array() locations = Array()
} }
var name = String() var name = String()
var locations: String[] var locations: [String]
} }
var a = HeapBuffer<Bundle,Int>(HeapBufferStorage<Bundle,Int>.self, Bundle(), 10) var a = HeapBuffer<Bundle,Int>(HeapBufferStorage<Bundle,Int>.self, Bundle(), 10)

View File

@@ -23,37 +23,37 @@ JoinTestCase.test("${ArrayType}") {
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[]] let seq: [ArrayType] = [[]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[], []] let seq: [ArrayType] = [[], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[], [], []] let seq: [ArrayType] = [[], [], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ]] let seq: [ArrayType] = [[ 1 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1 ], r) expectEqual([ 1 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 2 ], r) expectEqual([ 1, 2 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ], [ 3 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ], [ 3 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]] let seq: [ArrayType] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 2, 3, 4, 5, 6 ], r) expectEqual([ 1, 2, 3, 4, 5, 6 ], r)
} }
@@ -63,42 +63,42 @@ JoinTestCase.test("${ArrayType}") {
if true { if true {
let separator: ArrayType = [ 42 ] let separator: ArrayType = [ 42 ]
if true { if true {
let seq: ArrayType[] = [] let seq: [ArrayType] = []
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[]] let seq: [ArrayType] = [[]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[], []] let seq: [ArrayType] = [[], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 42 ], r) expectEqual([ 42 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[], [], []] let seq: [ArrayType] = [[], [], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 42, 42 ], r) expectEqual([ 42, 42 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ]] let seq: [ArrayType] = [[ 1 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1 ], r) expectEqual([ 1 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 42, 2 ], r) expectEqual([ 1, 42, 2 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ], [ 3 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ], [ 3 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 42, 2, 42, 3 ], r) expectEqual([ 1, 42, 2, 42, 3 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]] let seq: [ArrayType] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 2, 42, 3, 4, 42, 5, 6 ], r) expectEqual([ 1, 2, 42, 3, 4, 42, 5, 6 ], r)
} }
@@ -108,42 +108,42 @@ JoinTestCase.test("${ArrayType}") {
if true { if true {
let separator: ArrayType = [ 42, 4242 ] let separator: ArrayType = [ 42, 4242 ]
if true { if true {
let seq: ArrayType[] = [] let seq: [ArrayType] = []
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[]] let seq: [ArrayType] = [[]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
let seq: ArrayType[] = [[], []] let seq: [ArrayType] = [[], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 42, 4242 ], r) expectEqual([ 42, 4242 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[], [], []] let seq: [ArrayType] = [[], [], []]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 42, 4242, 42, 4242 ], r) expectEqual([ 42, 4242, 42, 4242 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ]] let seq: [ArrayType] = [[ 1 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1 ], r) expectEqual([ 1 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 42, 4242, 2 ], r) expectEqual([ 1, 42, 4242, 2 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1 ], [ 2 ], [ 3 ]] let seq: [ArrayType] = [[ 1 ], [ 2 ], [ 3 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 42, 4242, 2, 42, 4242, 3 ], r) expectEqual([ 1, 42, 4242, 2, 42, 4242, 3 ], r)
} }
if true { if true {
let seq: ArrayType[] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]] let seq: [ArrayType] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]]
let r = join(separator, seq) let r = join(separator, seq)
expectEqual([ 1, 2, 42, 4242, 3, 4, 42, 4242, 5, 6 ], r) expectEqual([ 1, 2, 42, 4242, 3, 4, 42, 4242, 5, 6 ], r)
} }
@@ -155,7 +155,7 @@ JoinTestCase.test("${ArrayType}") {
if true { if true {
let separator: ArrayType = [ 42, 4242 ] let separator: ArrayType = [ 42, 4242 ]
let seq: ArrayType[] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]] let seq: [ArrayType] = [[ 1, 2 ], [ 3, 4 ], [ 5, 6 ]]
let r = separator.join(seq) let r = separator.join(seq)
expectEqual([ 1, 2, 42, 4242, 3, 4, 42, 4242, 5, 6 ], r) expectEqual([ 1, 2, 42, 4242, 3, 4, 42, 4242, 5, 6 ], r)
} }
@@ -300,131 +300,131 @@ struct MinimalCollection : Collection {
JoinTestCase.test("OperatorPlus") { JoinTestCase.test("OperatorPlus") {
// ExtensibleCollection + Sequence // ExtensibleCollection + Sequence
if true { if true {
var ec: Int[] = [] var ec: [Int] = []
var s = SequenceOf(Int[]()) var s = SequenceOf([Int]())
var r: Int[] = ec + s var r: [Int] = ec + s
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
var ec: Int[] = [] var ec: [Int] = []
var s = SequenceOf([ 4, 5, 6, 7 ]) var s = SequenceOf([ 4, 5, 6, 7 ])
var r: Int[] = ec + s var r: [Int] = ec + s
expectEqual([ 4, 5, 6, 7 ], r) expectEqual([ 4, 5, 6, 7 ], r)
} }
if true { if true {
var ec: Int[] = [ 1, 2, 3 ] var ec: [Int] = [ 1, 2, 3 ]
var s = SequenceOf(Int[]()) var s = SequenceOf([Int]())
var r: Int[] = ec + s var r: [Int] = ec + s
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
var ec: Int[] = [ 1, 2, 3 ] var ec: [Int] = [ 1, 2, 3 ]
var s = SequenceOf([ 4, 5, 6, 7 ]) var s = SequenceOf([ 4, 5, 6, 7 ])
var r: Int[] = ec + s var r: [Int] = ec + s
expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r) expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r)
} }
// Sequence + ExtensibleCollection // Sequence + ExtensibleCollection
if true { if true {
var s = SequenceOf(Int[]()) var s = SequenceOf([Int]())
var ec: Int[] = [] var ec: [Int] = []
var r: Int[] = s + ec var r: [Int] = s + ec
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
var s = SequenceOf(Int[]()) var s = SequenceOf([Int]())
var ec: Int[] = [ 4, 5, 6, 7 ] var ec: [Int] = [ 4, 5, 6, 7 ]
var r: Int[] = s + ec var r: [Int] = s + ec
expectEqual([ 4, 5, 6, 7 ], r) expectEqual([ 4, 5, 6, 7 ], r)
} }
if true { if true {
var s = SequenceOf([ 1, 2, 3 ]) var s = SequenceOf([ 1, 2, 3 ])
var ec: Int[] = [] var ec: [Int] = []
var r: Int[] = s + ec var r: [Int] = s + ec
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
var s = SequenceOf([ 1, 2, 3 ]) var s = SequenceOf([ 1, 2, 3 ])
var ec: Int[] = [ 4, 5, 6, 7] var ec: [Int] = [ 4, 5, 6, 7]
var r: Int[] = s + ec var r: [Int] = s + ec
expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r) expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r)
} }
// ExtensibleCollection + Collection // ExtensibleCollection + Collection
if true { if true {
var ec: Int[] = [] var ec: [Int] = []
var c = MinimalCollection(Int[]()) var c = MinimalCollection([Int]())
var r: Int[] = ec + c var r: [Int] = ec + c
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
var ec: Int[] = [] var ec: [Int] = []
var c = MinimalCollection([ 4, 5, 6, 7 ]) var c = MinimalCollection([ 4, 5, 6, 7 ])
var r: Int[] = ec + c var r: [Int] = ec + c
expectEqual([ 4, 5, 6, 7 ], r) expectEqual([ 4, 5, 6, 7 ], r)
} }
if true { if true {
var ec: Int[] = [ 1, 2, 3 ] var ec: [Int] = [ 1, 2, 3 ]
var c = MinimalCollection(Int[]()) var c = MinimalCollection([Int]())
var r: Int[] = ec + c var r: [Int] = ec + c
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
var ec: Int[] = [ 1, 2, 3 ] var ec: [Int] = [ 1, 2, 3 ]
var c = MinimalCollection([ 4, 5, 6, 7 ]) var c = MinimalCollection([ 4, 5, 6, 7 ])
var r: Int[] = ec + c var r: [Int] = ec + c
expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r) expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r)
} }
// ExtensibleCollection + same ExtensibleCollection // ExtensibleCollection + same ExtensibleCollection
if true { if true {
var ec1: Int[] = [] var ec1: [Int] = []
var ec2: Int[] = [] var ec2: [Int] = []
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
var ec1: Int[] = [] var ec1: [Int] = []
var ec2: Int[] = [ 4, 5, 6, 7 ] var ec2: [Int] = [ 4, 5, 6, 7 ]
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 4, 5, 6, 7 ], r) expectEqual([ 4, 5, 6, 7 ], r)
} }
if true { if true {
var ec1: Int[] = [ 1, 2, 3 ] var ec1: [Int] = [ 1, 2, 3 ]
var ec2: Int[] = [] var ec2: [Int] = []
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
var ec1: Int[] = [ 1, 2, 3 ] var ec1: [Int] = [ 1, 2, 3 ]
var ec2: Int[] = [ 4, 5, 6, 7 ] var ec2: [Int] = [ 4, 5, 6, 7 ]
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r) expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r)
} }
// ExtensibleCollection + other ExtensibleCollection // ExtensibleCollection + other ExtensibleCollection
if true { if true {
var ec1: Int[] = [] var ec1: [Int] = []
var ec2 = MockExtensibleCollection(Int[]()) var ec2 = MockExtensibleCollection([Int]())
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([], r) expectEqual([], r)
} }
if true { if true {
var ec1: Int[] = [] var ec1: [Int] = []
var ec2 = MockExtensibleCollection([ 4, 5, 6, 7 ]) var ec2 = MockExtensibleCollection([ 4, 5, 6, 7 ])
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 4, 5, 6, 7 ], r) expectEqual([ 4, 5, 6, 7 ], r)
} }
if true { if true {
var ec1: Int[] = [ 1, 2, 3 ] var ec1: [Int] = [ 1, 2, 3 ]
var ec2 = MockExtensibleCollection(Int[]()) var ec2 = MockExtensibleCollection([Int]())
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 1, 2, 3 ], r) expectEqual([ 1, 2, 3 ], r)
} }
if true { if true {
var ec1: Int[] = [ 1, 2, 3 ] var ec1: [Int] = [ 1, 2, 3 ]
var ec2 = MockExtensibleCollection([ 4, 5, 6, 7 ]) var ec2 = MockExtensibleCollection([ 4, 5, 6, 7 ])
var r: Int[] = ec1 + ec2 var r: [Int] = ec1 + ec2
expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r) expectEqual([ 1, 2, 3, 4, 5, 6, 7 ], r)
} }
} }

View File

@@ -13,7 +13,7 @@ import Foundation
var NSStringAPIs = TestCase("NSStringAPIs") var NSStringAPIs = TestCase("NSStringAPIs")
NSStringAPIs.test("Encodings") { NSStringAPIs.test("Encodings") {
let availableEncodings: NSStringEncoding[] = String.availableStringEncodings() let availableEncodings: [NSStringEncoding] = String.availableStringEncodings()
expectNotEqual(0, availableEncodings.count) expectNotEqual(0, availableEncodings.count)
let defaultCStringEncoding = String.defaultCStringEncoding() let defaultCStringEncoding = String.defaultCStringEncoding()
@@ -250,7 +250,7 @@ NSStringAPIs.test("completePathIntoString(_:caseSensitive:matchesIntoArray:filte
if true { if true {
var outputName = "None Found" var outputName = "None Found"
var outputArray: String[] = [ "foo", "bar" ] var outputArray: [String] = [ "foo", "bar" ]
var count = nonExistentPath.completePathIntoString( var count = nonExistentPath.completePathIntoString(
&outputName, caseSensitive: false, matchesIntoArray: &outputArray) &outputName, caseSensitive: false, matchesIntoArray: &outputArray)
@@ -275,7 +275,7 @@ NSStringAPIs.test("completePathIntoString(_:caseSensitive:matchesIntoArray:filte
if true { if true {
var outputName = "None Found" var outputName = "None Found"
var outputArray: String[] = [ "foo", "bar" ] var outputArray: [String] = [ "foo", "bar" ]
var count = existingPath.completePathIntoString( var count = existingPath.completePathIntoString(
&outputName, caseSensitive: false, matchesIntoArray: &outputArray) &outputName, caseSensitive: false, matchesIntoArray: &outputArray)
@@ -308,8 +308,8 @@ NSStringAPIs.test("componentsSeparatedByString(_:)") {
NSStringAPIs.test("cStringUsingEncoding(_:)") { NSStringAPIs.test("cStringUsingEncoding(_:)") {
expectEmpty("абв".cStringUsingEncoding(NSASCIIStringEncoding)) expectEmpty("абв".cStringUsingEncoding(NSASCIIStringEncoding))
let expectedBytes: UInt8[] = [ 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xb2, 0 ] let expectedBytes: [UInt8] = [ 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xb2, 0 ]
var expectedStr: CChar[] = expectedBytes.map { $0.asSigned() } var expectedStr: [CChar] = expectedBytes.map { $0.asSigned() }
expectEqual(expectedStr, expectEqual(expectedStr,
"абв".cStringUsingEncoding(NSUTF8StringEncoding)!) "абв".cStringUsingEncoding(NSUTF8StringEncoding)!)
} }
@@ -321,7 +321,7 @@ NSStringAPIs.test("dataUsingEncoding(_:allowLossyConversion:)") {
let data = "あいう".dataUsingEncoding(NSUTF8StringEncoding) let data = "あいう".dataUsingEncoding(NSUTF8StringEncoding)
let bytes = Array(UnsafeArray( let bytes = Array(UnsafeArray(
start: UnsafePointer<UInt8>(data!.bytes), length: data!.length)) start: UnsafePointer<UInt8>(data!.bytes), length: data!.length))
let expectedBytes: UInt8[] = [ let expectedBytes: [UInt8] = [
0xe3, 0x81, 0x82, 0xe3, 0x81, 0x84, 0xe3, 0x81, 0x86 0xe3, 0x81, 0x82, 0xe3, 0x81, 0x84, 0xe3, 0x81, 0x86
] ]
expectTrue(equal(expectedBytes, bytes)) expectTrue(equal(expectedBytes, bytes))
@@ -340,7 +340,7 @@ NSStringAPIs.test("decomposedStringWithCompatibilityMapping") {
} }
NSStringAPIs.test("enumerateLines(_:)") { NSStringAPIs.test("enumerateLines(_:)") {
var lines: String[] = [] var lines: [String] = []
"abc\n\ndefghi\njklm".enumerateLines { "abc\n\ndefghi\njklm".enumerateLines {
(line: String, inout stop: Bool) (line: String, inout stop: Bool)
in in
@@ -356,9 +356,9 @@ NSStringAPIs.test("enumerateLinguisticTagsInRange(_:scheme:options:orthography:_
let s = "Абв. Глокая куздра штеко будланула бокра и кудрячит бокрёнка. Абв." let s = "Абв. Глокая куздра штеко будланула бокра и кудрячит бокрёнка. Абв."
let startIndex = advance(s.startIndex, 5) let startIndex = advance(s.startIndex, 5)
let endIndex = advance(s.startIndex, 62) let endIndex = advance(s.startIndex, 62)
var tags: String[] = [] var tags: [String] = []
var tokens: String[] = [] var tokens: [String] = []
var sentences: String[] = [] var sentences: [String] = []
s.enumerateLinguisticTagsInRange(startIndex..<endIndex, s.enumerateLinguisticTagsInRange(startIndex..<endIndex,
scheme: NSLinguisticTagSchemeTokenType, scheme: NSLinguisticTagSchemeTokenType,
options: NSLinguisticTaggerOptions(0), options: NSLinguisticTaggerOptions(0),
@@ -387,7 +387,7 @@ NSStringAPIs.test("enumerateSubstringsInRange(_:options:_:)") {
// FIXME: this might need to be adjusted to 5 when we implement // FIXME: this might need to be adjusted to 5 when we implement
// grapheme clusters properly. // grapheme clusters properly.
let endIndex = advance(s.startIndex, 7) let endIndex = advance(s.startIndex, 7)
var substrings: String[] = [] var substrings: [String] = []
s.enumerateSubstringsInRange(startIndex..<endIndex, s.enumerateSubstringsInRange(startIndex..<endIndex,
options: NSStringEnumerationOptions.ByComposedCharacterSequences) { options: NSStringEnumerationOptions.ByComposedCharacterSequences) {
(substring: String, substringRange: Range<String.Index>, (substring: String, substringRange: Range<String.Index>,
@@ -401,20 +401,20 @@ NSStringAPIs.test("enumerateSubstringsInRange(_:options:_:)") {
} }
NSStringAPIs.test("fastestEncoding") { NSStringAPIs.test("fastestEncoding") {
let availableEncodings: NSStringEncoding[] = String.availableStringEncodings() let availableEncodings: [NSStringEncoding] = String.availableStringEncodings()
expectTrue(contains(availableEncodings, "abc".fastestEncoding)) expectTrue(contains(availableEncodings, "abc".fastestEncoding))
} }
NSStringAPIs.test("fileSystemRepresentation()") { NSStringAPIs.test("fileSystemRepresentation()") {
if true { if true {
let expectedStr: CChar[] = Array(map("abc\0".utf8) { $0.asSigned() }) let expectedStr: [CChar] = Array(map("abc\0".utf8) { $0.asSigned() })
expectEqual(expectedStr, "abc".fileSystemRepresentation()) expectEqual(expectedStr, "abc".fileSystemRepresentation())
} }
// On OSX file system representation is Unicode NFD. // On OSX file system representation is Unicode NFD.
// This test might need to be adjusted for other systems. // This test might need to be adjusted for other systems.
if true { if true {
let expectedStr: CChar[] = let expectedStr: [CChar] =
Array(map("\u305f\u3099くてん\0".utf8) { $0.asSigned() }) Array(map("\u305f\u3099くてん\0".utf8) { $0.asSigned() })
expectEqual(expectedStr, "だくてん".fileSystemRepresentation()) expectEqual(expectedStr, "だくてん".fileSystemRepresentation())
} }
@@ -427,11 +427,11 @@ NSStringAPIs.test("getBytes(_:maxLength:usedLength:encoding:options:range:remain
if true { if true {
// 'maxLength' is limiting. // 'maxLength' is limiting.
let bufferLength = 100 let bufferLength = 100
var expectedStr: UInt8[] = Array("def где ".utf8) var expectedStr: [UInt8] = Array("def где ".utf8)
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += 0xff expectedStr += 0xff
} }
var buffer = UInt8[](count: bufferLength, repeatedValue: 0xff) var buffer = [UInt8](count: bufferLength, repeatedValue: 0xff)
var usedLength = 0 var usedLength = 0
var remainingRange = startIndex..<endIndex var remainingRange = startIndex..<endIndex
var result = s.getBytes(&buffer, maxLength: 11, usedLength: &usedLength, var result = s.getBytes(&buffer, maxLength: 11, usedLength: &usedLength,
@@ -448,11 +448,11 @@ NSStringAPIs.test("getBytes(_:maxLength:usedLength:encoding:options:range:remain
// 'bufferLength' is limiting. Note that the buffer is not filled // 'bufferLength' is limiting. Note that the buffer is not filled
// completely, since doing that would break a UTF sequence. // completely, since doing that would break a UTF sequence.
let bufferLength = 5 let bufferLength = 5
var expectedStr: UInt8[] = Array("def ".utf8) var expectedStr: [UInt8] = Array("def ".utf8)
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += 0xff expectedStr += 0xff
} }
var buffer = UInt8[](count: bufferLength, repeatedValue: 0xff) var buffer = [UInt8](count: bufferLength, repeatedValue: 0xff)
var usedLength = 0 var usedLength = 0
var remainingRange = startIndex..<endIndex var remainingRange = startIndex..<endIndex
var result = s.getBytes(&buffer, maxLength: 11, usedLength: &usedLength, var result = s.getBytes(&buffer, maxLength: 11, usedLength: &usedLength,
@@ -468,11 +468,11 @@ NSStringAPIs.test("getBytes(_:maxLength:usedLength:encoding:options:range:remain
if true { if true {
// 'range' is converted completely. // 'range' is converted completely.
let bufferLength = 100 let bufferLength = 100
var expectedStr: UInt8[] = Array("def где gh жз ".utf8) var expectedStr: [UInt8] = Array("def где gh жз ".utf8)
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += 0xff expectedStr += 0xff
} }
var buffer = UInt8[](count: bufferLength, repeatedValue: 0xff) var buffer = [UInt8](count: bufferLength, repeatedValue: 0xff)
var usedLength = 0 var usedLength = 0
var remainingRange = startIndex..<endIndex var remainingRange = startIndex..<endIndex
var result = s.getBytes(&buffer, maxLength: bufferLength, var result = s.getBytes(&buffer, maxLength: bufferLength,
@@ -488,11 +488,11 @@ NSStringAPIs.test("getBytes(_:maxLength:usedLength:encoding:options:range:remain
if true { if true {
// Inappropriate encoding. // Inappropriate encoding.
let bufferLength = 100 let bufferLength = 100
var expectedStr: UInt8[] = Array("def ".utf8) var expectedStr: [UInt8] = Array("def ".utf8)
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += 0xff expectedStr += 0xff
} }
var buffer = UInt8[](count: bufferLength, repeatedValue: 0xff) var buffer = [UInt8](count: bufferLength, repeatedValue: 0xff)
var usedLength = 0 var usedLength = 0
var remainingRange = startIndex..<endIndex var remainingRange = startIndex..<endIndex
var result = s.getBytes(&buffer, maxLength: bufferLength, var result = s.getBytes(&buffer, maxLength: bufferLength,
@@ -511,18 +511,18 @@ NSStringAPIs.test("getCString(_:maxLength:encoding:)") {
var s = "abc あかさた" var s = "abc あかさた"
if true { if true {
let bufferLength = 16 let bufferLength = 16
var buffer = CChar[](count: bufferLength, repeatedValue: (0xff).asSigned()) var buffer = [CChar](count: bufferLength, repeatedValue: (0xff).asSigned())
var result = s.getCString(&buffer, maxLength: 100, var result = s.getCString(&buffer, maxLength: 100,
encoding: NSUTF8StringEncoding) encoding: NSUTF8StringEncoding)
expectFalse(result) expectFalse(result)
} }
if true { if true {
let bufferLength = 17 let bufferLength = 17
var expectedStr: CChar[] = Array(map("abc あかさた\0".utf8) { $0.asSigned() }) var expectedStr: [CChar] = Array(map("abc あかさた\0".utf8) { $0.asSigned() })
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += (0xff).asSigned() expectedStr += (0xff).asSigned()
} }
var buffer = CChar[](count: bufferLength, repeatedValue: (0xff).asSigned()) var buffer = [CChar](count: bufferLength, repeatedValue: (0xff).asSigned())
var result = s.getCString(&buffer, maxLength: 100, var result = s.getCString(&buffer, maxLength: 100,
encoding: NSUTF8StringEncoding) encoding: NSUTF8StringEncoding)
expectTrue(result) expectTrue(result)
@@ -530,7 +530,7 @@ NSStringAPIs.test("getCString(_:maxLength:encoding:)") {
} }
if true { if true {
let bufferLength = 100 let bufferLength = 100
var buffer = CChar[](count: bufferLength, repeatedValue: (0xff).asSigned()) var buffer = [CChar](count: bufferLength, repeatedValue: (0xff).asSigned())
var result = s.getCString(&buffer, maxLength: 8, var result = s.getCString(&buffer, maxLength: 8,
encoding: NSUTF8StringEncoding) encoding: NSUTF8StringEncoding)
expectFalse(result) expectFalse(result)
@@ -543,18 +543,18 @@ NSStringAPIs.test("getFileSystemRepresentation(_:maxLength:)") {
var s = "abc だくてん" var s = "abc だくてん"
if true { if true {
let bufferLength = 16 let bufferLength = 16
var buffer = CChar[](count: bufferLength, repeatedValue: (0xff).asSigned()) var buffer = [CChar](count: bufferLength, repeatedValue: (0xff).asSigned())
var result = s.getFileSystemRepresentation(&buffer, maxLength: 100) var result = s.getFileSystemRepresentation(&buffer, maxLength: 100)
expectFalse(result) expectFalse(result)
} }
if true { if true {
let bufferLength = 100 let bufferLength = 100
var expectedStr: CChar[] = var expectedStr: [CChar] =
Array(map("abc \u305f\u3099くてん\0".utf8) { $0.asSigned() }) Array(map("abc \u305f\u3099くてん\0".utf8) { $0.asSigned() })
while (expectedStr.count != bufferLength) { while (expectedStr.count != bufferLength) {
expectedStr += (0xff).asSigned() expectedStr += (0xff).asSigned()
} }
var buffer = CChar[](count: bufferLength, repeatedValue: (0xff).asSigned()) var buffer = [CChar](count: bufferLength, repeatedValue: (0xff).asSigned())
expectTrue(s.getFileSystemRepresentation(&buffer, maxLength: bufferLength)) expectTrue(s.getFileSystemRepresentation(&buffer, maxLength: bufferLength))
expectTrue(equal(expectedStr, buffer)) expectTrue(equal(expectedStr, buffer))
} }
@@ -600,7 +600,7 @@ NSStringAPIs.test("hash") {
NSStringAPIs.test("stringWithBytes(_:length:encoding:)") { NSStringAPIs.test("stringWithBytes(_:length:encoding:)") {
var s: String = "abc あかさた" var s: String = "abc あかさた"
var bytes: UInt8[] = Array(s.utf8) var bytes: [UInt8] = Array(s.utf8)
expectOptionalEqual(s, String.stringWithBytes(bytes, length: bytes.count, expectOptionalEqual(s, String.stringWithBytes(bytes, length: bytes.count,
encoding: NSUTF8StringEncoding)) encoding: NSUTF8StringEncoding))
@@ -617,7 +617,7 @@ NSStringAPIs.test("stringWithBytes(_:length:encoding:)") {
NSStringAPIs.test("stringWithBytesNoCopy(_:length:encoding:freeWhenDone:)") { NSStringAPIs.test("stringWithBytesNoCopy(_:length:encoding:freeWhenDone:)") {
var s: String = "abc あかさた" var s: String = "abc あかさた"
var bytes: UInt8[] = Array(s.utf8) var bytes: [UInt8] = Array(s.utf8)
expectOptionalEqual(s, String.stringWithBytesNoCopy(&bytes, expectOptionalEqual(s, String.stringWithBytesNoCopy(&bytes,
length: bytes.count, encoding: NSUTF8StringEncoding, length: bytes.count, encoding: NSUTF8StringEncoding,
freeWhenDone: false)) freeWhenDone: false))
@@ -635,14 +635,14 @@ NSStringAPIs.test("stringWithBytesNoCopy(_:length:encoding:freeWhenDone:)") {
NSStringAPIs.test("init(utf16CodeUnits:count:)") { NSStringAPIs.test("init(utf16CodeUnits:count:)") {
let expected = "abc абв \U0001F60A" let expected = "abc абв \U0001F60A"
let chars: unichar[] = Array(expected.utf16) let chars: [unichar] = Array(expected.utf16)
expectEqual(expected, String(utf16CodeUnits: chars, count: chars.count)) expectEqual(expected, String(utf16CodeUnits: chars, count: chars.count))
} }
NSStringAPIs.test("init(utf16CodeUnitsNoCopy:count:freeWhenDone:)") { NSStringAPIs.test("init(utf16CodeUnitsNoCopy:count:freeWhenDone:)") {
let expected = "abc абв \U0001F60A" let expected = "abc абв \U0001F60A"
let chars: unichar[] = Array(expected.utf16) let chars: [unichar] = Array(expected.utf16)
expectEqual(expected, String(utf16CodeUnitsNoCopy: chars, expectEqual(expected, String(utf16CodeUnitsNoCopy: chars,
count: chars.count, freeWhenDone: false)) count: chars.count, freeWhenDone: false))
@@ -656,7 +656,7 @@ NSStringAPIs.test("init(format:_:...)") {
NSStringAPIs.test("init(format:arguments:)") { NSStringAPIs.test("init(format:arguments:)") {
let world: NSString = "world" let world: NSString = "world"
let args: CVarArg[] = [ world, 42 ] let args: [CVarArg] = [ world, 42 ]
expectEqual("Hello, world!%42", expectEqual("Hello, world!%42",
String(format: "Hello, %@!%%%ld", arguments: args)) String(format: "Hello, %@!%%%ld", arguments: args))
} }
@@ -671,7 +671,7 @@ NSStringAPIs.test("init(format:locale:_:...)") {
NSStringAPIs.test("init(format:locale:arguments:)") { NSStringAPIs.test("init(format:locale:arguments:)") {
let world: NSString = "world" let world: NSString = "world"
let args: CVarArg[] = [ world, 42 ] let args: [CVarArg] = [ world, 42 ]
expectEqual("Hello, world!%42", String(format: "Hello, %@!%%%ld", expectEqual("Hello, world!%42", String(format: "Hello, %@!%%%ld",
locale: nil, arguments: args)) locale: nil, arguments: args))
expectEqual("Hello, world!%42", String(format: "Hello, %@!%%%ld", expectEqual("Hello, world!%42", String(format: "Hello, %@!%%%ld",
@@ -706,7 +706,7 @@ NSStringAPIs.test("linguisticTagsInRange(_:scheme:options:orthography:tokenRange
let s = "Абв. Глокая куздра штеко будланула бокра и кудрячит бокрёнка. Абв." let s = "Абв. Глокая куздра штеко будланула бокра и кудрячит бокрёнка. Абв."
let startIndex = advance(s.startIndex, 5) let startIndex = advance(s.startIndex, 5)
let endIndex = advance(s.startIndex, 17) let endIndex = advance(s.startIndex, 17)
var tokenRanges: Range<String.Index>[] = [] var tokenRanges: [Range<String.Index>] = []
var tags = s.linguisticTagsInRange(startIndex..<endIndex, var tags = s.linguisticTagsInRange(startIndex..<endIndex,
scheme: NSLinguisticTagSchemeTokenType, scheme: NSLinguisticTagSchemeTokenType,
options: NSLinguisticTaggerOptions(0), options: NSLinguisticTaggerOptions(0),
@@ -816,7 +816,7 @@ NSStringAPIs.test("precomposedStringWithCompatibilityMapping") {
NSStringAPIs.test("propertyList()") { NSStringAPIs.test("propertyList()") {
expectEqual([ "foo", "bar" ], expectEqual([ "foo", "bar" ],
"(\"foo\", \"bar\")".propertyList() as String[]) "(\"foo\", \"bar\")".propertyList() as [String])
} }
NSStringAPIs.test("propertyListFromStringsFileFormat()") { NSStringAPIs.test("propertyListFromStringsFileFormat()") {
@@ -1066,7 +1066,7 @@ func getIllFormedUTF8String2() -> (CString, dealloc: ()->()) {
return (CString(up), { up.dealloc(100) }) return (CString(up), { up.dealloc(100) })
} }
func asCCharArray(a: UInt8[]) -> CChar[] { func asCCharArray(a: [UInt8]) -> [CChar] {
return a.map { $0.asSigned() } return a.map { $0.asSigned() }
} }

View File

@@ -455,7 +455,7 @@ testSingleElementModifiers${A}()
//===--- Regression Tests -------------------------------------------------===// //===--- Regression Tests -------------------------------------------------===//
func rdar16958865() { func rdar16958865() {
var a: Int[] = [] var a: [Int] = []
a += SequenceOf([ 42, 4242 ]) a += SequenceOf([ 42, 4242 ])
// CHECK-NEXT: [42, 4242] // CHECK-NEXT: [42, 4242]
println(a) println(a)
@@ -465,7 +465,7 @@ rdar16958865()
import SpriteKit import SpriteKit
class Rdar16914909 : NSObject { class Rdar16914909 : NSObject {
var basicColorSet = SKColor[]() var basicColorSet = [SKColor]()
func doColorStuff() { func doColorStuff() {
basicColorSet.append(SKColor.lightGrayColor()) basicColorSet.append(SKColor.lightGrayColor())

View File

@@ -84,7 +84,7 @@ println("forced extraction use: \(x!.successor()).")
func testRelation(p: (Int?, Int?) -> Bool) { func testRelation(p: (Int?, Int?) -> Bool) {
typealias optPair = (Int?, Int?) typealias optPair = (Int?, Int?)
let relationships: optPair[] = [ let relationships: [optPair] = [
(1, 1), (1, 2), (2, 1), (1, .None), (.None, 1), (.None, .None) (1, 1), (1, 2), (2, 1), (1, .None), (.None, 1), (.None, .None)
] ]

View File

@@ -506,7 +506,7 @@ test_ObjectPrinting()
// CHECK: test_ObjectPrinting done // CHECK: test_ObjectPrinting done
func test_ArrayPrinting() { func test_ArrayPrinting() {
var arrayOfInts: Int[] = [] var arrayOfInts: [Int] = []
printedIs(arrayOfInts, "[]") printedIs(arrayOfInts, "[]")
printedIs([ 1 ], "[1]") printedIs([ 1 ], "[1]")

View File

@@ -587,7 +587,7 @@ struct Pear<T, U> { let fst: T; let snd: U }
class SubScene: SKScene { class SubScene: SKScene {
let foo = 12_131_415 let foo = 12_131_415
let bar = "boom" let bar = "boom"
let bas: Pear<Int, Any?[]> = Pear(fst: 219, snd: ["boom", 123, 456.0]) let bas: Pear<Int, [Any?]> = Pear(fst: 219, snd: ["boom", 123, 456.0])
let zim = 20721 let zim = 20721
} }

View File

@@ -9,12 +9,12 @@ StringTests.test("sizeof") {
} }
func checkUnicodeScalarViewIteration( func checkUnicodeScalarViewIteration(
expectedScalars: UInt32[], str: String) -> AssertionResult { expectedScalars: [UInt32], str: String) -> AssertionResult {
if true { if true {
var us = str.unicodeScalars var us = str.unicodeScalars
var i = us.startIndex var i = us.startIndex
var end = us.endIndex var end = us.endIndex
var decoded: UInt32[] = [] var decoded: [UInt32] = []
while i != end { while i != end {
decoded += us[i].value decoded += us[i].value
i = i.successor() i = i.successor()
@@ -30,7 +30,7 @@ func checkUnicodeScalarViewIteration(
var us = str.unicodeScalars var us = str.unicodeScalars
var start = us.startIndex var start = us.startIndex
var i = us.endIndex var i = us.endIndex
var decoded: UInt32[] = [] var decoded: [UInt32] = []
while i != start { while i != start {
i = i.predecessor() i = i.predecessor()
decoded += us[i].value decoded += us[i].value
@@ -123,7 +123,7 @@ func testStringToInt() {
// then print if the new String is or is not still an Int. // then print if the new String is or is not still an Int.
func testConvertabilityOfStringWithModification( func testConvertabilityOfStringWithModification(
initialValue: Int, initialValue: Int,
modification: (inout chars: UTF8.CodeUnit[]) -> () ) modification: (inout chars: [UTF8.CodeUnit]) -> () )
{ {
var chars = Array(String(initialValue).utf8) var chars = Array(String(initialValue).utf8)
modification(chars: &chars) modification(chars: &chars)
@@ -135,7 +135,7 @@ func testStringToInt() {
var minChars = String(Int.min).utf8 var minChars = String(Int.min).utf8
testConvertabilityOfStringWithModification(Int.min) { testConvertabilityOfStringWithModification(Int.min) {
(inout chars: UTF8.CodeUnit[]) in () (inout chars: [UTF8.CodeUnit]) in ()
} }
// CHECK-NEXT: {{-9223372036854775808|-2147483648}} is an Int // CHECK-NEXT: {{-9223372036854775808|-2147483648}} is an Int
@@ -161,7 +161,7 @@ func testStringToInt() {
testConvertabilityOfStringWithModification(Int.max) { testConvertabilityOfStringWithModification(Int.max) {
(inout chars: UTF8.CodeUnit[]) in () (inout chars: [UTF8.CodeUnit]) in ()
} }
// CHECK-NEXT: {{9223372036854775807|2147483647}} is an Int // CHECK-NEXT: {{9223372036854775807|2147483647}} is an Int

View File

@@ -40,7 +40,7 @@ extension UTF32 : TestableUnicodeCodec {
var _unicodeScalarRanges = Array<Range<UInt32>>() var _unicodeScalarRanges = Array<Range<UInt32>>()
// The valid ranges of Unicode scalar values // The valid ranges of Unicode scalar values
var unicodeScalarRanges : Range<UInt32>[] { var unicodeScalarRanges : [Range<UInt32>] {
if _unicodeScalarRanges.count == 0 { if _unicodeScalarRanges.count == 0 {
for r in [UInt32(0)..<0xD800, 0xE000..<0xFDD0, 0xFDF0..<0xFFFE] { for r in [UInt32(0)..<0xD800, 0xE000..<0xFDD0, 0xFDF0..<0xFFFE] {
_unicodeScalarRanges.append(r) _unicodeScalarRanges.append(r)
@@ -75,7 +75,7 @@ func nthUnicodeScalar(n: UInt32) -> UnicodeScalar {
func nsEncode<CodeUnit>( func nsEncode<CodeUnit>(
var c: UInt32, var c: UInt32,
encoding: NSStringEncoding, encoding: NSStringEncoding,
inout buffer: CodeUnit[], inout buffer: [CodeUnit],
inout used: Int inout used: Int
) { ) {
var s = NSString( var s = NSString(
@@ -131,7 +131,7 @@ class ArraySink<T: IntegerLiteralConvertible> : Sink {
return storage[0..<count] return storage[0..<count]
} }
var count = 0 var count = 0
var storage: T[] = Array() var storage: [T] = Array()
} }
@asmname("random") func random() -> UInt32 @asmname("random") func random() -> UInt32
@@ -161,7 +161,7 @@ else {
class CodecTest<Codec: TestableUnicodeCodec> { class CodecTest<Codec: TestableUnicodeCodec> {
var used = 0 var used = 0
typealias CodeUnit = Codec.CodeUnit typealias CodeUnit = Codec.CodeUnit
var nsEncodeBuffer: CodeUnit[] = Array(count: 4, repeatedValue: 0) var nsEncodeBuffer: [CodeUnit] = Array(count: 4, repeatedValue: 0)
var encodeBuffer = ArraySink<CodeUnit>(capacity: 4) var encodeBuffer = ArraySink<CodeUnit>(capacity: 4)
func testOne(scalar: UnicodeScalar) func testOne(scalar: UnicodeScalar)
@@ -219,7 +219,7 @@ CodecTest<UTF16>().run()
// CHECK-NEXT: done. // CHECK-NEXT: done.
CodecTest<UTF32>().run() CodecTest<UTF32>().run()
func println(a: UTF8.CodeUnit[]) { func println(a: [UTF8.CodeUnit]) {
print("[ ") print("[ ")
var prefix = "" var prefix = ""
for x in a { for x in a {
@@ -229,7 +229,7 @@ func println(a: UTF8.CodeUnit[]) {
println(" ]") println(" ]")
} }
func println(a: UTF16.CodeUnit[]) { func println(a: [UTF16.CodeUnit]) {
print("[ ") print("[ ")
var prefix = "" var prefix = ""
for x in a { for x in a {
@@ -254,8 +254,8 @@ func additionalUtf16Tests() {
// CHECK-NEXT: true // CHECK-NEXT: true
println(UTF16.trailSurrogate("𝄞") == 0xDD1E) println(UTF16.trailSurrogate("𝄞") == 0xDD1E)
var u8: UTF8.CodeUnit[] = [ 0, 1, 2, 3, 4, 5 ] var u8: [UTF8.CodeUnit] = [ 0, 1, 2, 3, 4, 5 ]
var u16: UTF16.CodeUnit[] = [ 6, 7, 8, 9, 10, 11 ] var u16: [UTF16.CodeUnit] = [ 6, 7, 8, 9, 10, 11 ]
u16.withUnsafePointerToElements { u16.withUnsafePointerToElements {
(p16)->() in (p16)->() in
@@ -301,11 +301,11 @@ additionalUtf16Tests()
import StdlibUnittest import StdlibUnittest
class EOFCountingGenerator<T> : Generator { class EOFCountingGenerator<T> : Generator {
var array: T[] var array: [T]
var index: Int = 0 var index: Int = 0
var numTimesReturnedEOF: Int = 0 var numTimesReturnedEOF: Int = 0
init(_ array: T[]) { init(_ array: [T]) {
self.array = array self.array = array
} }
@@ -319,11 +319,11 @@ class EOFCountingGenerator<T> : Generator {
} }
func checkDecodeUTF<Codec : UnicodeCodec>( func checkDecodeUTF<Codec : UnicodeCodec>(
codec: Codec.Type, expectedHead: UInt32[], codec: Codec.Type, expectedHead: [UInt32],
expectedRepairedTail: UInt32[], utfStr: Codec.CodeUnit[] expectedRepairedTail: [UInt32], utfStr: [Codec.CodeUnit]
) -> AssertionResult { ) -> AssertionResult {
if true { if true {
var decoded: UInt32[] = [] var decoded: [UInt32] = []
var g = EOFCountingGenerator(utfStr) var g = EOFCountingGenerator(utfStr)
transcode(codec, UTF32.self, g, transcode(codec, UTF32.self, g,
SinkOf { SinkOf {
@@ -343,7 +343,7 @@ func checkDecodeUTF<Codec : UnicodeCodec>(
var expected = expectedHead var expected = expectedHead
expected += expectedRepairedTail expected += expectedRepairedTail
var decoded: UInt32[] = [] var decoded: [UInt32] = []
var g = EOFCountingGenerator(utfStr) var g = EOFCountingGenerator(utfStr)
transcode(codec, UTF32.self, g, transcode(codec, UTF32.self, g,
SinkOf { SinkOf {
@@ -363,30 +363,30 @@ func checkDecodeUTF<Codec : UnicodeCodec>(
} }
func checkDecodeUTF8( func checkDecodeUTF8(
expectedHead: UInt32[], expectedHead: [UInt32],
expectedRepairedTail: UInt32[], utf8Str: UInt8[] expectedRepairedTail: [UInt32], utf8Str: [UInt8]
) -> AssertionResult { ) -> AssertionResult {
return checkDecodeUTF(UTF8.self, expectedHead, expectedRepairedTail, utf8Str) return checkDecodeUTF(UTF8.self, expectedHead, expectedRepairedTail, utf8Str)
} }
func checkDecodeUTF16( func checkDecodeUTF16(
expectedHead: UInt32[], expectedHead: [UInt32],
expectedRepairedTail: UInt32[], utf16Str: UInt16[] expectedRepairedTail: [UInt32], utf16Str: [UInt16]
) -> AssertionResult { ) -> AssertionResult {
return checkDecodeUTF(UTF16.self, expectedHead, expectedRepairedTail, return checkDecodeUTF(UTF16.self, expectedHead, expectedRepairedTail,
utf16Str) utf16Str)
} }
func checkDecodeUTF32( func checkDecodeUTF32(
expectedHead: UInt32[], expectedHead: [UInt32],
expectedRepairedTail: UInt32[], utf32Str: UInt32[] expectedRepairedTail: [UInt32], utf32Str: [UInt32]
) -> AssertionResult { ) -> AssertionResult {
return checkDecodeUTF(UTF32.self, expectedHead, expectedRepairedTail, return checkDecodeUTF(UTF32.self, expectedHead, expectedRepairedTail,
utf32Str) utf32Str)
} }
func checkEncodeUTF8(expected: UInt8[], scalars: UInt32[]) -> AssertionResult { func checkEncodeUTF8(expected: [UInt8], scalars: [UInt32]) -> AssertionResult {
var encoded: UInt8[] = [] var encoded: [UInt8] = []
var g = EOFCountingGenerator(scalars) var g = EOFCountingGenerator(scalars)
let hadError = transcode(UTF32.self, UTF8.self, g, let hadError = transcode(UTF32.self, UTF8.self, g,
SinkOf { SinkOf {
@@ -406,11 +406,11 @@ func checkEncodeUTF8(expected: UInt8[], scalars: UInt32[]) -> AssertionResult {
} }
struct UTF8Test { struct UTF8Test {
let scalars: UInt32[] let scalars: [UInt32]
let encoded: UInt8[] let encoded: [UInt8]
let loc: SourceLoc let loc: SourceLoc
init(_ scalars: UInt32[], _ encoded: UInt8[], init(_ scalars: [UInt32], _ encoded: [UInt8],
file: String = __FILE__, line: UWord = __LINE__) { file: String = __FILE__, line: UWord = __LINE__) {
self.scalars = scalars self.scalars = scalars
self.encoded = encoded self.encoded = encoded
@@ -611,13 +611,13 @@ let UTF8TestsSmokeTest = [
] ]
struct UTF16Test { struct UTF16Test {
let scalarsHead: UInt32[] let scalarsHead: [UInt32]
let scalarsRepairedTail: UInt32[] let scalarsRepairedTail: [UInt32]
let encoded: UInt16[] let encoded: [UInt16]
let loc: SourceLoc let loc: SourceLoc
init(_ scalarsHead: UInt32[], _ scalarsRepairedTail: UInt32[], init(_ scalarsHead: [UInt32], _ scalarsRepairedTail: [UInt32],
_ encoded: UInt16[], _ encoded: [UInt16],
file: String = __FILE__, line: UWord = __LINE__) { file: String = __FILE__, line: UWord = __LINE__) {
self.scalarsHead = scalarsHead self.scalarsHead = scalarsHead
self.scalarsRepairedTail = scalarsRepairedTail self.scalarsRepairedTail = scalarsRepairedTail
@@ -2254,8 +2254,8 @@ import Foundation
// The most simple subclass of NSString that CoreFoundation does not know // The most simple subclass of NSString that CoreFoundation does not know
// about. // about.
class NonContiguousNSString : NSString { class NonContiguousNSString : NSString {
convenience init(_ scalars: UInt8[]) { convenience init(_ scalars: [UInt8]) {
var encoded: UInt16[] = [] var encoded: [UInt16] = []
var g = scalars.generate() var g = scalars.generate()
let hadError = transcode(UTF8.self, UTF16.self, g, let hadError = transcode(UTF8.self, UTF16.self, g,
SinkOf { SinkOf {
@@ -2266,13 +2266,13 @@ class NonContiguousNSString : NSString {
self.init(encoded) self.init(encoded)
} }
init(_ value: UInt16[]) { init(_ value: [UInt16]) {
_value = value _value = value
super.init() super.init()
} }
convenience init(_ scalars: UInt32[]) { convenience init(_ scalars: [UInt32]) {
var encoded: UInt16[] = [] var encoded: [UInt16] = []
var g = scalars.generate() var g = scalars.generate()
let hadError = transcode(UTF32.self, UTF16.self, g, let hadError = transcode(UTF32.self, UTF16.self, g,
SinkOf { SinkOf {
@@ -2297,19 +2297,19 @@ class NonContiguousNSString : NSString {
return _value[index] return _value[index]
} }
var _value: UInt16[] var _value: [UInt16]
} }
func checkUTF8View(expected: UInt8[], stringUnderTest: String) { func checkUTF8View(expected: [UInt8], stringUnderTest: String) {
let utf8Bytes: UInt8[] = Array(stringUnderTest.utf8) let utf8Bytes: [UInt8] = Array(stringUnderTest.utf8)
expectEqual(expected, utf8Bytes) expectEqual(expected, utf8Bytes)
} }
func checkUTF16View(expected: UInt16[], stringUnderTest: String, func checkUTF16View(expected: [UInt16], stringUnderTest: String,
extraLoc: SourceLoc) { extraLoc: SourceLoc) {
if true { if true {
// Test .generate() method. // Test .generate() method.
var utf16Words: UInt16[] = [] var utf16Words: [UInt16] = []
var g = stringUnderTest.utf16.generate() var g = stringUnderTest.utf16.generate()
while let u = g.next() { while let u = g.next() {
utf16Words += u utf16Words += u
@@ -2319,7 +2319,7 @@ func checkUTF16View(expected: UInt16[], stringUnderTest: String,
if true { if true {
// Test subscript(Int). // Test subscript(Int).
var utf16Words: UInt16[] = [] var utf16Words: [UInt16] = []
var view = stringUnderTest.utf16 var view = stringUnderTest.utf16
for var i = view.startIndex; i != view.endIndex; ++i { for var i = view.startIndex; i != view.endIndex; ++i {
utf16Words += view[i] utf16Words += view[i]
@@ -2331,7 +2331,7 @@ func checkUTF16View(expected: UInt16[], stringUnderTest: String,
// Test subscript(Range<Int>). // Test subscript(Range<Int>).
for start in 0...expected.count { for start in 0...expected.count {
for end in start...expected.count { for end in start...expected.count {
var utf16Words: UInt16[] = [] var utf16Words: [UInt16] = []
var view = stringUnderTest.utf16[start..<end] var view = stringUnderTest.utf16[start..<end]
for var i = view.startIndex; i != view.endIndex; ++i { for var i = view.startIndex; i != view.endIndex; ++i {
utf16Words += view[i] utf16Words += view[i]
@@ -2376,8 +2376,8 @@ StringCookedViews.test("UTF8ForContiguousUTF16") {
// CoreFoundation off the ASCII fast path. // CoreFoundation off the ASCII fast path.
// //
// U+0283 LATIN SMALL LETTER ESH // U+0283 LATIN SMALL LETTER ESH
var backingStorage: UInt16[] = [ 0x0283 ] var backingStorage: [UInt16] = [ 0x0283 ]
let expected: UInt8[] = [ 0xca, 0x83 ] + test.encoded let expected: [UInt8] = [ 0xca, 0x83 ] + test.encoded
var g = test.scalars.generate() var g = test.scalars.generate()
transcode(UTF32.self, UTF16.self, g, transcode(UTF32.self, UTF16.self, g,
@@ -2400,7 +2400,7 @@ StringCookedViews.test("UTF8ForContiguousUTF16") {
forStringsWithUnpairedSurrogates { forStringsWithUnpairedSurrogates {
(test: UTF16Test, subject: String) -> () in (test: UTF16Test, subject: String) -> () in
var expected: UInt8[] = [] var expected: [UInt8] = []
var expectedScalars = test.scalarsHead + test.scalarsRepairedTail var expectedScalars = test.scalarsHead + test.scalarsRepairedTail
var g = expectedScalars.generate() var g = expectedScalars.generate()
transcode(UTF32.self, UTF8.self, g, transcode(UTF32.self, UTF8.self, g,
@@ -2444,7 +2444,7 @@ StringCookedViews.test("UTF8ForNonContiguousUTF16") {
for (name, batch) in UTF16Tests { for (name, batch) in UTF16Tests {
println("Batch: \(name)") println("Batch: \(name)")
for test in batch { for test in batch {
var expected: UInt8[] = [] var expected: [UInt8] = []
var expectedScalars = test.scalarsHead + test.scalarsRepairedTail var expectedScalars = test.scalarsHead + test.scalarsRepairedTail
var g = expectedScalars.generate() var g = expectedScalars.generate()
transcode(UTF32.self, UTF8.self, g, transcode(UTF32.self, UTF8.self, g,
@@ -2464,7 +2464,7 @@ StringCookedViews.test("UTF8ForNonContiguousUTF16Extra") {
// These tests don't add much additional value as long as tests above // These tests don't add much additional value as long as tests above
// actually test the code path we care about. // actually test the code path we care about.
if true { if true {
var bytes: UInt8[] = [ 97, 98, 99 ] var bytes: [UInt8] = [ 97, 98, 99 ]
var cfstring: CFString = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, var cfstring: CFString = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
bytes, bytes.count, CFStringBuiltInEncodings.MacRoman.toRaw(), 0, kCFAllocatorNull) bytes, bytes.count, CFStringBuiltInEncodings.MacRoman.toRaw(), 0, kCFAllocatorNull)
@@ -2483,7 +2483,7 @@ StringCookedViews.test("UTF8ForNonContiguousUTF16Extra") {
} }
if true { if true {
var bytes: UInt8[] = [ 97, 98, 99 ] var bytes: [UInt8] = [ 97, 98, 99 ]
var cfstring: CFString = CFStringCreateWithBytes(kCFAllocatorDefault, var cfstring: CFString = CFStringCreateWithBytes(kCFAllocatorDefault,
bytes, bytes.count, CFStringBuiltInEncodings.MacRoman.toRaw(), 0) bytes, bytes.count, CFStringBuiltInEncodings.MacRoman.toRaw(), 0)
@@ -2506,7 +2506,7 @@ StringCookedViews.test("UTF8ForNonContiguousUTF16Extra") {
StringCookedViews.test("UTF16") { StringCookedViews.test("UTF16") {
for test in UTF8TestsSmokeTest { for test in UTF8TestsSmokeTest {
var expected: UInt16[] = [] var expected: [UInt16] = []
var expectedScalars = test.scalars var expectedScalars = test.scalars
var g = expectedScalars.generate() var g = expectedScalars.generate()
transcode(UTF32.self, UTF16.self, g, transcode(UTF32.self, UTF16.self, g,
@@ -2521,7 +2521,7 @@ StringCookedViews.test("UTF16") {
forStringsWithUnpairedSurrogates { forStringsWithUnpairedSurrogates {
(test: UTF16Test, subject: String) -> () in (test: UTF16Test, subject: String) -> () in
var expected: UInt16[] = [] var expected: [UInt16] = []
var expectedScalars = test.scalarsHead + test.scalarsRepairedTail var expectedScalars = test.scalarsHead + test.scalarsRepairedTail
var g = expectedScalars.generate() var g = expectedScalars.generate()
transcode(UTF32.self, UTF16.self, g, transcode(UTF32.self, UTF16.self, g,
@@ -2538,7 +2538,7 @@ StringCookedViews.test("UnicodeScalars") {
forStringsWithUnpairedSurrogates { forStringsWithUnpairedSurrogates {
(test: UTF16Test, subject: String) -> () in (test: UTF16Test, subject: String) -> () in
let expected = test.scalarsHead + test.scalarsRepairedTail let expected = test.scalarsHead + test.scalarsRepairedTail
let actual: UInt32[] = Array(map(subject.unicodeScalars) { $0.value }) let actual: [UInt32] = Array(map(subject.unicodeScalars) { $0.value })
expectEqual(expected, actual) expectEqual(expected, actual)
} }
} }
@@ -2553,7 +2553,7 @@ StringTests.test("StreamableConformance") {
(test: UTF16Test, subject: String) -> () in (test: UTF16Test, subject: String) -> () in
let expected = test.scalarsHead + test.scalarsRepairedTail let expected = test.scalarsHead + test.scalarsRepairedTail
let printedSubject = toString(subject) let printedSubject = toString(subject)
let actual: UInt32[] = let actual: [UInt32] =
Array(map(printedSubject.unicodeScalars) { $0.value }) Array(map(printedSubject.unicodeScalars) { $0.value })
expectEqual(expected, actual) expectEqual(expected, actual)
} }

View File

@@ -3,8 +3,8 @@
// Generate all possible permutes. // Generate all possible permutes.
func _permuteInternal( func _permuteInternal(
elem: Int, size : Int, elem: Int, size : Int,
inout perm : Int[], inout visited : Bool[], inout perm : [Int], inout visited : [Bool],
verify : (Int[]) -> () verify : ([Int]) -> ()
) { ) {
if (elem == size) { if (elem == size) {
verify(perm) verify(perm)
@@ -23,16 +23,16 @@ func _permuteInternal(
} }
// Convenience wrapper for the permute method. // Convenience wrapper for the permute method.
func permute(size : Int, verify : (Int[]) -> ()) { func permute(size : Int, verify : ([Int]) -> ()) {
var perm = Int[](count: size, repeatedValue: 0) var perm = [Int](count: size, repeatedValue: 0)
var visited = Bool[](count: size, repeatedValue: false) var visited = [Bool](count: size, repeatedValue: false)
_permuteInternal(0, size, &perm, &visited, verify) _permuteInternal(0, size, &perm, &visited, verify)
} }
// A simple random number generator. // A simple random number generator.
func randomize(size : Int, verify : (Int[]) -> ()) { func randomize(size : Int, verify : ([Int]) -> ()) {
var arr : Int[] = [] var arr : [Int] = []
var N = 1 var N = 1
var M = 1 var M = 1
for i in 0..<size { for i in 0..<size {
@@ -47,7 +47,7 @@ func randomize(size : Int, verify : (Int[]) -> ()) {
} }
// Verify the permute method itself: // Verify the permute method itself:
let printer : (Int[]) -> () = { let printer : ([Int]) -> () = {
println($0) println($0)
} }
//CHECK: [0, 1, 2] //CHECK: [0, 1, 2]
@@ -59,7 +59,7 @@ let printer : (Int[]) -> () = {
permute(3, printer) permute(3, printer)
// Now, let's verify the sort. // Now, let's verify the sort.
let sort_verifier : (Int[]) -> () = { let sort_verifier : ([Int]) -> () = {
var y = sorted($0) var y = sorted($0)
for i in 0..<y.count - 1 { for i in 0..<y.count - 1 {
if (y[i] > y[i+1]) { if (y[i] > y[i+1]) {
@@ -77,7 +77,7 @@ permute(7, sort_verifier)
println("Test1 - Done") println("Test1 - Done")
// Now, let's verify the sort. // Now, let's verify the sort.
let partition_verifier : (Int[]) -> () = { let partition_verifier : ([Int]) -> () = {
var y = $0 var y = $0
// Partition() returns the index to the pivot value. // Partition() returns the index to the pivot value.
let idx = partition(&y, 0..<y.count) let idx = partition(&y, 0..<y.count)