summaryrefslogtreecommitdiff
path: root/libgo/go/os/error.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/os/error.go')
-rw-r--r--libgo/go/os/error.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/libgo/go/os/error.go b/libgo/go/os/error.go
index e26ce27970..7235bfb6d6 100644
--- a/libgo/go/os/error.go
+++ b/libgo/go/os/error.go
@@ -14,6 +14,7 @@ var (
ErrPermission = errors.New("permission denied")
ErrExist = errors.New("file already exists")
ErrNotExist = errors.New("file does not exist")
+ ErrClosed = errors.New("file already closed")
)
// PathError records an error and the operation and file path that caused it.
@@ -63,3 +64,16 @@ func IsNotExist(err error) bool {
func IsPermission(err error) bool {
return isPermission(err)
}
+
+// underlyingError returns the underlying error for known os error types.
+func underlyingError(err error) error {
+ switch err := err.(type) {
+ case *PathError:
+ return err.Err
+ case *LinkError:
+ return err.Err
+ case *SyscallError:
+ return err.Err
+ }
+ return err
+}