From db8988c7d8b01efe8311047759b32db51c0a751a Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 2 Nov 2024 04:25:16 -0300 Subject: src/gobang.go: Deal with nil functions in SomeFnError arguments --- src/gobang.go | 4 +++- tests/gobang.go | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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() { -- cgit v1.2.3