]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/lockedfile/internal/filelock: use errors.ErrUnsupported
authorTobias Klauser <tklauser@distanz.ch>
Thu, 16 Mar 2023 21:05:06 +0000 (22:05 +0100)
committerGopher Robot <gobot@golang.org>
Fri, 17 Mar 2023 02:24:35 +0000 (02:24 +0000)
All platform specific errors are now covered by errors.ErrUnsupported.

Updates #41198

Change-Id: Ia9c0cad7c493305835bd5a1f349446cec409f686
Reviewed-on: https://go-review.googlesource.com/c/go/+/476917
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>

src/cmd/go/internal/lockedfile/internal/filelock/filelock.go
src/cmd/go/internal/lockedfile/internal/filelock/filelock_fcntl.go
src/cmd/go/internal/lockedfile/internal/filelock/filelock_other.go
src/cmd/go/internal/lockedfile/internal/filelock/filelock_unix.go
src/cmd/go/internal/lockedfile/internal/filelock/filelock_windows.go

index 05f27c321a8ac977b9eb1297344eedcfa316b652..d37331892d1efb5b909469f032a0b35025cba4ef 100644 (file)
@@ -10,7 +10,6 @@ package filelock
 import (
        "errors"
        "io/fs"
-       "os"
 )
 
 // A File provides the minimal set of methods required to lock an open file.
@@ -78,22 +77,7 @@ func (lt lockType) String() string {
 
 // IsNotSupported returns a boolean indicating whether the error is known to
 // report that a function is not supported (possibly for a specific input).
-// It is satisfied by ErrNotSupported as well as some syscall errors.
+// It is satisfied by errors.ErrUnsupported as well as some syscall errors.
 func IsNotSupported(err error) bool {
-       return isNotSupported(underlyingError(err))
-}
-
-var ErrNotSupported = errors.New("operation not supported")
-
-// underlyingError returns the underlying error for known os error types.
-func underlyingError(err error) error {
-       switch err := err.(type) {
-       case *fs.PathError:
-               return err.Err
-       case *os.LinkError:
-               return err.Err
-       case *os.SyscallError:
-               return err.Err
-       }
-       return err
+       return errors.Is(err, errors.ErrUnsupported)
 }
index 8568048507860055c8c6a71260bc8a3fca407cb3..8a62839734e02fddac5531b767d3fc5f05433840 100644 (file)
@@ -208,7 +208,3 @@ func setlkw(fd uintptr, lt lockType) error {
                }
        }
 }
-
-func isNotSupported(err error) bool {
-       return err == syscall.ENOSYS || err == syscall.ENOTSUP || err == syscall.EOPNOTSUPP || err == ErrNotSupported
-}
index 7bdd62bd9b439e6ceef26274bda8befaf053532f..b16709ed51b1e263cd579fe60e2f8715d7dbf032 100644 (file)
@@ -6,7 +6,10 @@
 
 package filelock
 
-import "io/fs"
+import (
+       "errors"
+       "io/fs"
+)
 
 type lockType int8
 
@@ -19,7 +22,7 @@ func lock(f File, lt lockType) error {
        return &fs.PathError{
                Op:   lt.String(),
                Path: f.Name(),
-               Err:  ErrNotSupported,
+               Err:  errors.ErrUnsupported,
        }
 }
 
@@ -27,10 +30,6 @@ func unlock(f File) error {
        return &fs.PathError{
                Op:   "Unlock",
                Path: f.Name(),
-               Err:  ErrNotSupported,
+               Err:  errors.ErrUnsupported,
        }
 }
-
-func isNotSupported(err error) bool {
-       return err == ErrNotSupported
-}
index d7778d05de1884f88bcbdbbc13e30a26c86d43ba..6f73b1bfeea9bb89f338e1770f2c9d9754368217 100644 (file)
@@ -38,7 +38,3 @@ func lock(f File, lt lockType) (err error) {
 func unlock(f File) error {
        return lock(f, syscall.LOCK_UN)
 }
-
-func isNotSupported(err error) bool {
-       return err == syscall.ENOSYS || err == syscall.ENOTSUP || err == syscall.EOPNOTSUPP || err == ErrNotSupported
-}
index e2ca5383046bbe13bd3dd5bb7d3c43bcab190d22..647ee9921d2592ab8f52ae0c5699fa63fb967bd4 100644 (file)
@@ -55,12 +55,3 @@ func unlock(f File) error {
        }
        return nil
 }
-
-func isNotSupported(err error) bool {
-       switch err {
-       case windows.ERROR_NOT_SUPPORTED, windows.ERROR_CALL_NOT_IMPLEMENTED, ErrNotSupported:
-               return true
-       default:
-               return false
-       }
-}