| // RUN: %target-run-simple-swift |
| // REQUIRES: executable_test |
| |
| // REQUIRES: objc_interop |
| |
| // RUN: %target-build-swift %s 2> %t.warnings.txt |
| // RUN: %FileCheck -check-prefix=CHECK-WARNINGS %s < %t.warnings.txt |
| |
| import StdlibUnittest |
| |
| import Foundation |
| |
| var tests = TestSuite("NSError") |
| |
| tests.test("user info") { |
| let error = NSError(domain: "MyDomain", code: 1, userInfo: [ |
| // CHECK-WARNINGS: warning: 'localizedDescriptionKey' is deprecated: renamed to 'NSLocalizedDescriptionKey' |
| // CHECK-WARNINGS: note: use 'NSLocalizedDescriptionKey' instead |
| AnyHashable(ErrorUserInfoKey.localizedDescriptionKey.rawValue): "description", |
| AnyHashable(NSLocalizedFailureReasonErrorKey): "reason" |
| ]) |
| expectEqual("description", error.userInfo[NSLocalizedDescriptionKey]! as! String) |
| |
| expectEqual("reason", error.userInfo[ErrorUserInfoKey.localizedFailureReasonErrorKey.rawValue]! as! String) |
| |
| // TODO: Without the 'as NSObject' conversion, this produces nil. |
| // We may need to forward _CustomAnyHashable through swift_newtypes. |
| expectEqual("reason", error.userInfo[ErrorUserInfoKey.localizedFailureReasonErrorKey as NSObject]! as! String) |
| } |
| |
| runAllTests() |