Skip to content

Commit 00a4579

Browse files
committed
Merge branch 'pr/50'
Change-Id: I29c60cc92d841532d0f822e1fc00683a7fd476d2
2 parents c2b6752 + 5fa9f3b commit 00a4579

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

bson/encode.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,10 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
522522
}
523523
field = e.underlyingVal(field)
524524

525+
if omitempty && e.isZero(field) {
526+
continue
527+
}
528+
525529
if inline {
526530
switch sf.Type.Kind() {
527531
case reflect.Map:
@@ -543,9 +547,6 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
543547
}
544548
}
545549

546-
if omitempty && e.isZero(field) {
547-
continue
548-
}
549550
elem, err := e.elemFromValue(key, field, minsize)
550551
if err != nil {
551552
return nil, err

bson/encode_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,18 @@ func reflectionEncoderTest(t *testing.T) {
816816
docToBytes(NewDocument(EC.String("foo", "bar"))),
817817
nil,
818818
},
819+
{
820+
"inline, omitempty",
821+
struct {
822+
A string
823+
Foo zeroTest `bson:"omitempty,inline"`
824+
}{
825+
A: "bar",
826+
Foo: zeroTest{true},
827+
},
828+
docToBytes(NewDocument(EC.String("a", "bar"))),
829+
nil,
830+
},
819831
{
820832
"struct{}",
821833
struct {

0 commit comments

Comments
 (0)