cockroachdb / cockroachdb/errors

Add errors.AsType helper (Go 1.26+)

Ouverte
#156 0 commentaires 20 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Go
Étoiles
2.5k
Forks
74
Métriques de merge des PR
Aucune PR mergée en 30 j

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par lire les helpers publics d’erreurs existants du package ainsi que son organisation par version de Go ou build tag ; l’issue ne nomme aucun fichier ni test spécifique. Vérifiez la sémantique prévue de Go 1.26 et le comportement de compatibilité, puis exécutez la suite de tests existante du dépôt afin de confirmer que le helper fonctionne avec les versions prises en charge.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
go
Domaine
backend
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.