Files
2026-08-27 10:56:38 -06:00

44 lines
1.6 KiB
C#

using System.Collections.Immutable;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.CSharp.Symbols;
internal sealed class SynthesizedPrimaryConstructorParameterBackingFieldSymbol : SynthesizedBackingFieldSymbolBase
{
public readonly ParameterSymbol ParameterSymbol;
internal override bool HasInitializer => true;
protected override IAttributeTargetSymbol AttributeOwner => this;
internal override Location ErrorLocation => ParameterSymbol.TryGetFirstLocation() ?? NoLocation.Singleton;
protected override SyntaxList<AttributeListSyntax> AttributeDeclarationSyntaxList => default(SyntaxList<AttributeListSyntax>);
public override Symbol? AssociatedSymbol => null;
public override ImmutableArray<Location> Locations => ParameterSymbol.Locations;
public override RefKind RefKind => (RefKind)0;
public override ImmutableArray<CustomModifier> RefCustomModifiers => ImmutableArray<CustomModifier>.Empty;
internal override bool HasPointerType => base.HasPointerType;
public override Symbol ContainingSymbol => ParameterSymbol.ContainingSymbol.ContainingSymbol;
public override NamedTypeSymbol ContainingType => ParameterSymbol.ContainingSymbol.ContainingType;
public SynthesizedPrimaryConstructorParameterBackingFieldSymbol(ParameterSymbol parameterSymbol, string name, bool isReadOnly)
: base(name, isReadOnly, isStatic: false)
{
ParameterSymbol = parameterSymbol;
}
internal override TypeWithAnnotations GetFieldType(ConsList<FieldSymbol> fieldsBeingBound)
{
return ParameterSymbol.TypeWithAnnotations;
}
}