From da48b925ff392bb39ad6679b637729a396140760 Mon Sep 17 00:00:00 2001 From: Alexander Bruyako Date: Mon, 27 Jan 2020 18:28:21 +0300 Subject: [PATCH] remove unnecessary error return I was running "golangci-lint" and found this two warnings internal/checker/checker.go:135:18: (*Checker).LoadIndex$3 - result 0 (error) is always nil (unparam) final := func() error { ^ internal/repository/repository.go:457:18: (*Repository).LoadIndex$3 - result 0 (error) is always nil (unparam) final := func() error { ^ It turns out that these functions are used only in "RunWorkers(...)", which is used only two times in whole project right after this "final" functions. And because these "final" functions always return "nil", I've descided, that it would be better to remove requriments for "final" func to return error to avoid magick "return nil" at their end. --- internal/checker/checker.go | 3 +-- internal/repository/repository.go | 3 +-- internal/repository/worker_group.go | 10 ++++------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/internal/checker/checker.go b/internal/checker/checker.go index fcb9db490..2e2e233d6 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -132,9 +132,8 @@ func (c *Checker) LoadIndex(ctx context.Context) (hints []error, errs []error) { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(resultCh) - return nil } // run workers on ch diff --git a/internal/repository/repository.go b/internal/repository/repository.go index 0c71fb3bb..67df4b3b2 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -454,9 +454,8 @@ func (r *Repository) LoadIndex(ctx context.Context) error { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(indexCh) - return nil } // run workers on ch diff --git a/internal/repository/worker_group.go b/internal/repository/worker_group.go index ab09d441f..6b9dc6ddf 100644 --- a/internal/repository/worker_group.go +++ b/internal/repository/worker_group.go @@ -10,7 +10,7 @@ import ( // After all workers have terminated, finalFunc is run. If an error occurs in // one of the workers, it is returned. FinalFunc is always run, regardless of // any other previous errors. -func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() error) error { +func RunWorkers(ctx context.Context, count int, workerFunc func() error, finalFunc func()) error { wg, ctx := errgroup.WithContext(ctx) // run workers @@ -22,14 +22,12 @@ func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() err err := wg.Wait() // make sure finalFunc is run - finalErr := finalFunc() + finalFunc() - // if the workers returned an error, return it to the caller (disregarding - // any error from finalFunc) + // if the workers returned an error, return it to the caller if err != nil { return err } - // if not, return the value finalFunc returned - return finalErr + return nil }