private bool Equals(StructSymbol 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, StructSymbol baseType, ImmutableArray <InterfaceSymbol> baseInterfaces, Binder binder) : base(syntax.IsClass ? SymbolKind.Class : SymbolKind.Struct, (syntax.Name != null) ? syntax.Name.Text : "<anonymous struct>", string.Empty, parent) { Syntax = syntax; BaseType = baseType; BaseInterfaces = baseInterfaces; Binder = binder; Locations = syntax.Name != null ? ImmutableArray.Create(syntax.Name.SourceRange) : ImmutableArray <SourceRange> .Empty; DeclaringSyntaxNodes = ImmutableArray.Create((SyntaxNodeBase)syntax); }