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 {