Xcode8 beta6 では、次のコードで警告が発生します: 'is' テストは常に true です。しかし、それはパスを印刷しません。
struct TestStruct {
}
//warning: 'is' test is always true
if TestStruct() is AnyObject {
print("pass")
}
そして、次のコードは警告を引き起こします: 'T' から 'AnyObject' への条件付きキャストは常に成功します
public static func register<T>(_ protocolType: T.Type, observer: T) {
//Warning: Conditional cast from 'T' to 'AnyObject' always succeeds
guard let object = observer as? AnyObject else {
fatalError("expecting reference type but found value type: \(observer)")
}
//...
}