let x: Any? = nil
x as? CFDictionary
// error: Conditional downcast to CoreFoundation type 'CFDictionary' will always succeed
x as CFDictionary
// error: 'Any?' is not convertible to 'CFDictionary'; did you mean to use 'as!' to force downcast?
x as CFDictionary?
// error: 'Any?' is not convertible to 'CFDictionary?'; did you mean to use 'as!' to force downcast?
x as? CFDictionary?
// error: Conditional downcast to CoreFoundation type 'CFDictionary' will always succeed
The error message is really confusing...