public TupleElementFieldSymbol( NamedTypeSymbol container, FieldSymbol underlyingField, int tupleElementIndex, ImmutableArray <Location> locations, bool isImplicitlyDeclared, TupleElementFieldSymbol?correspondingDefaultFieldOpt) : base(container, underlyingField, correspondingDefaultFieldOpt is null ? tupleElementIndex << 1 : (tupleElementIndex << 1) + 1) { Debug.Assert(container.IsTupleType); Debug.Assert(!locations.IsDefault); _locations = locations; _isImplicitlyDeclared = isImplicitlyDeclared; _correspondingDefaultField = correspondingDefaultFieldOpt ?? this; }
public TupleVirtualElementFieldSymbol( TupleTypeSymbol container, FieldSymbol underlyingField, string name, int tupleElementIndex, Location location, bool isImplicitlyDeclared, TupleElementFieldSymbol correspondingDefaultFieldOpt) : base(container, underlyingField, tupleElementIndex, location, isImplicitlyDeclared, correspondingDefaultFieldOpt) { Debug.Assert(name != null); Debug.Assert(name != underlyingField.Name || !container.UnderlyingNamedType.Equals(underlyingField.ContainingType, TypeCompareKind.IgnoreDynamicAndTupleNames), "fields that map directly to underlying should not be represented by " + nameof(TupleVirtualElementFieldSymbol)); _name = name; }
public TupleElementFieldSymbol( TupleTypeSymbol container, FieldSymbol underlyingField, int tupleElementIndex, Location location, bool isImplicitlyDeclared, TupleElementFieldSymbol correspondingDefaultFieldOpt) : base(container, underlyingField, (object)correspondingDefaultFieldOpt == null ? tupleElementIndex << 1 : (tupleElementIndex << 1) + 1) { _locations = location == null ? ImmutableArray <Location> .Empty : ImmutableArray.Create(location); _isImplicitlyDeclared = isImplicitlyDeclared; Debug.Assert((correspondingDefaultFieldOpt == null) == this.IsDefaultTupleElement); Debug.Assert(correspondingDefaultFieldOpt == null || correspondingDefaultFieldOpt.IsDefaultTupleElement); _correspondingDefaultField = correspondingDefaultFieldOpt ?? this; }
public TupleElementFieldSymbol( TupleTypeSymbol container, FieldSymbol underlyingField, int tupleElementIndex, Location location, bool isImplicitlyDeclared, TupleElementFieldSymbol correspondingDefaultFieldOpt) : base(container, underlyingField, (object)correspondingDefaultFieldOpt == null ? tupleElementIndex << 1 : (tupleElementIndex << 1) + 1) { _locations = location == null ? ImmutableArray<Location>.Empty : ImmutableArray.Create(location); _isImplicitlyDeclared = isImplicitlyDeclared; Debug.Assert((correspondingDefaultFieldOpt == null) == this.IsDefaultTupleElement); Debug.Assert(correspondingDefaultFieldOpt == null || correspondingDefaultFieldOpt.IsDefaultTupleElement); _correspondingDefaultField = correspondingDefaultFieldOpt ?? this; }