Skip to content

Commit

Permalink
Adjust panic for IgnoreUnexported and IgnoreFields (#228)
Browse files Browse the repository at this point in the history
Adjust the panic message to be more specific about what the user should do, and reduces the need for the user to look at the source code.
  • Loading branch information
ko30005 authored Jul 14, 2020
1 parent d669b04 commit 1536a0c
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion cmp/cmpopts/ignore.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ func newUnexportedFilter(typs ...interface{}) unexportedFilter {
for _, typ := range typs {
t := reflect.TypeOf(typ)
if t == nil || t.Kind() != reflect.Struct {
panic(fmt.Sprintf("invalid struct type: %T", typ))
panic(fmt.Sprintf("%T must be a non-pointer struct", typ))
}
ux.m[t] = true
}
Expand Down
2 changes: 1 addition & 1 deletion cmp/cmpopts/struct_filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func newStructFilter(typ interface{}, names ...string) structFilter {

t := reflect.TypeOf(typ)
if t == nil || t.Kind() != reflect.Struct {
panic(fmt.Sprintf("%T must be a struct", typ))
panic(fmt.Sprintf("%T must be a non-pointer struct", typ))
}
var ft fieldTree
for _, name := range names {
Expand Down
6 changes: 3 additions & 3 deletions cmp/cmpopts/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1223,7 +1223,7 @@ func TestPanic(t *testing.T) {
label: "IgnoreFields",
fnc: IgnoreFields,
args: args(&Foo1{}, "Alpha"),
wantPanic: "must be a struct",
wantPanic: "must be a non-pointer struct",
reason: "the type must be a struct (not pointer to a struct)",
}, {
label: "IgnoreFields",
Expand Down Expand Up @@ -1304,13 +1304,13 @@ func TestPanic(t *testing.T) {
label: "IgnoreUnexported",
fnc: IgnoreUnexported,
args: args(nil),
wantPanic: "invalid struct type",
wantPanic: "must be a non-pointer struct",
reason: "input must not be nil value",
}, {
label: "IgnoreUnexported",
fnc: IgnoreUnexported,
args: args(&Foo1{}),
wantPanic: "invalid struct type",
wantPanic: "must be a non-pointer struct",
reason: "input must be a struct type (not a pointer to a struct)",
}, {
label: "IgnoreUnexported",
Expand Down

0 comments on commit 1536a0c

Please # to comment.