private bool Equals(ClassOrStructSymbol other) { return(base.Equals(other) && Equals(BaseType, other.BaseType) && BaseInterfaces.Length == other.BaseInterfaces.Length && BaseInterfaces.Zip(other.BaseInterfaces, (x, y) => x.Equals(y)).All(x => x)); }
internal StructSymbol(StructTypeSyntax syntax, Symbol parent, ClassOrStructSymbol baseType, ImmutableArray <InterfaceSymbol> baseInterfaces) : base(SymbolKind.Struct, (syntax.Name != null) ? syntax.Name.Text : "<anonymous struct>", parent, baseType, baseInterfaces) { Syntax = syntax; }
internal ClassSymbol(ClassTypeSyntax syntax, Symbol parent, ClassOrStructSymbol baseType, ImmutableArray <InterfaceSymbol> baseInterfaces, Binder binder) : base(SymbolKind.Class, syntax.Name.Text, parent, baseType, baseInterfaces) { Syntax = syntax; Binder = binder; }
internal ClassOrStructSymbol(SymbolKind kind, string name, Symbol parent, ClassOrStructSymbol baseType, ImmutableArray <InterfaceSymbol> baseInterfaces) : base(kind, name, string.Empty, parent) { BaseType = baseType; BaseInterfaces = baseInterfaces; }