diff options
Diffstat (limited to 'libgo/go/os/error_unix.go')
-rw-r--r-- | libgo/go/os/error_unix.go | 35 |
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 } |