Skip to content

Commit 27b27bd

Browse files
authoredJul 20, 2023
enchancement: report which property is triggering a parsing error (#1439)
1 parent d0f9dc5 commit 27b27bd

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed
 

‎parser.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -1139,7 +1139,7 @@ func (parser *Parser) getTypeSchema(typeName string, file *ast.File, ref bool) (
11391139
if err == ErrRecursiveParseStruct && ref {
11401140
return parser.getRefTypeSchema(typeSpecDef, schema), nil
11411141
}
1142-
return nil, err
1142+
return nil, fmt.Errorf("%s: %w", typeName, err)
11431143
}
11441144
}
11451145

@@ -1373,7 +1373,7 @@ func (parser *Parser) parseStruct(file *ast.File, fields *ast.FieldList) (*spec.
13731373
for _, field := range fields.List {
13741374
fieldProps, requiredFromAnon, err := parser.parseStructField(file, field)
13751375
if err != nil {
1376-
if err == ErrFuncTypeField || err == ErrSkippedField {
1376+
if errors.Is(err, ErrFuncTypeField) || errors.Is(err, ErrSkippedField) {
13771377
continue
13781378
}
13791379

@@ -1424,12 +1424,12 @@ func (parser *Parser) parseStructField(file *ast.File, field *ast.Field) (map[st
14241424
if fieldName == "" {
14251425
typeName, err := getFieldType(file, field.Type, nil)
14261426
if err != nil {
1427-
return nil, nil, err
1427+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14281428
}
14291429

14301430
schema, err := parser.getTypeSchema(typeName, file, false)
14311431
if err != nil {
1432-
return nil, nil, err
1432+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14331433
}
14341434

14351435
if len(schema.Type) > 0 && schema.Type[0] == OBJECT {
@@ -1451,7 +1451,7 @@ func (parser *Parser) parseStructField(file *ast.File, field *ast.Field) (map[st
14511451

14521452
schema, err := ps.CustomSchema()
14531453
if err != nil {
1454-
return nil, nil, err
1454+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14551455
}
14561456

14571457
if schema == nil {
@@ -1465,20 +1465,20 @@ func (parser *Parser) parseStructField(file *ast.File, field *ast.Field) (map[st
14651465
}
14661466

14671467
if err != nil {
1468-
return nil, nil, err
1468+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14691469
}
14701470
}
14711471

14721472
err = ps.ComplementSchema(schema)
14731473
if err != nil {
1474-
return nil, nil, err
1474+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14751475
}
14761476

14771477
var tagRequired []string
14781478

14791479
required, err := ps.IsRequired()
14801480
if err != nil {
1481-
return nil, nil, err
1481+
return nil, nil, fmt.Errorf("%s: %w", fieldName, err)
14821482
}
14831483

14841484
if required {

0 commit comments

Comments
 (0)
Please sign in to comment.