cockroachdb / cockroachdb/errors
Add errors.AsType helper (Go 1.26+)
- Dominant language
- Go
- Stars
- 2.5k
- Forks
- 74
- PR merge metrics
- No merged PRs in 30d
Description
## Motivation
Go 1.26 introduces `errors.AsType`, a generic helper that makes typed error extraction more concise and safer than the classic `errors.As(err, &target)` pattern without reflect.
`cockroachdb/errors` is widely used as a drop-in replacement for the standard library `errors` for wrapping, stack traces, and utilities. Adding an `AsType`-style API (or mirroring stdlib when building with Go 1.26+) would:
- reduce boilerplate (`var t *T; if errors.As(err, &t) { ... }`)
- improve readability and reduce misuse
- align the package with modern Go idioms (generic helpers)
- help projects keep a single “errors surface” without mixing stdlib + `cockroachdb/errors`
## Request
Add `errors.AsType` to this package with semantics matching Go 1.26 `errors.AsType`.
- On Go 1.26+: delegate to stdlib `errors.AsType`.
- Use `go:build` constraints to keep compatibility clean.
```go
//go:build go1.26
package errors
import (
sterrors "errors"
)
// AsType delegates to the standard library implementation on Go 1.26+.
func AsType[T any](err error) (T, bool) {
return sterrors.AsType[T](err)
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.