err.(*MyErr) または switch err.(type) などのエラーに対する型アサーションまたは型 switch を報告し、errors.As の使用を代わりに提案します。
Go 1.13 以降は %w 動詞を含む fmt.Errorf 関数を使用してエラーをラップできます。 そのため、エラーの型アサーションまたは型 switch はラップされたエラーでは失敗します。 特定のエラータイプをチェックするには、標準ライブラリの errors.As 関数を使用する方法が推奨されます。この関数は特定のエラータイプを確認すると同時に一連のラップされたエラーを全探索するためです。
errors.As についての詳細は、「Working with Errors in Go 1.13」を参照してください。
クイックフィックスを使用すると、エラーに対する型アサーションまたは型 switch が errors.As に置換されます。
例
errFoo, ok := err.(*ErrFoo)
switch err.(type) {
case *ErrBar:
}
クイックフィックス適用後:
var errFoo *ErrFoo
ok := errors.As(err, &errFoo)
var errBar *ErrBar
switch {
case errors.As(err, &errBar):
}