From fc1fa609ae496021de03760d82034f6d81d99621 Mon Sep 17 00:00:00 2001 From: Pawel Krolikowski Date: Thu, 27 Jul 2023 21:41:37 -0400 Subject: [PATCH] Try reducing the closure --- field.go | 130 +++++++++++++++++++++++++++---------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/field.go b/field.go index 33654ebb0..74f40921e 100644 --- a/field.go +++ b/field.go @@ -421,260 +421,260 @@ func Any(key string, value interface{}) Field { // To work around go compiler assigning unreasonably large space on stack // (4kb, one `Field` per arm of the switch statement) which can trigger // performance degradation if `Any` is used in a brand new goroutine. - var f func() Field + var f func(key string) Field switch val := value.(type) { case zapcore.ObjectMarshaler: - f = func() Field { + f = func(key string) Field { return Object(key, val) } case zapcore.ArrayMarshaler: - f = func() Field { + f = func(key string) Field { return Array(key, val) } case bool: - f = func() Field { + f = func(key string) Field { return Bool(key, val) } case *bool: - f = func() Field { + f = func(key string) Field { return Boolp(key, val) } case []bool: - f = func() Field { + f = func(key string) Field { return Bools(key, val) } case complex128: - f = func() Field { + f = func(key string) Field { return Complex128(key, val) } case *complex128: - f = func() Field { + f = func(key string) Field { return Complex128p(key, val) } case []complex128: - f = func() Field { + f = func(key string) Field { return Complex128s(key, val) } case complex64: - f = func() Field { + f = func(key string) Field { return Complex64(key, val) } case *complex64: - f = func() Field { + f = func(key string) Field { return Complex64p(key, val) } case []complex64: - f = func() Field { + f = func(key string) Field { return Complex64s(key, val) } case float64: - f = func() Field { + f = func(key string) Field { return Float64(key, val) } case *float64: - f = func() Field { + f = func(key string) Field { return Float64p(key, val) } case []float64: - f = func() Field { + f = func(key string) Field { return Float64s(key, val) } case float32: - f = func() Field { + f = func(key string) Field { return Float32(key, val) } case *float32: - f = func() Field { + f = func(key string) Field { return Float32p(key, val) } case []float32: - f = func() Field { + f = func(key string) Field { return Float32s(key, val) } case int: - f = func() Field { + f = func(key string) Field { return Int(key, val) } case *int: - f = func() Field { + f = func(key string) Field { return Intp(key, val) } case []int: - f = func() Field { + f = func(key string) Field { return Ints(key, val) } case int64: - f = func() Field { + f = func(key string) Field { return Int64(key, val) } case *int64: - f = func() Field { + f = func(key string) Field { return Int64p(key, val) } case []int64: - f = func() Field { + f = func(key string) Field { return Int64s(key, val) } case int32: - f = func() Field { + f = func(key string) Field { return Int32(key, val) } case *int32: - f = func() Field { + f = func(key string) Field { return Int32p(key, val) } case []int32: - f = func() Field { + f = func(key string) Field { return Int32s(key, val) } case int16: - f = func() Field { + f = func(key string) Field { return Int16(key, val) } case *int16: - f = func() Field { + f = func(key string) Field { return Int16p(key, val) } case []int16: - f = func() Field { + f = func(key string) Field { return Int16s(key, val) } case int8: - f = func() Field { + f = func(key string) Field { return Int8(key, val) } case *int8: - f = func() Field { + f = func(key string) Field { return Int8p(key, val) } case []int8: - f = func() Field { + f = func(key string) Field { return Int8s(key, val) } case string: - f = func() Field { + f = func(key string) Field { return String(key, val) } case *string: - f = func() Field { + f = func(key string) Field { return Stringp(key, val) } case []string: - f = func() Field { + f = func(key string) Field { return Strings(key, val) } case uint: - f = func() Field { + f = func(key string) Field { return Uint(key, val) } case *uint: - f = func() Field { + f = func(key string) Field { return Uintp(key, val) } case []uint: - f = func() Field { + f = func(key string) Field { return Uints(key, val) } case uint64: - f = func() Field { + f = func(key string) Field { return Uint64(key, val) } case *uint64: - f = func() Field { + f = func(key string) Field { return Uint64p(key, val) } case []uint64: - f = func() Field { + f = func(key string) Field { return Uint64s(key, val) } case uint32: - f = func() Field { + f = func(key string) Field { return Uint32(key, val) } case *uint32: - f = func() Field { + f = func(key string) Field { return Uint32p(key, val) } case []uint32: - f = func() Field { + f = func(key string) Field { return Uint32s(key, val) } case uint16: - f = func() Field { + f = func(key string) Field { return Uint16(key, val) } case *uint16: - f = func() Field { + f = func(key string) Field { return Uint16p(key, val) } case []uint16: - f = func() Field { + f = func(key string) Field { return Uint16s(key, val) } case uint8: - f = func() Field { + f = func(key string) Field { return Uint8(key, val) } case *uint8: - f = func() Field { + f = func(key string) Field { return Uint8p(key, val) } case []byte: - f = func() Field { + f = func(key string) Field { return Binary(key, val) } case uintptr: - f = func() Field { + f = func(key string) Field { return Uintptr(key, val) } case *uintptr: - f = func() Field { + f = func(key string) Field { return Uintptrp(key, val) } case []uintptr: - f = func() Field { + f = func(key string) Field { return Uintptrs(key, val) } case time.Time: - f = func() Field { + f = func(key string) Field { return Time(key, val) } case *time.Time: - f = func() Field { + f = func(key string) Field { return Timep(key, val) } case []time.Time: - f = func() Field { + f = func(key string) Field { return Times(key, val) } case time.Duration: - f = func() Field { + f = func(key string) Field { return Duration(key, val) } case *time.Duration: - f = func() Field { + f = func(key string) Field { return Durationp(key, val) } case []time.Duration: - f = func() Field { + f = func(key string) Field { return Durations(key, val) } case error: - f = func() Field { + f = func(key string) Field { return NamedError(key, val) } case []error: - f = func() Field { + f = func(key string) Field { return Errors(key, val) } case fmt.Stringer: - f = func() Field { + f = func(key string) Field { return Stringer(key, val) } default: - f = func() Field { + f = func(key string) Field { return Reflect(key, val) } } - return f() + return f(key) }