mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
50 lines
1015 B
Swift
50 lines
1015 B
Swift
// RUN: %target-run-simple-swift | FileCheck %s
|
|
// REQUIRES: executable_test
|
|
// <rdar://problem/17014037>
|
|
// REQUIRES: OS=macosx
|
|
|
|
import QuartzCore
|
|
|
|
class Canary: NSObject {
|
|
deinit {
|
|
print("died")
|
|
}
|
|
}
|
|
|
|
var CanaryAssocObjectHandle: UInt8 = 0
|
|
|
|
// Attach an associated object with a loud deinit so we can see that the
|
|
// error died.
|
|
func hangCanary(o: AnyObject) {
|
|
objc_setAssociatedObject(o, &CanaryAssocObjectHandle, Canary(),
|
|
.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
|
|
}
|
|
|
|
class FooLayer: CALayer {
|
|
var black: CGColor
|
|
var white: CGColor = CGColorGetConstantColor(kCGColorWhite)!
|
|
|
|
override init() {
|
|
black = CGColorGetConstantColor(kCGColorBlack)!
|
|
super.init()
|
|
hangCanary(self)
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
black = coder.decodeObject(forKey: "black") as! CGColor
|
|
super.init(coder: coder)
|
|
}
|
|
|
|
override var description: String {
|
|
return "FooLayer"
|
|
}
|
|
}
|
|
|
|
if true {
|
|
let layer = FooLayer()
|
|
print("\(layer)")
|
|
}
|
|
|
|
// CHECK: FooLayer
|
|
// CHECK: died
|