cockroachdb / cockroachdb/errors

Add errors.AsType helper (Go 1.26+)

Aberta
#156 0 comentários 20 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Go
Estrelas
2.5k
Forks
74
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

## 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)
}
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.