private static XElement LoadChildType(NamedTypeSymbol t) { XElement elem = new XElement("type"); elem.Add(new XAttribute("name", t.Name)); if (t.Arity > 0) { string typeParams = string.Empty; foreach (var param in t.TypeParameters) { if (typeParams.Length > 0) { typeParams += ","; } typeParams += param.Name; } elem.Add(new XAttribute("Of", typeParams)); } if (t.BaseType != null) { elem.Add(new XAttribute("base", t.BaseType.ToTestDisplayString())); } var fields = t.GetMembers().Where(m => m.Kind == SymbolKind.Field).OrderBy(f => f.Name).Cast<FieldSymbol>(); elem.Add(from f in fields select LoadField(f)); var childrenTypes = t.GetTypeMembers().OrderBy(c => c, new NameAndArityComparer()); elem.Add(from c in childrenTypes select LoadChildType(c)); return elem; }
private static XElement LoadChildType(NamedTypeSymbol t) { XElement elem = new XElement("type"); elem.Add(new XAttribute("name", t.Name)); if (t.Arity > 0) { elem.Add(new XAttribute("arity", t.Arity)); } var childrenTypes = t.GetTypeMembers().OrderBy((c) => c, new NameAndArityComparer()); elem.Add(from c in childrenTypes select LoadChildType(c)); return elem; }
public sealed override ImmutableArray <NamedTypeSymbol> GetTypeMembers() { return(_originalDefinition.GetTypeMembers().SelectAsArray((t, self) => t.AsMember(self), this)); }