44 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|