checker: convert error type to use pointer-receivers

This commit is contained in:
Michael Eischer 2022-05-01 20:08:02 +02:00
parent 4faff0debe
commit 5815f727ee
3 changed files with 9 additions and 9 deletions

View File

@ -222,7 +222,7 @@ func runCheck(opts CheckOptions, gopts GlobalOptions, args []string) error {
dupFound := false dupFound := false
for _, hint := range hints { for _, hint := range hints {
Printf("%v\n", hint) Printf("%v\n", hint)
if _, ok := hint.(checker.ErrDuplicatePacks); ok { if _, ok := hint.(*checker.ErrDuplicatePacks); ok {
dupFound = true dupFound = true
} }
} }
@ -273,7 +273,7 @@ func runCheck(opts CheckOptions, gopts GlobalOptions, args []string) error {
for err := range errChan { for err := range errChan {
errorsFound = true errorsFound = true
if e, ok := err.(checker.TreeError); ok { if e, ok := err.(*checker.TreeError); ok {
Warnf("error for tree %v:\n", e.ID.Str()) Warnf("error for tree %v:\n", e.ID.Str())
for _, treeErr := range e.Errors { for _, treeErr := range e.Errors {
Warnf(" %v\n", treeErr) Warnf(" %v\n", treeErr)

View File

@ -63,7 +63,7 @@ type ErrDuplicatePacks struct {
Indexes restic.IDSet Indexes restic.IDSet
} }
func (e ErrDuplicatePacks) Error() string { func (e *ErrDuplicatePacks) Error() string {
return fmt.Sprintf("pack %v contained in several indexes: %v", e.PackID.Str(), e.Indexes) return fmt.Sprintf("pack %v contained in several indexes: %v", e.PackID.Str(), e.Indexes)
} }
@ -73,7 +73,7 @@ type ErrOldIndexFormat struct {
restic.ID restic.ID
} }
func (err ErrOldIndexFormat) Error() string { func (err *ErrOldIndexFormat) Error() string {
return fmt.Sprintf("index %v has old format", err.ID.Str()) return fmt.Sprintf("index %v has old format", err.ID.Str())
} }
@ -93,7 +93,7 @@ func (c *Checker) LoadIndex(ctx context.Context) (hints []error, errs []error) {
if oldFormat { if oldFormat {
debug.Log("index %v has old format", id.Str()) debug.Log("index %v has old format", id.Str())
hints = append(hints, ErrOldIndexFormat{id}) hints = append(hints, &ErrOldIndexFormat{id})
} }
err = errors.Wrapf(err, "error loading index %v", id.Str()) err = errors.Wrapf(err, "error loading index %v", id.Str())
@ -137,7 +137,7 @@ func (c *Checker) LoadIndex(ctx context.Context) (hints []error, errs []error) {
for packID := range c.packs { for packID := range c.packs {
debug.Log(" check pack %v: contained in %d indexes", packID, len(packToIndex[packID])) debug.Log(" check pack %v: contained in %d indexes", packID, len(packToIndex[packID]))
if len(packToIndex[packID]) > 1 { if len(packToIndex[packID]) > 1 {
hints = append(hints, ErrDuplicatePacks{ hints = append(hints, &ErrDuplicatePacks{
PackID: packID, PackID: packID,
Indexes: packToIndex[packID], Indexes: packToIndex[packID],
}) })
@ -257,7 +257,7 @@ type TreeError struct {
Errors []error Errors []error
} }
func (e TreeError) Error() string { func (e *TreeError) Error() string {
return fmt.Sprintf("tree %v: %v", e.ID.Str(), e.Errors) return fmt.Sprintf("tree %v: %v", e.ID.Str(), e.Errors)
} }
@ -276,7 +276,7 @@ func (c *Checker) checkTreeWorker(ctx context.Context, trees <-chan restic.TreeI
if len(errs) == 0 { if len(errs) == 0 {
continue continue
} }
treeError := TreeError{ID: job.ID, Errors: errs} treeError := &TreeError{ID: job.ID, Errors: errs}
select { select {
case <-ctx.Done(): case <-ctx.Done():
return return

View File

@ -289,7 +289,7 @@ func TestDuplicatePacksInIndex(t *testing.T) {
found := false found := false
for _, hint := range hints { for _, hint := range hints {
if _, ok := hint.(checker.ErrDuplicatePacks); ok { if _, ok := hint.(*checker.ErrDuplicatePacks); ok {
found = true found = true
} else { } else {
t.Errorf("got unexpected hint: %v", hint) t.Errorf("got unexpected hint: %v", hint)