mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
The Clang attribute allows one to state that a particular enumeration type describes an error, and associates it with a particular domain constant. However, due to lack of API notes support, this attribute wasn't actually getting used. Instead, we had a number of explicit extensions to enum types to make them conform to the _BridgedNSError protocol explicitly. Now that we have API notes, use them to make these enums into error enums with the appropriate domain, so that the Clang importer will synthesize the _BridgedNSError conformances. Then, remove all of the explicit conformances---and with them, the overlays for 12 frameworks. There is a small fix to more eagerly consider these conformances as "used" if an expression is formed with the error enum as a value type. This better ensures that the conformances will be available at runtime when needed. This cleanup is needed to implement SE-0112 (NSError bridging), although it is useful by itself.
15 lines
562 B
Swift
15 lines
562 B
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See http://swift.org/LICENSE.txt for license information
|
|
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
@_exported import Intents
|
|
import Foundation
|