В Xcode8 beta6 следующий код вызовет предупреждение: "is" test всегда прав. Но он не будет печатать пропуск.
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)")
}
//...
}