Skip to content

Commit 7184add

Browse files
filzrevCopilot
andcommitted
chore: fix behaviors for multi-interface implemented class
Co-authored-by: Copilot <[email protected]>
1 parent 6bb6f24 commit 7184add

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/Docfx.Dotnet/ManagedReference/Resolvers/SetDerivedClass.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,21 @@ private void UpdateDerivedClassMapping(List<MetadataItem> items, Dictionary<stri
4949
var implements = item.Implements;
5050
if (implements is { Count: > 0 })
5151
{
52-
var superClass = implements[implements.Count - 1];
53-
54-
if (reference.TryGetValue(superClass, out var referenceItem))
52+
foreach (var implementedInterface in implements)
5553
{
56-
superClass = referenceItem.Definition ?? superClass;
57-
}
54+
var superClass = implementedInterface;
55+
56+
if (reference.TryGetValue(superClass, out var referenceItem))
57+
{
58+
superClass = referenceItem.Definition ?? superClass;
59+
}
5860

59-
ref var derivedClasses = ref CollectionsMarshal.GetValueRefOrAddDefault(_derivedClassMapping, superClass, out var exists);
60-
if (exists)
61-
derivedClasses.Add(item.Name);
62-
else
63-
derivedClasses = [item.Name];
61+
ref var derivedClasses = ref CollectionsMarshal.GetValueRefOrAddDefault(_derivedClassMapping, superClass, out var exists);
62+
if (exists)
63+
derivedClasses.Add(item.Name);
64+
else
65+
derivedClasses = [item.Name];
66+
}
6467
}
6568
}
6669
}

0 commit comments

Comments
 (0)