forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathNSError.swift
31 lines (22 loc) · 1.16 KB
/
NSError.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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()