public TupleErrorFieldSymbol( NamedTypeSymbol container, string name, int tupleElementIndex, Location location, TypeSymbol type, DiagnosticInfo useSiteDiagnosticInfo, bool isImplicitlyDeclared, TupleErrorFieldSymbol correspondingDefaultFieldOpt) : base(container, name, isPublic:true, isReadOnly:false, isStatic:false) { Debug.Assert(name != null); _type = type; _locations = location == null ? ImmutableArray<Location>.Empty : ImmutableArray.Create(location); _useSiteDiagnosticInfo = useSiteDiagnosticInfo; _tupleElementIndex = (object)correspondingDefaultFieldOpt == null ? tupleElementIndex << 1 : (tupleElementIndex << 1) + 1; _isImplicitlyDeclared = isImplicitlyDeclared; Debug.Assert((correspondingDefaultFieldOpt == null) == this.IsDefaultTupleElement); Debug.Assert(correspondingDefaultFieldOpt == null || correspondingDefaultFieldOpt.IsDefaultTupleElement); _correspondingDefaultField = correspondingDefaultFieldOpt ?? this; }
public bool Equals(TupleErrorFieldSymbol other) { if ((object)other == this) { return true; } return (object)other != null && _tupleElementIndex == other._tupleElementIndex && ContainingType == other.ContainingType; }