From c5d826532d2b801732ea38860a944c5de9a8e211 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 30 Jul 2015 11:03:23 +0800 Subject: [PATCH] don't print definition for embedded struct --- formatter.go | 6 +++++- formatter_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/formatter.go b/formatter.go index 8dacda2..8b97254 100644 --- a/formatter.go +++ b/formatter.go @@ -163,7 +163,11 @@ func (p *printer) printValue(v reflect.Value, showType, quote bool) { } if showType { - io.WriteString(p, t.String()) + if t.Name() == "" { + io.WriteString(p, "struct") + } else { + io.WriteString(p, t.String()) + } } writeByte(p, '{') if nonzero(v) { diff --git a/formatter_test.go b/formatter_test.go index 5f3204e..4fbb80b 100644 --- a/formatter_test.go +++ b/formatter_test.go @@ -35,6 +35,24 @@ func (f F) Format(s fmt.State, c rune) { var long = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" +type Embedded struct { + Foo string `json:"foo"` + Bar struct { + A int `json:"a"` + B float64 `json:"b"` + C string `json:"c"` + } `json:"bar"` +} + +var embedded Embedded + +func init() { + embedded.Foo = "foo" + embedded.Bar.A = 1 + embedded.Bar.B = 1.1 + embedded.Bar.C = "bar" +} + var gosyntax = []test{ {nil, `nil`}, {"", `""`}, @@ -132,6 +150,13 @@ var gosyntax = []test{ longFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", otherLongFieldName: nil, }, +}`, + }, + { + &embedded, + `&pretty.Embedded{ + Foo: "foo", + Bar: struct{A:1, B:1.1, C:"bar"}, }`, }, }