3 // Flatten flattens the given error, merging any *Errors together into
5 func Flatten(err error) error {
6 // If it isn't an *Error, just return the error as-is
7 if _, ok := err.(*Error); !ok {
11 // Otherwise, make the result and flatten away!
17 func flatten(err error, flatErr *Error) {
18 switch err := err.(type) {
20 for _, e := range err.Errors {
24 flatErr.Errors = append(flatErr.Errors, err)