cockroachdb / cockroachdb/errors

Add errors.AsType helper (Go 1.26+)

オープン
#156 コメント 0 件 リアクション 20 件 担当者 0 名 GitHub で見る
主要言語
Go
スター
2.5k
フォーク
74
PR マージ指標
30日以内にマージされた PR はありません

説明

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。