hashicorp / go-multierror

A Go (golang) package for representing a list of errors as a single error.
Mozilla Public License 2.0
2.3k stars 123 forks source link

Question: chain.Unwrap behaviour #53

Open rickb777 opened 3 years ago

rickb777 commented 3 years ago

chain.Unwrap() has a test to see whether the end of the chain has been reached. I don't understand this; is it correct?

multierror.go:

// Unwrap implements errors.Unwrap by returning the next error in the
// chain or nil if there are no more errors.
func (e chain) Unwrap() error {
    if len(e) == 1 {  // line 106
        return nil
    }

    return e[1:]
}

It seems to me that line 106 might have a mistake and should be if len(e) < 1 {.

Have I misunderstood this?

I am using v1.1.1.