From: Pantelis Sampaziotis Date: Tue, 10 Sep 2019 18:43:15 +0000 (+0000) Subject: strconv: add Unwrap to custom error types X-Git-Tag: go1.14beta1~918 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0adc89aa962aa116da5540c3248977318d360738;p=gostls13.git strconv: add Unwrap to custom error types Updates #30322 This change adds the Unwrap method to NumError. NumError is the only custom error type of the strconv that has a nested exported error. Change-Id: I8774886348880365a83f72a1d106276def27dffe GitHub-Last-Rev: 712f3df8842f48f988cebfc527476781a7cf7140 GitHub-Pull-Request: golang/go#34213 Reviewed-on: https://go-review.googlesource.com/c/go/+/194563 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Bryan C. Mills --- diff --git a/src/strconv/atoi.go b/src/strconv/atoi.go index 131b088e31..a4a8a37fb4 100644 --- a/src/strconv/atoi.go +++ b/src/strconv/atoi.go @@ -31,6 +31,8 @@ func (e *NumError) Error() string { return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + e.Err.Error() } +func (e *NumError) Unwrap() error { return e.Err } + func syntaxError(fn, str string) *NumError { return &NumError{fn, str, ErrSyntax} } diff --git a/src/strconv/atoi_test.go b/src/strconv/atoi_test.go index b167c96833..178fb01ea7 100644 --- a/src/strconv/atoi_test.go +++ b/src/strconv/atoi_test.go @@ -592,6 +592,13 @@ func TestNumError(t *testing.T) { } } +func TestNumErrorUnwrap(t *testing.T) { + err := &NumError{Err: ErrSyntax} + if !errors.Is(err, ErrSyntax) { + t.Error("errors.Is failed, wanted success") + } +} + func BenchmarkParseInt(b *testing.B) { b.Run("Pos", func(b *testing.B) { benchmarkParseInt(b, 1)