Skip to content

Commit 424ea48

Browse files
committed
Improve accuracy of bad schemas
1 parent a8c9d8d commit 424ea48

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

lib/OpenApi.CSharp/CSharpInlineSchemas.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,16 @@ public class CSharpInlineSchemas(CSharpSchemaOptions options, DocumentRegistry d
2222
public CSharpInlineDefinition? ToInlineDataType(JsonSchema? schema)
2323
{
2424
if (schema == null) return null;
25-
return ToInlineDataType(schema.ResolveSchemaInfo());
25+
try
26+
{
27+
return ToInlineDataType(schema.ResolveSchemaInfo());
28+
}
29+
catch (Exception ex)
30+
{
31+
throw new MultipleDiagnosticException([
32+
.. ex.ToDiagnostics(documentRegistry, schema.Metadata),
33+
]);
34+
}
2635
}
2736

2837
[return: NotNullIfNotNull(nameof(schema))]

lib/OpenApiCodegen.Server.Mvc.Test/ComprehensiveTransformsShould.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,10 @@ public void Reports_diagnostics_for_bad_2_yaml()
9898
{
9999
Assert.IsType<UnableToCreateInlineSchemaDiagnostic>(diag);
100100
Assert.Equal("proj://embedded/bad.2.yaml", diag.Location.RetrievalUri.OriginalString);
101-
Assert.Equal(16, diag.Location.Range?.Start.Line);
102-
Assert.Equal(17, diag.Location.Range?.Start.Column);
101+
Assert.Equal(18, diag.Location.Range?.Start.Line);
102+
Assert.Equal(25, diag.Location.Range?.Start.Column);
103+
Assert.Equal(18, diag.Location.Range?.End.Line);
104+
Assert.Equal(55, diag.Location.Range?.End.Column);
103105
}
104106
);
105107
}

0 commit comments

Comments
 (0)