diff options
| author | EuAndreh <eu@euandre.org> | 2024-11-02 04:25:16 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-11-02 04:25:16 -0300 |
| commit | db8988c7d8b01efe8311047759b32db51c0a751a (patch) | |
| tree | ea05eb50bc68bc73d26beedea0b2904446eea694 | |
| parent | .gitignore: Include pattern for cgo (diff) | |
| download | gobang-db8988c7d8b01efe8311047759b32db51c0a751a.tar.gz gobang-db8988c7d8b01efe8311047759b32db51c0a751a.tar.xz | |
src/gobang.go: Deal with nil functions in SomeFnError arguments
| -rw-r--r-- | src/gobang.go | 4 | ||||
| -rw-r--r-- | tests/gobang.go | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/gobang.go b/src/gobang.go index ea26541..ed26a04 100644 --- a/src/gobang.go +++ b/src/gobang.go @@ -104,7 +104,9 @@ func SomeError(errs ...error) error { func SomeFnError(fns ...func() error) error { errs := make([]error, len(fns)) for i, fn := range fns { - errs[i] = fn() + if fn != nil { + errs[i] = fn() + } } return SomeError(errs...) } diff --git a/tests/gobang.go b/tests/gobang.go index c862e82..64e9eb5 100644 --- a/tests/gobang.go +++ b/tests/gobang.go @@ -126,6 +126,17 @@ func test_SomeFnError() { TAssertEqual(SomeFnError(fn, fn, fn, fn), errs[2]) TAssertEqual(i, 4) }) + + Testing("no error if some function is nil", func() { + myErr := errors.New("the expected result") + TAssertEqual(SomeFnError( + func() error { return nil }, + nil, + func() error { return nil }, + func() error { return myErr }, + func() error { return nil }, + ), myErr) + }) } func test_Random() { |
