Skip to content

Commit 767f9c5

Browse files
committed
1 parent 591789d commit 767f9c5

File tree

1 file changed

+41
-118
lines changed

1 file changed

+41
-118
lines changed

Foundation/NSError.swift

Lines changed: 41 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if canImport(Darwin)
14+
import Darwin
15+
#elseif canImport(Glibc)
16+
import Glibc
17+
#elseif canImport(MSVCRT)
18+
import MSVCRT
19+
#endif
1320

1421
import CoreFoundation
1522

@@ -890,6 +897,7 @@ extension URLError {
890897

891898
/// Describes an error in the POSIX error domain.
892899
public struct POSIXError : _BridgedStoredNSError {
900+
893901
public let _nsError: NSError
894902

895903
public init(_nsError error: NSError) {
@@ -898,117 +906,12 @@ public struct POSIXError : _BridgedStoredNSError {
898906
}
899907

900908
public static var _nsErrorDomain: String { return NSPOSIXErrorDomain }
909+
910+
public typealias Code = POSIXErrorCode
911+
}
901912

902-
public enum Code : Int, _ErrorCodeProtocol {
903-
public typealias _ErrorType = POSIXError
904-
905-
case EPERM
906-
case ENOENT
907-
case ESRCH
908-
case EINTR
909-
case EIO
910-
case ENXIO
911-
case E2BIG
912-
case ENOEXEC
913-
case EBADF
914-
case ECHILD
915-
case EDEADLK
916-
case ENOMEM
917-
case EACCES
918-
case EFAULT
919-
case ENOTBLK
920-
case EBUSY
921-
case EEXIST
922-
case EXDEV
923-
case ENODEV
924-
case ENOTDIR
925-
case EISDIR
926-
case EINVAL
927-
case ENFILE
928-
case EMFILE
929-
case ENOTTY
930-
case ETXTBSY
931-
case EFBIG
932-
case ENOSPC
933-
case ESPIPE
934-
case EROFS
935-
case EMLINK
936-
case EPIPE
937-
case EDOM
938-
case ERANGE
939-
case EAGAIN
940-
case EWOULDBLOCK
941-
case EINPROGRESS
942-
case EALREADY
943-
case ENOTSOCK
944-
case EDESTADDRREQ
945-
case EMSGSIZE
946-
case EPROTOTYPE
947-
case ENOPROTOOPT
948-
case EPROTONOSUPPORT
949-
case ESOCKTNOSUPPORT
950-
case ENOTSUP
951-
case EPFNOSUPPORT
952-
case EAFNOSUPPORT
953-
case EADDRINUSE
954-
case EADDRNOTAVAIL
955-
case ENETDOWN
956-
case ENETUNREACH
957-
case ENETRESET
958-
case ECONNABORTED
959-
case ECONNRESET
960-
case ENOBUFS
961-
case EISCONN
962-
case ENOTCONN
963-
case ESHUTDOWN
964-
case ETOOMANYREFS
965-
case ETIMEDOUT
966-
case ECONNREFUSED
967-
case ELOOP
968-
case ENAMETOOLONG
969-
case EHOSTDOWN
970-
case EHOSTUNREACH
971-
case ENOTEMPTY
972-
case EPROCLIM
973-
case EUSERS
974-
case EDQUOT
975-
case ESTALE
976-
case EREMOTE
977-
case EBADRPC
978-
case ERPCMISMATCH
979-
case EPROGUNAVAIL
980-
case EPROGMISMATCH
981-
case EPROCUNAVAIL
982-
case ENOLCK
983-
case ENOSYS
984-
case EFTYPE
985-
case EAUTH
986-
case ENEEDAUTH
987-
case EPWROFF
988-
case EDEVERR
989-
case EOVERFLOW
990-
case EBADEXEC
991-
case EBADARCH
992-
case ESHLIBVERS
993-
case EBADMACHO
994-
case ECANCELED
995-
case EIDRM
996-
case ENOMSG
997-
case EILSEQ
998-
case ENOATTR
999-
case EBADMSG
1000-
case EMULTIHOP
1001-
case ENODATA
1002-
case ENOLINK
1003-
case ENOSR
1004-
case ENOSTR
1005-
case EPROTO
1006-
case ETIME
1007-
case ENOPOLICY
1008-
case ENOTRECOVERABLE
1009-
case EOWNERDEAD
1010-
case EQFULL
1011-
}
913+
extension POSIXErrorCode: _ErrorCodeProtocol {
914+
public typealias _ErrorType = POSIXError
1012915
}
1013916

1014917
extension POSIXError {
@@ -1153,8 +1056,10 @@ extension POSIXError {
11531056
/// Socket type not supported.
11541057
public static var ESOCKTNOSUPPORT: POSIXError.Code { return .ESOCKTNOSUPPORT }
11551058

1059+
#if canImport(Darwin)
11561060
/// Operation not supported.
11571061
public static var ENOTSUP: POSIXError.Code { return .ENOTSUP }
1062+
#endif
11581063

11591064
/// Protocol family not supported.
11601065
public static var EPFNOSUPPORT: POSIXError.Code { return .EPFNOSUPPORT }
@@ -1223,9 +1128,11 @@ extension POSIXError {
12231128

12241129
/// Quotas
12251130

1131+
#if canImport(Darwin)
12261132
/// Too many processes.
12271133
public static var EPROCLIM: POSIXError.Code { return .EPROCLIM }
1228-
1134+
#endif
1135+
12291136
/// Too many users.
12301137
public static var EUSERS: POSIXError.Code { return .EUSERS }
12311138

@@ -1240,6 +1147,7 @@ extension POSIXError {
12401147
/// Too many levels of remote in path.
12411148
public static var EREMOTE: POSIXError.Code { return .EREMOTE }
12421149

1150+
#if canImport(Darwin)
12431151
/// RPC struct is bad.
12441152
public static var EBADRPC: POSIXError.Code { return .EBADRPC }
12451153

@@ -1254,13 +1162,15 @@ extension POSIXError {
12541162

12551163
/// Bad procedure for program.
12561164
public static var EPROCUNAVAIL: POSIXError.Code { return .EPROCUNAVAIL }
1257-
1165+
#endif
1166+
12581167
/// No locks available.
12591168
public static var ENOLCK: POSIXError.Code { return .ENOLCK }
12601169

12611170
/// Function not implemented.
12621171
public static var ENOSYS: POSIXError.Code { return .ENOSYS }
1263-
1172+
1173+
#if canImport(Darwin)
12641174
/// Inappropriate file type or format.
12651175
public static var EFTYPE: POSIXError.Code { return .EFTYPE }
12661176

@@ -1269,32 +1179,39 @@ extension POSIXError {
12691179

12701180
/// Need authenticator.
12711181
public static var ENEEDAUTH: POSIXError.Code { return .ENEEDAUTH }
1272-
1182+
#endif
1183+
12731184
/// Intelligent device errors.
12741185

1186+
#if canImport(Darwin)
12751187
/// Device power is off.
12761188
public static var EPWROFF: POSIXError.Code { return .EPWROFF }
12771189

12781190
/// Device error, e.g. paper out.
12791191
public static var EDEVERR: POSIXError.Code { return .EDEVERR }
1280-
1192+
#endif
1193+
12811194
/// Value too large to be stored in data type.
12821195
public static var EOVERFLOW: POSIXError.Code { return .EOVERFLOW }
12831196

12841197
/// Program loading errors.
12851198

1199+
#if canImport(Darwin)
12861200
/// Bad executable.
12871201
public static var EBADEXEC: POSIXError.Code { return .EBADEXEC }
1288-
1202+
#endif
1203+
1204+
#if canImport(Darwin)
12891205
/// Bad CPU type in executable.
12901206
public static var EBADARCH: POSIXError.Code { return .EBADARCH }
1291-
1207+
12921208
/// Shared library version mismatch.
12931209
public static var ESHLIBVERS: POSIXError.Code { return .ESHLIBVERS }
12941210

12951211
/// Malformed Macho file.
12961212
public static var EBADMACHO: POSIXError.Code { return .EBADMACHO }
1297-
1213+
#endif
1214+
12981215
/// Operation canceled.
12991216
public static var ECANCELED: POSIXError.Code { return .ECANCELED }
13001217

@@ -1307,8 +1224,10 @@ extension POSIXError {
13071224
/// Illegal byte sequence.
13081225
public static var EILSEQ: POSIXError.Code { return .EILSEQ }
13091226

1227+
#if canImport(Darwin)
13101228
/// Attribute not found.
13111229
public static var ENOATTR: POSIXError.Code { return .ENOATTR }
1230+
#endif
13121231

13131232
/// Bad message.
13141233
public static var EBADMSG: POSIXError.Code { return .EBADMSG }
@@ -1334,17 +1253,21 @@ extension POSIXError {
13341253
/// STREAM ioctl timeout.
13351254
public static var ETIME: POSIXError.Code { return .ETIME }
13361255

1256+
#if canImport(Darwin)
13371257
/// No such policy registered.
13381258
public static var ENOPOLICY: POSIXError.Code { return .ENOPOLICY }
1259+
#endif
13391260

13401261
/// State not recoverable.
13411262
public static var ENOTRECOVERABLE: POSIXError.Code { return .ENOTRECOVERABLE }
13421263

13431264
/// Previous owner died.
13441265
public static var EOWNERDEAD: POSIXError.Code { return .EOWNERDEAD }
13451266

1267+
#if canImport(Darwin)
13461268
/// Interface output queue is full.
13471269
public static var EQFULL: POSIXError.Code { return .EQFULL }
1270+
#endif
13481271
}
13491272

13501273
enum UnknownNSError: Error {

0 commit comments

Comments
 (0)