New Upstream Release - golang-pretty
Ready changes
Summary
Merged new upstream version: 0.3.1 (was: 0.3.0).
Resulting package
Built on 2023-01-01T03:30 (took 4m0s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases golang-github-kr-pretty-dev
Lintian Result
Diff
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..77b7be5
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,10 @@
+version: 2
+updates:
+- package-ecosystem: gomod
+ directory: /
+ schedule:
+ interval: weekly
+- package-ecosystem: github-actions
+ directory: /
+ schedule:
+ interval: weekly
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index db23318..a1ae6ef 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -7,10 +7,10 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- - uses: actions/setup-go@v1
+ - uses: actions/setup-go@v2
with:
go-version: 1.13.x
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Build
run: go build .
- name: Test
diff --git a/.gitignore b/.gitignore
index 1f0a99f..b2d4781 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
_go*
_test*
_obj
+/.idea
diff --git a/debian/changelog b/debian/changelog
index 3736c1d..3d8229d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-pretty (0.3.1-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Sun, 01 Jan 2023 03:27:01 -0000
+
golang-pretty (0.3.0-1) unstable; urgency=medium
* New upstream version 0.3.0
diff --git a/formatter.go b/formatter.go
index 249f089..8e6969c 100644
--- a/formatter.go
+++ b/formatter.go
@@ -92,6 +92,24 @@ type visit struct {
typ reflect.Type
}
+func (p *printer) catchPanic(v reflect.Value, method string) {
+ if r := recover(); r != nil {
+ if v.Kind() == reflect.Ptr && v.IsNil() {
+ writeByte(p, '(')
+ io.WriteString(p, v.Type().String())
+ io.WriteString(p, ")(nil)")
+ return
+ }
+ writeByte(p, '(')
+ io.WriteString(p, v.Type().String())
+ io.WriteString(p, ")(PANIC=calling method ")
+ io.WriteString(p, strconv.Quote(method))
+ io.WriteString(p, ": ")
+ fmt.Fprint(p, r)
+ writeByte(p, ')')
+ }
+}
+
func (p *printer) printValue(v reflect.Value, showType, quote bool) {
if p.depth > 10 {
io.WriteString(p, "!%v(DEPTH EXCEEDED)")
@@ -101,6 +119,7 @@ func (p *printer) printValue(v reflect.Value, showType, quote bool) {
if v.IsValid() && v.CanInterface() {
i := v.Interface()
if goStringer, ok := i.(fmt.GoStringer); ok {
+ defer p.catchPanic(v, "GoString")
io.WriteString(p, goStringer.GoString())
return
}
diff --git a/formatter_test.go b/formatter_test.go
index f23c700..6e27b27 100644
--- a/formatter_test.go
+++ b/formatter_test.go
@@ -5,6 +5,7 @@ import (
"io"
"strings"
"testing"
+ "time"
"unsafe"
)
@@ -97,7 +98,7 @@ var gosyntax = []test{
`[]string{"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}`,
},
{F(5), "pretty.F(5)"},
- { NewStructWithPrivateFields("foo"), `NewStructWithPrivateFields("foo")`},
+ {NewStructWithPrivateFields("foo"), `NewStructWithPrivateFields("foo")`},
{
SA{&T{1, 2}, T{3, 4}},
`pretty.SA{
@@ -176,6 +177,41 @@ var gosyntax = []test{
},
}`,
},
+ {(*time.Time)(nil), "(*time.Time)(nil)"},
+ {&ValueGoString{"vgs"}, `VGS vgs`},
+ {(*ValueGoString)(nil), `(*pretty.ValueGoString)(nil)`},
+ {(*VGSWrapper)(nil), `(*pretty.VGSWrapper)(nil)`},
+ {&PointerGoString{"pgs"}, `PGS pgs`},
+ {(*PointerGoString)(nil), "(*pretty.PointerGoString)(nil)"},
+ {&PanicGoString{"oops!"}, `(*pretty.PanicGoString)(PANIC=calling method "GoString": oops!)`},
+}
+
+type ValueGoString struct {
+ s string
+}
+
+func (g ValueGoString) GoString() string {
+ return "VGS " + g.s
+}
+
+type VGSWrapper struct {
+ ValueGoString
+}
+
+type PointerGoString struct {
+ s string
+}
+
+func (g *PointerGoString) GoString() string {
+ return "PGS " + g.s
+}
+
+type PanicGoString struct {
+ s string
+}
+
+func (g *PanicGoString) GoString() string {
+ panic(g.s)
}
func TestGoSyntax(t *testing.T) {
diff --git a/go.mod b/go.mod
index d6b299d..98e6163 100644
--- a/go.mod
+++ b/go.mod
@@ -4,5 +4,5 @@ go 1.12
require (
github.com/kr/text v0.2.0
- github.com/rogpeppe/go-internal v1.6.1
+ github.com/rogpeppe/go-internal v1.9.0
)
diff --git a/go.sum b/go.sum
index 0d561de..3dd78be 100644
--- a/go.sum
+++ b/go.sum
@@ -1,11 +1,6 @@
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
-github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
Debdiff
File lists identical (after any substitutions)
No differences were encountered in the control files