Skip to content

Commit d6d24d8

Browse files
chbughoisie
authored andcommitted
properly handle the case where struct pointers are nil
1 parent dd75096 commit d6d24d8

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

mustache.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,9 @@ func isNil(v reflect.Value) bool {
417417
}
418418

419419
valueInd := indirect(v)
420+
if valueInd == nil {
421+
return true
422+
}
420423
switch val := valueInd.(type) {
421424
case *reflect.BoolValue:
422425
return !val.Get()

mustache_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ var tests = []Test{
108108
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": []User{{"Mike", 1}}}, "Mike"},
109109

110110
{`{{#users}}gone{{Name}}{{/users}}`, map[string]interface{}{"users": nil}, ""},
111+
{`{{#users}}gone{{Name}}{{/users}}`, map[string]interface{}{"users": (*User)(nil)}, ""},
111112
{`{{#users}}gone{{Name}}{{/users}}`, map[string]interface{}{"users": []User{}}, ""},
112113
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, "Mike"},
113114
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": vector.Vector([]interface{}{&User{"Mike", 12}})}, "Mike"},

0 commit comments

Comments
 (0)