diff --git a/funcr/funcr.go b/funcr/funcr.go index bb36d5e..ff47817 100644 --- a/funcr/funcr.go +++ b/funcr/funcr.go @@ -287,6 +287,9 @@ func prettyWithFlags(value interface{}, flags uint32) string { buf.WriteRune('}') return buf.String() case reflect.Ptr, reflect.Interface: + if v.IsNil() { + return "null" + } return pretty(v.Elem().Interface()) } return fmt.Sprintf(`""`, t.Kind().String()) diff --git a/funcr/funcr_test.go b/funcr/funcr_test.go index 70d0d31..735cbd6 100644 --- a/funcr/funcr_test.go +++ b/funcr/funcr_test.go @@ -95,6 +95,15 @@ func TestPretty(t *testing.T) { {"nine", "three"}, {"seven", "six"}, }, + struct { + A *int + B *int + C interface{} + D interface{} + }{ + B: ptrint(1), + D: interface{}(2), + }, } for i, tc := range cases {