summaryrefslogtreecommitdiff
path: root/libgo/go/os/error_unix.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/os/error_unix.go')
-rw-r--r--libgo/go/os/error_unix.go35
1 files changed, 4 insertions, 31 deletions
diff --git a/libgo/go/os/error_unix.go b/libgo/go/os/error_unix.go
index c6002279da..be1440cacb 100644
--- a/libgo/go/os/error_unix.go
+++ b/libgo/go/os/error_unix.go
@@ -9,43 +9,16 @@ package os
import "syscall"
func isExist(err error) bool {
- switch pe := err.(type) {
- case nil:
- return false
- case *PathError:
- err = pe.Err
- case *LinkError:
- err = pe.Err
- case *SyscallError:
- err = pe.Err
- }
- return err == syscall.EEXIST || err == ErrExist
+ err = underlyingError(err)
+ return err == syscall.EEXIST || err == syscall.ENOTEMPTY || err == ErrExist
}
func isNotExist(err error) bool {
- switch pe := err.(type) {
- case nil:
- return false
- case *PathError:
- err = pe.Err
- case *LinkError:
- err = pe.Err
- case *SyscallError:
- err = pe.Err
- }
+ err = underlyingError(err)
return err == syscall.ENOENT || err == ErrNotExist
}
func isPermission(err error) bool {
- switch pe := err.(type) {
- case nil:
- return false
- case *PathError:
- err = pe.Err
- case *LinkError:
- err = pe.Err
- case *SyscallError:
- err = pe.Err
- }
+ err = underlyingError(err)
return err == syscall.EACCES || err == syscall.EPERM || err == ErrPermission
}