abcxyz / jvs

Apache License 2.0
8 stars 0 forks source link

Switch from multierror to Go 1.20 errors.Join #295

Closed sethvargo closed 1 year ago

sethvargo commented 1 year ago

TL;DR

Right now, we depend on hashicorp/go-multierror:

var merr *multierror.Error
merr = multierror.Append(merr, fmt.Errorf("..."))

With Go 1.20, we can use the native multi-error:

var merr err
err = errors.Join(err, fmt.Errorf("..."))

errors.Join discards nil errors, so it's also great for use with named returns:

func doThing() (err error) {
  err = errors.Join(err, foo())
  err = errors.Join(err, bar())
  return
}

Expected behavior

No response

Observed behavior

No response

Environment Details

N/A

Additional information

No response