Skip to content

Commit 29a4d7d

Browse files
committed
Merge branch 'pr/54'
Change-Id: Ia84202bfb382bfa4717d0b7626c73d9f1e3986ec
2 parents 60a04ea + 8daafec commit 29a4d7d

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

bson/encode.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,10 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
488488

489489
field := val.Field(i)
490490

491+
if omitempty && e.isZero(field) {
492+
continue
493+
}
494+
491495
switch t := field.Interface().(type) {
492496
case *Element:
493497
elems = append(elems, t)
@@ -522,10 +526,6 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
522526
}
523527
field = e.underlyingVal(field)
524528

525-
if omitempty && e.isZero(field) {
526-
continue
527-
}
528-
529529
if inline {
530530
switch sf.Type.Kind() {
531531
case reflect.Map:

bson/encode_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,16 @@ func reflectionEncoderTest(t *testing.T) {
750750
docToBytes(NewDocument()),
751751
nil,
752752
},
753+
{
754+
"omitempty, empty time",
755+
struct {
756+
A time.Time `bson:",omitempty"`
757+
}{
758+
A: time.Time{},
759+
},
760+
docToBytes(NewDocument()),
761+
nil,
762+
},
753763
{
754764
"no private fields",
755765
struct {

0 commit comments

Comments
 (0)