From 60723c070c4dfb8dd7709b0e5ac536809bad6518 Mon Sep 17 00:00:00 2001 From: Jim Date: Mon, 3 Apr 2023 14:20:07 -0400 Subject: [PATCH] feature (is_nil): support checking func for nil (#3142) --- internal/util/is_nil.go | 2 +- internal/util/is_nil_test.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/util/is_nil.go b/internal/util/is_nil.go index b2e3841325..b239a3a343 100644 --- a/internal/util/is_nil.go +++ b/internal/util/is_nil.go @@ -11,7 +11,7 @@ func IsNil(i any) bool { return true } switch reflect.TypeOf(i).Kind() { - case reflect.Ptr, reflect.Map, reflect.Chan, reflect.Slice: + case reflect.Ptr, reflect.Map, reflect.Chan, reflect.Slice, reflect.Func: return reflect.ValueOf(i).IsNil() } return false diff --git a/internal/util/is_nil_test.go b/internal/util/is_nil_test.go index a373693ec3..c96947d4d4 100644 --- a/internal/util/is_nil_test.go +++ b/internal/util/is_nil_test.go @@ -19,6 +19,7 @@ func Test_IsNil(t *testing.T) { var testArrayNilPtr *[1]string var testChanNilPtr *chan string var testSliceNilPtr *[]string + var testFuncNil func() var testChanString chan string @@ -35,6 +36,7 @@ func Test_IsNil(t *testing.T) { {i: &testChanString, want: false}, {i: "string", want: false}, {i: []string{}, want: false}, + {i: func() {}, want: false}, {i: nil, want: true}, {i: testErrNilPtr, want: true}, {i: testMapNilPtr, want: true}, @@ -42,6 +44,7 @@ func Test_IsNil(t *testing.T) { {i: testChanNilPtr, want: true}, {i: testChanString, want: true}, {i: testSliceNilPtr, want: true}, + {i: testFuncNil, want: true}, } for i, tc := range tc {