case p.arg != nil:
p.buf.WriteString(reflect.TypeOf(p.arg).String())
p.buf.WriteByte('=')
- p.printArg(p.arg, 'v', 0)
+ p.printArg(p.arg, 'v')
case p.value.IsValid():
p.buf.WriteString(p.value.Type().String())
p.buf.WriteByte('=')
p.buf.WriteRune(verb)
p.buf.WriteString(panicString)
p.panicking = true
- p.printArg(err, 'v', 0)
+ p.printArg(err, 'v')
p.panicking = false
p.buf.WriteByte(')')
}
}
-func (p *pp) handleMethods(verb rune, depth int) (handled bool) {
+func (p *pp) handleMethods(verb rune) (handled bool) {
if p.erroring {
return
}
case error:
handled = true
defer p.catchPanic(p.arg, verb)
- p.printArg(v.Error(), verb, depth)
+ p.fmtString(v.Error(), verb)
return
case Stringer:
handled = true
defer p.catchPanic(p.arg, verb)
- p.printArg(v.String(), verb, depth)
+ p.fmtString(v.String(), verb)
return
}
}
return false
}
-func (p *pp) printArg(arg interface{}, verb rune, depth int) {
+func (p *pp) printArg(arg interface{}, verb rune) {
p.arg = arg
p.value = reflect.Value{}
case []byte:
p.fmtBytes(f, verb, bytesString)
case reflect.Value:
- p.printReflectValue(f, verb, depth)
+ p.printReflectValue(f, verb, 0)
return
default:
// If the type is not simple, it might have methods.
- if p.handleMethods(verb, depth) {
+ if p.handleMethods(verb) {
return
}
// Need to use reflection
- p.printReflectValue(reflect.ValueOf(arg), verb, depth)
+ p.printReflectValue(reflect.ValueOf(arg), verb, 0)
return
}
p.arg = nil
if value.CanInterface() {
p.arg = value.Interface()
}
- if p.handleMethods(verb, depth) {
+ if p.handleMethods(verb) {
return
}
p.fmt.zero = false
}
- p.printArg(a[argNum], c, 0)
+ p.printArg(a[argNum], c)
argNum++
}
} else {
p.buf.WriteString(reflect.TypeOf(arg).String())
p.buf.WriteByte('=')
- p.printArg(arg, 'v', 0)
+ p.printArg(arg, 'v')
}
}
p.buf.WriteByte(')')
if argNum > 0 && (addspace || (!isString && !prevString)) {
p.buf.WriteByte(' ')
}
- p.printArg(arg, 'v', 0)
+ p.printArg(arg, 'v')
prevString = isString
}
if addnewline {