@@ -271,11 +271,11 @@ func normalizePointer(field reflect.StructField) reflect.Value {
271271}
272272
273273func (t * structTransformer ) fieldToJSONSchema (field reflect.StructField , depth int ) any {
274- transformInput := normalizePointer (field )
275- switch transformInput .Elem ().Kind () {
274+ normalizedField := normalizePointer (field )
275+ switch normalizedField .Elem ().Kind () {
276276 case reflect .Struct :
277277 fieldsMap := make (map [string ]any )
278- fieldType := transformInput .Elem ().Type ()
278+ fieldType := normalizedField .Elem ().Type ()
279279 for i := 0 ; i < fieldType .NumField (); i ++ {
280280 name , err := t .nameTransformer (fieldType .Field (i ))
281281 if err != nil {
@@ -304,13 +304,13 @@ func (t *structTransformer) fieldToJSONSchema(field reflect.StructField, depth i
304304 return fieldsMap
305305 case reflect .Map :
306306 keySchema , ok := t .fieldToJSONSchema (reflect.StructField {
307- Type : field . Type .Key (),
307+ Type : normalizedField . Elem (). Type () .Key (),
308308 }, depth + 1 ).(string )
309309 if keySchema == "" || ! ok {
310310 return ""
311311 }
312312 valueSchema := t .fieldToJSONSchema (reflect.StructField {
313- Type : field . Type .Elem (),
313+ Type : normalizedField . Elem (). Type () .Elem (),
314314 }, depth + 1 )
315315 if valueSchema == "" {
316316 return ""
@@ -320,7 +320,7 @@ func (t *structTransformer) fieldToJSONSchema(field reflect.StructField, depth i
320320 }
321321 case reflect .Slice :
322322 valueSchema := t .fieldToJSONSchema (reflect.StructField {
323- Type : field . Type .Elem (),
323+ Type : normalizedField . Elem (). Type () .Elem (),
324324 }, depth + 1 )
325325 if valueSchema == "" {
326326 return ""
0 commit comments