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);
        }