Skip to content

Commit 8654428

Browse files
authored
Merge pull request swiftlang#7650 from kballard/urlerror_swift_cases
[swift-3.1-branch][SDK] Convert URLError.Code to a struct and add missing cases
2 parents 51795d3 + a462400 commit 8654428

File tree

1 file changed

+187
-64
lines changed

1 file changed

+187
-64
lines changed

stdlib/public/SDK/Foundation/NSError.swift

Lines changed: 187 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1814,75 +1814,178 @@ public struct URLError : _BridgedStoredNSError {
18141814

18151815
public static var _nsErrorDomain: String { return NSURLErrorDomain }
18161816

1817-
@objc public enum Code : Int, _ErrorCodeProtocol {
1817+
/// The error code itself.
1818+
public struct Code : RawRepresentable, _ErrorCodeProtocol {
18181819
public typealias _ErrorType = URLError
18191820

1820-
case unknown = -1
1821-
case cancelled = -999
1822-
case badURL = -1000
1823-
case timedOut = -1001
1824-
case unsupportedURL = -1002
1825-
case cannotFindHost = -1003
1826-
case cannotConnectToHost = -1004
1827-
case networkConnectionLost = -1005
1828-
case dnsLookupFailed = -1006
1829-
case httpTooManyRedirects = -1007
1830-
case resourceUnavailable = -1008
1831-
case notConnectedToInternet = -1009
1832-
case redirectToNonExistentLocation = -1010
1833-
case badServerResponse = -1011
1834-
case userCancelledAuthentication = -1012
1835-
case userAuthenticationRequired = -1013
1836-
case zeroByteResource = -1014
1837-
case cannotDecodeRawData = -1015
1838-
case cannotDecodeContentData = -1016
1839-
case cannotParseResponse = -1017
1840-
case fileDoesNotExist = -1100
1841-
case fileIsDirectory = -1101
1842-
case noPermissionsToReadFile = -1102
1843-
case secureConnectionFailed = -1200
1844-
case serverCertificateHasBadDate = -1201
1845-
case serverCertificateUntrusted = -1202
1846-
case serverCertificateHasUnknownRoot = -1203
1847-
case serverCertificateNotYetValid = -1204
1848-
case clientCertificateRejected = -1205
1849-
case clientCertificateRequired = -1206
1850-
case cannotLoadFromNetwork = -2000
1851-
case cannotCreateFile = -3000
1852-
case cannotOpenFile = -3001
1853-
case cannotCloseFile = -3002
1854-
case cannotWriteToFile = -3003
1855-
case cannotRemoveFile = -3004
1856-
case cannotMoveFile = -3005
1857-
case downloadDecodingFailedMidStream = -3006
1858-
case downloadDecodingFailedToComplete = -3007
1859-
1860-
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1861-
case internationalRoamingOff = -1018
1862-
1863-
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1864-
case callIsActive = -1019
1865-
1866-
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1867-
case dataNotAllowed = -1020
1868-
1869-
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1870-
case requestBodyStreamExhausted = -1021
1871-
1872-
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1873-
static var backgroundSessionRequiresSharedContainer: Code {
1874-
return Code(rawValue: -995)!
1875-
}
1821+
public let rawValue: Int
18761822

1877-
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1878-
static var backgroundSessionInUseByAnotherProcess: Code {
1879-
return Code(rawValue: -996)!
1823+
public init(rawValue: Int) {
1824+
self.rawValue = rawValue
18801825
}
1826+
}
1827+
}
18811828

1882-
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1883-
static var backgroundSessionWasDisconnected: Code {
1884-
return Code(rawValue: -997)!
1885-
}
1829+
public extension URLError.Code {
1830+
public static var unknown: URLError.Code {
1831+
return URLError.Code(rawValue: -1)
1832+
}
1833+
public static var cancelled: URLError.Code {
1834+
return URLError.Code(rawValue: -999)
1835+
}
1836+
public static var badURL: URLError.Code {
1837+
return URLError.Code(rawValue: -1000)
1838+
}
1839+
public static var timedOut: URLError.Code {
1840+
return URLError.Code(rawValue: -1001)
1841+
}
1842+
public static var unsupportedURL: URLError.Code {
1843+
return URLError.Code(rawValue: -1002)
1844+
}
1845+
public static var cannotFindHost: URLError.Code {
1846+
return URLError.Code(rawValue: -1003)
1847+
}
1848+
public static var cannotConnectToHost: URLError.Code {
1849+
return URLError.Code(rawValue: -1004)
1850+
}
1851+
public static var networkConnectionLost: URLError.Code {
1852+
return URLError.Code(rawValue: -1005)
1853+
}
1854+
public static var dnsLookupFailed: URLError.Code {
1855+
return URLError.Code(rawValue: -1006)
1856+
}
1857+
public static var httpTooManyRedirects: URLError.Code {
1858+
return URLError.Code(rawValue: -1007)
1859+
}
1860+
public static var resourceUnavailable: URLError.Code {
1861+
return URLError.Code(rawValue: -1008)
1862+
}
1863+
public static var notConnectedToInternet: URLError.Code {
1864+
return URLError.Code(rawValue: -1009)
1865+
}
1866+
public static var redirectToNonExistentLocation: URLError.Code {
1867+
return URLError.Code(rawValue: -1010)
1868+
}
1869+
public static var badServerResponse: URLError.Code {
1870+
return URLError.Code(rawValue: -1011)
1871+
}
1872+
public static var userCancelledAuthentication: URLError.Code {
1873+
return URLError.Code(rawValue: -1012)
1874+
}
1875+
public static var userAuthenticationRequired: URLError.Code {
1876+
return URLError.Code(rawValue: -1013)
1877+
}
1878+
public static var zeroByteResource: URLError.Code {
1879+
return URLError.Code(rawValue: -1014)
1880+
}
1881+
public static var cannotDecodeRawData: URLError.Code {
1882+
return URLError.Code(rawValue: -1015)
1883+
}
1884+
public static var cannotDecodeContentData: URLError.Code {
1885+
return URLError.Code(rawValue: -1016)
1886+
}
1887+
public static var cannotParseResponse: URLError.Code {
1888+
return URLError.Code(rawValue: -1017)
1889+
}
1890+
@available(OSX, introduced: 10.11) @available(iOS, introduced: 9.0)
1891+
public static var appTransportSecurityRequiresSecureConnection: URLError.Code {
1892+
return URLError.Code(rawValue: -1022)
1893+
}
1894+
public static var fileDoesNotExist: URLError.Code {
1895+
return URLError.Code(rawValue: -1100)
1896+
}
1897+
public static var fileIsDirectory: URLError.Code {
1898+
return URLError.Code(rawValue: -1101)
1899+
}
1900+
public static var noPermissionsToReadFile: URLError.Code {
1901+
return URLError.Code(rawValue: -1102)
1902+
}
1903+
@available(OSX, introduced: 10.5) @available(iOS, introduced: 2.0)
1904+
public static var dataLengthExceedsMaximum: URLError.Code {
1905+
return URLError.Code(rawValue: -1103)
1906+
}
1907+
public static var secureConnectionFailed: URLError.Code {
1908+
return URLError.Code(rawValue: -1200)
1909+
}
1910+
public static var serverCertificateHasBadDate: URLError.Code {
1911+
return URLError.Code(rawValue: -1201)
1912+
}
1913+
public static var serverCertificateUntrusted: URLError.Code {
1914+
return URLError.Code(rawValue: -1202)
1915+
}
1916+
public static var serverCertificateHasUnknownRoot: URLError.Code {
1917+
return URLError.Code(rawValue: -1203)
1918+
}
1919+
public static var serverCertificateNotYetValid: URLError.Code {
1920+
return URLError.Code(rawValue: -1204)
1921+
}
1922+
public static var clientCertificateRejected: URLError.Code {
1923+
return URLError.Code(rawValue: -1205)
1924+
}
1925+
public static var clientCertificateRequired: URLError.Code {
1926+
return URLError.Code(rawValue: -1206)
1927+
}
1928+
public static var cannotLoadFromNetwork: URLError.Code {
1929+
return URLError.Code(rawValue: -2000)
1930+
}
1931+
public static var cannotCreateFile: URLError.Code {
1932+
return URLError.Code(rawValue: -3000)
1933+
}
1934+
public static var cannotOpenFile: URLError.Code {
1935+
return URLError.Code(rawValue: -3001)
1936+
}
1937+
public static var cannotCloseFile: URLError.Code {
1938+
return URLError.Code(rawValue: -3002)
1939+
}
1940+
public static var cannotWriteToFile: URLError.Code {
1941+
return URLError.Code(rawValue: -3003)
1942+
}
1943+
public static var cannotRemoveFile: URLError.Code {
1944+
return URLError.Code(rawValue: -3004)
1945+
}
1946+
public static var cannotMoveFile: URLError.Code {
1947+
return URLError.Code(rawValue: -3005)
1948+
}
1949+
public static var downloadDecodingFailedMidStream: URLError.Code {
1950+
return URLError.Code(rawValue: -3006)
1951+
}
1952+
public static var downloadDecodingFailedToComplete: URLError.Code {
1953+
return URLError.Code(rawValue: -3007)
1954+
}
1955+
1956+
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1957+
public static var internationalRoamingOff: URLError.Code {
1958+
return URLError.Code(rawValue: -1018)
1959+
}
1960+
1961+
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1962+
public static var callIsActive: URLError.Code {
1963+
return URLError.Code(rawValue: -1019)
1964+
}
1965+
1966+
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1967+
public static var dataNotAllowed: URLError.Code {
1968+
return URLError.Code(rawValue: -1020)
1969+
}
1970+
1971+
@available(OSX, introduced: 10.7) @available(iOS, introduced: 3.0)
1972+
public static var requestBodyStreamExhausted: URLError.Code {
1973+
return URLError.Code(rawValue: -1021)
1974+
}
1975+
1976+
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1977+
public static var backgroundSessionRequiresSharedContainer: URLError.Code {
1978+
return URLError.Code(rawValue: -995)
1979+
}
1980+
1981+
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1982+
public static var backgroundSessionInUseByAnotherProcess: URLError.Code {
1983+
return URLError.Code(rawValue: -996)
1984+
}
1985+
1986+
@available(OSX, introduced: 10.10) @available(iOS, introduced: 8.0)
1987+
public static var backgroundSessionWasDisconnected: URLError.Code {
1988+
return URLError.Code(rawValue: -997)
18861989
}
18871990
}
18881991

@@ -1992,6 +2095,11 @@ public extension URLError {
19922095
return .cannotParseResponse
19932096
}
19942097

2098+
@available(OSX, introduced: 10.11) @available(iOS, introduced: 9.0)
2099+
public static var appTransportSecurityRequiresSecureConnection: URLError.Code {
2100+
return .appTransportSecurityRequiresSecureConnection
2101+
}
2102+
19952103
public static var fileDoesNotExist: URLError.Code {
19962104
return .fileDoesNotExist
19972105
}
@@ -2004,6 +2112,11 @@ public extension URLError {
20042112
return .noPermissionsToReadFile
20052113
}
20062114

2115+
@available(OSX, introduced: 10.5) @available(iOS, introduced: 2.0)
2116+
public static var dataLengthExceedsMaximum: URLError.Code {
2117+
return .dataLengthExceedsMaximum
2118+
}
2119+
20072120
public static var secureConnectionFailed: URLError.Code {
20082121
return .secureConnectionFailed
20092122
}
@@ -2205,6 +2318,11 @@ extension URLError {
22052318
fatalError("unavailable accessor can't be called")
22062319
}
22072320

2321+
@available(*, unavailable, renamed: "appTransportSecurityRequiresSecureConnection")
2322+
public static var AppTransportSecurityRequiresSecureConnection: URLError.Code {
2323+
fatalError("unavailable accessor can't be called")
2324+
}
2325+
22082326
@available(*, unavailable, renamed: "fileDoesNotExist")
22092327
public static var FileDoesNotExist: URLError.Code {
22102328
fatalError("unavailable accessor can't be called")
@@ -2220,6 +2338,11 @@ extension URLError {
22202338
fatalError("unavailable accessor can't be called")
22212339
}
22222340

2341+
@available(*, unavailable, renamed: "dataLengthExceedsMaximum")
2342+
public static var DataLengthExceedsMaximum: URLError.Code {
2343+
fatalError("unavailable accessor can't be called")
2344+
}
2345+
22232346
@available(*, unavailable, renamed: "secureConnectionFailed")
22242347
public static var SecureConnectionFailed: URLError.Code {
22252348
fatalError("unavailable accessor can't be called")

0 commit comments

Comments
 (0)