private static void InterfaceDependsClosure(NamedTypeSymbol type, HashSet <Symbol> partialClosure) { type = type.OriginalDefinition; if (partialClosure.Add(type)) { foreach (var bt in type.GetDeclaredInterfaces(null)) { InterfaceDependsClosure(bt, partialClosure); // containment is not interesting for interfaces as they cannot nest in C# } } }
internal sealed override ImmutableArray <NamedTypeSymbol> GetDeclaredInterfaces(ConsList <TypeSymbol> basesBeingResolved) { return(_unbound ? ImmutableArray <NamedTypeSymbol> .Empty : Map.SubstituteNamedTypes(OriginalDefinition.GetDeclaredInterfaces(basesBeingResolved))); }