Upgrade versions of vendored libs
This commit is contained in:
1
vendor/github.com/kr/pretty/.gitignore
generated
vendored
1
vendor/github.com/kr/pretty/.gitignore
generated
vendored
@@ -2,3 +2,4 @@
|
||||
_go*
|
||||
_test*
|
||||
_obj
|
||||
/.idea
|
||||
|
||||
2
vendor/github.com/kr/pretty/License
generated
vendored
2
vendor/github.com/kr/pretty/License
generated
vendored
@@ -1,5 +1,3 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2012 Keith Rarick
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
||||
32
vendor/github.com/kr/pretty/diff.go
generated
vendored
32
vendor/github.com/kr/pretty/diff.go
generated
vendored
@@ -41,7 +41,12 @@ type Printfer interface {
|
||||
// It calls Printf once for each difference, with no trailing newline.
|
||||
// The standard library log.Logger is a Printfer.
|
||||
func Pdiff(p Printfer, a, b interface{}) {
|
||||
diffPrinter{w: p}.diff(reflect.ValueOf(a), reflect.ValueOf(b))
|
||||
d := diffPrinter{
|
||||
w: p,
|
||||
aVisited: make(map[visit]visit),
|
||||
bVisited: make(map[visit]visit),
|
||||
}
|
||||
d.diff(reflect.ValueOf(a), reflect.ValueOf(b))
|
||||
}
|
||||
|
||||
type Logfer interface {
|
||||
@@ -66,6 +71,9 @@ func Ldiff(l Logfer, a, b interface{}) {
|
||||
type diffPrinter struct {
|
||||
w Printfer
|
||||
l string // label
|
||||
|
||||
aVisited map[visit]visit
|
||||
bVisited map[visit]visit
|
||||
}
|
||||
|
||||
func (w diffPrinter) printf(f string, a ...interface{}) {
|
||||
@@ -96,6 +104,28 @@ func (w diffPrinter) diff(av, bv reflect.Value) {
|
||||
return
|
||||
}
|
||||
|
||||
if av.CanAddr() && bv.CanAddr() {
|
||||
avis := visit{av.UnsafeAddr(), at}
|
||||
bvis := visit{bv.UnsafeAddr(), bt}
|
||||
var cycle bool
|
||||
|
||||
// Have we seen this value before?
|
||||
if vis, ok := w.aVisited[avis]; ok {
|
||||
cycle = true
|
||||
if vis != bvis {
|
||||
w.printf("%# v (previously visited) != %# v", formatter{v: av, quote: true}, formatter{v: bv, quote: true})
|
||||
}
|
||||
} else if _, ok := w.bVisited[bvis]; ok {
|
||||
cycle = true
|
||||
w.printf("%# v != %# v (previously visited)", formatter{v: av, quote: true}, formatter{v: bv, quote: true})
|
||||
}
|
||||
w.aVisited[avis] = bvis
|
||||
w.bVisited[bvis] = avis
|
||||
if cycle {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
switch kind := at.Kind(); kind {
|
||||
case reflect.Bool:
|
||||
if a, b := av.Bool(), bv.Bool(); a != b {
|
||||
|
||||
39
vendor/github.com/kr/pretty/formatter.go
generated
vendored
39
vendor/github.com/kr/pretty/formatter.go
generated
vendored
@@ -8,6 +8,7 @@ import (
|
||||
"text/tabwriter"
|
||||
|
||||
"github.com/kr/text"
|
||||
"github.com/rogpeppe/go-internal/fmtsort"
|
||||
)
|
||||
|
||||
type formatter struct {
|
||||
@@ -37,7 +38,7 @@ func (fo formatter) passThrough(f fmt.State, c rune) {
|
||||
s := "%"
|
||||
for i := 0; i < 128; i++ {
|
||||
if f.Flag(i) {
|
||||
s += string(i)
|
||||
s += string(rune(i))
|
||||
}
|
||||
}
|
||||
if w, ok := f.Width(); ok {
|
||||
@@ -91,12 +92,39 @@ 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)")
|
||||
return
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
switch v.Kind() {
|
||||
case reflect.Bool:
|
||||
p.printInline(v, v.Bool(), showType)
|
||||
@@ -123,17 +151,16 @@ func (p *printer) printValue(v reflect.Value, showType, quote bool) {
|
||||
writeByte(p, '\n')
|
||||
pp = p.indent()
|
||||
}
|
||||
keys := v.MapKeys()
|
||||
sm := fmtsort.Sort(v)
|
||||
for i := 0; i < v.Len(); i++ {
|
||||
showTypeInStruct := true
|
||||
k := keys[i]
|
||||
mv := v.MapIndex(k)
|
||||
k := sm.Key[i]
|
||||
mv := sm.Value[i]
|
||||
pp.printValue(k, false, true)
|
||||
writeByte(pp, ':')
|
||||
if expand {
|
||||
writeByte(pp, '\t')
|
||||
}
|
||||
showTypeInStruct = t.Elem().Kind() == reflect.Interface
|
||||
showTypeInStruct := t.Elem().Kind() == reflect.Interface
|
||||
pp.printValue(mv, showTypeInStruct, true)
|
||||
if expand {
|
||||
io.WriteString(pp, ",\n")
|
||||
|
||||
2
vendor/github.com/kr/pretty/pretty.go
generated
vendored
2
vendor/github.com/kr/pretty/pretty.go
generated
vendored
@@ -75,7 +75,7 @@ func Printf(format string, a ...interface{}) (n int, errno error) {
|
||||
|
||||
// Println pretty-prints its operands and writes to standard output.
|
||||
//
|
||||
// Calling Print(x, y) is equivalent to
|
||||
// Calling Println(x, y) is equivalent to
|
||||
// fmt.Println(Formatter(x), Formatter(y)), but each operand is
|
||||
// formatted with "%# v".
|
||||
func Println(a ...interface{}) (n int, errno error) {
|
||||
|
||||
Reference in New Issue
Block a user