Files
swift-mirror/test/Interpreter/SDK/objc_fast_enumeration.swift
Jordan Rose bfa7566aec [ClangImporter] Put implicit properties into the list of all class members.
This allows "obj.description!" to work on iOS when 'obj' is an AnyObject,
even though 'description' is an implicit property created by the importer.

Swift SVN r18149
2014-05-16 00:30:55 +00:00

95 lines
1.9 KiB
Swift

// RUN: %target-run-simple-swift | FileCheck %s
import Foundation
var a: NSArray = ["one", 2, [1,2,3]]
var a_m: NSMutableArray = ["two", 12, [11,12,13]]
// CHECK: one
// CHECK: 2
// CHECK: (
// CHECK: 1,
// CHECK: 2,
// CHECK: 3
// CHECK: )
for x: AnyObject in a {
println(x.description!)
}
// CHECK: two
// CHECK: 12
// CHECK: (
// CHECK: 11,
// CHECK: 12,
// CHECK: 13
// CHECK: )
for x: AnyObject in a_m {
println(x.description!)
}
class Canary {
var x: Int
deinit { println("dead \(x)") }
init(_ x: Int) { self.x = x }
func chirp() { println("\(x)") }
}
autoreleasepool {
println("making array")
var b: NSArray = NSArray(objects: [Canary(1), Canary(2), Canary(3)], count: 3)
println("iterating array")
// CHECK: 1
for x: AnyObject in b {
(x as Canary)!.chirp()
break
}
// CHECK: exiting
println("exiting")
}
// CHECK: dead
// CHECK: dead
// CHECK: dead
// CHECK: exited
println("exited")
var d : NSDictionary = [415 : "Giants", 510 : "A's"]
var d_m : NSMutableDictionary = [1415 : "Big Giants", 11510 : "B's"]
// CHECK: 510 => A's
for (key: AnyObject, value: AnyObject) in d {
println("\(key.description!) => \(value.description!)")
}
// CHECK: 11510 => B's
for (key: AnyObject, value: AnyObject) in d_m {
println("\(key.description!) => \(value.description!)")
}
var s = NSSet(object: "the most forward-thinking test yet")
var s_m = NSMutableSet(object: "the next most forward-thinking test yet")
// CHECK: the most forward-thinking test yet
for x: AnyObject in s {
println(x.description!)
}
// CHECK: the next most forward-thinking test yet
for x: AnyObject in s_m {
println(x.description!)
}
// Enumeration over an NSSwiftArray
// CHECK: hello
// CHECK: bridged
// CHECK: array
var a2 = ["hello", "bridged", "array"]
var nsa2 : NSArray = ((a2.asCocoaArray() as AnyObject) as NSArray)!
for x: AnyObject in nsa2 {
println(x.description!)
}