Commits

Doug Gregor committed 4fd78234c47
[SE-0112] Retain the underlying NSError in NSCocoaError. NSCocoaError was capturing only the code of a Cocoa error, making it basically useless. Instead, capture the entire NSError, the code of which is tracked by an nested, RawRepresentable type Code. Provide typed accessors for the common keys in the Cocoa error domain, e.g., NSFilePathErrorKey, NSStringEncodingErrorKey, NSUnderlyingErrorKey, and NSURLErrorKey, to make this type easier to use. This is specifically an implementation of part (4) of the proposed solution to SE-0112, which makes NSCocoaError more usable. It also adds localizedDescription to ErrorProtocol. However, it also introduces the infrastructure needed for importing error enumeration types more smoothly, e.g., ErrorCodeProtocol (underscored for now), the ~= operator for matching error codes, and so on. In essence, NSCocoaError is the pattern that the importer will follow.