mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
get/set operations to test. Add a String(Bool) constructor that produces 'true' or 'false'. Swift SVN r1634
104 lines
1.9 KiB
Swift
104 lines
1.9 KiB
Swift
// RUN: %swift -I %S/.. %s -i | FileCheck %s
|
|
import swift
|
|
|
|
struct BitVector64 {
|
|
bits : Int64
|
|
|
|
subscript (bit : Int) -> Bool {
|
|
get {
|
|
if (bits & (1 << bit)) != 0 {
|
|
return true
|
|
}
|
|
return false;
|
|
}
|
|
|
|
set {
|
|
var mask = 1 << bit
|
|
if value {
|
|
bits = bits | mask
|
|
} else {
|
|
bits = bits & ~mask
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Create an empty bitvector
|
|
var vec = BitVector64(0)
|
|
|
|
// Set even elements to 'true'.
|
|
foreach i in 0..64 {
|
|
if i % 2 == 0 {
|
|
vec[i] = true
|
|
}
|
|
}
|
|
|
|
// Print all elements
|
|
foreach i in 0..64 {
|
|
println(String(vec[i]))
|
|
}
|
|
// CHECK: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|
|
// CHECK-NEXT: true
|
|
// CHECK-NEXT: false
|