Skip to content

Commit ab91774

Browse files
committed
Merge remote-tracking branch 'origin/vnext' into dm/commandline
2 parents 9f715d4 + 3c91a1d commit ab91774

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)