@@ -41,7 +41,7 @@ func encode(rv reflect.Value) Value {
41
41
// the error variable always does not implement the Value interface
42
42
// but does implement Error. With this, we check the concrete value instead.
43
43
if rv .Kind () == reflect .Interface {
44
- return reflectValue (rv .Elem ())
44
+ return encode (rv .Elem ())
45
45
}
46
46
47
47
typ := rv .Type ()
@@ -52,7 +52,7 @@ func encode(rv reflect.Value) Value {
52
52
case implements (typ , (* slog .Value )(nil )):
53
53
m := rv .MethodByName ("LogValue" )
54
54
lv := m .Call (nil )
55
- return reflectValue (lv [0 ])
55
+ return encode (lv [0 ])
56
56
case implements (typ , (* xerrors .Formatter )(nil )):
57
57
return extractErrorChain (rv )
58
58
case implements (typ , (* error )(nil )):
@@ -100,7 +100,7 @@ func reflectValue(rv reflect.Value) Value {
100
100
case reflect .Uint , reflect .Uint8 , reflect .Uint16 , reflect .Uint32 , reflect .Uint64 :
101
101
return Uint (rv .Uint ())
102
102
case reflect .Ptr :
103
- return reflectValue (rv .Elem ())
103
+ return encode (rv .Elem ())
104
104
case reflect .Slice , reflect .Array :
105
105
// Ordered map.
106
106
if typ == reflect .TypeOf ([]slog.Field (nil )) {
@@ -109,20 +109,20 @@ func reflectValue(rv reflect.Value) Value {
109
109
f := rv .Index (i )
110
110
key := f .MethodByName ("LogKey" ).Call (nil )[0 ].String ()
111
111
val := f .MethodByName ("LogValue" ).Call (nil )[0 ]
112
- m = m .appendVal (key , reflectValue (val ))
112
+ m = m .appendVal (key , encode (val ))
113
113
}
114
114
return m
115
115
}
116
116
list := make (List , rv .Len ())
117
117
for i := 0 ; i < rv .Len (); i ++ {
118
- list [i ] = reflectValue (rv .Index (i ))
118
+ list [i ] = encode (rv .Index (i ))
119
119
}
120
120
return list
121
121
case reflect .Map :
122
122
m := make (Map , 0 , rv .Len ())
123
123
for _ , k := range rv .MapKeys () {
124
124
mv := rv .MapIndex (k )
125
- m = m .appendVal (fmt .Sprintf ("%v" , k ), reflectValue (mv ))
125
+ m = m .appendVal (fmt .Sprintf ("%v" , k ), encode (mv ))
126
126
}
127
127
m .sort ()
128
128
return m
@@ -153,7 +153,7 @@ func reflectStruct(m Map, rv reflect.Value, typ reflect.Type) Map {
153
153
continue
154
154
}
155
155
156
- v := reflectValue (fv )
156
+ v := encode (fv )
157
157
name := ft .Tag .Get ("log" )
158
158
if name == "" {
159
159
name = snakecase (ft .Name )
@@ -255,7 +255,7 @@ func extractErrorChain(rv reflect.Value) List {
255
255
}
256
256
continue
257
257
}
258
- errs = append (errs , reflectValue (reflect .ValueOf (err )))
258
+ errs = append (errs , encode (reflect .ValueOf (err )))
259
259
}
260
260
return errs
261
261
}
0 commit comments