public override void ProcessType(TypeDefinition type) { if (!Annotations.IsMarked(type)) { LinkContext.AddLinkedAwayType(type); } if (type.HasInterfaces) { foreach (var iface in type.Interfaces) { if (Annotations.IsMarked(iface)) { continue; } // This interface might be removed, so save it if (!ProtocolImplementations.TryGetValue(type, out var list)) { ProtocolImplementations [type] = list = new List <TypeDefinition> (); } list.Add(iface.InterfaceType.Resolve()); } } }