Skip to content

Commit 3c91a1d

Browse files
authored
Merge pull request #452 from microsoft/dm/fixv2cycles
Fix to inline schemas for v2 output also
2 parents 3516127 + e1ecbce commit 3c91a1d

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/Microsoft.OpenApi/Models/OpenApiSchema.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -442,13 +442,25 @@ internal void SerializeAsV2(
442442
throw Error.ArgumentNull(nameof(writer));
443443
}
444444

445-
446-
if (Reference != null && writer.GetSettings().ReferenceInline != ReferenceInlineSetting.InlineLocalReferences)
445+
if (Reference != null)
447446
{
448-
Reference.SerializeAsV2(writer);
449-
return;
447+
var settings = writer.GetSettings();
448+
if (settings.ReferenceInline != ReferenceInlineSetting.InlineLocalReferences)
449+
{
450+
Reference.SerializeAsV2(writer);
451+
return;
452+
}
453+
454+
// If Loop is detected then just Serialize as a reference.
455+
if (!settings.LoopDetector.PushLoop<OpenApiSchema>(this))
456+
{
457+
settings.LoopDetector.SaveLoop(this);
458+
Reference.SerializeAsV3(writer);
459+
return;
460+
}
450461
}
451462

463+
452464
if (parentRequiredProperties == null)
453465
{
454466
parentRequiredProperties = new HashSet<string>();

0 commit comments

Comments
 (0)