Table of Contents

Class MemberAccessFact

Namespace
RDCore.SDK.Semantics.Facts
Assembly
RDCore.SDK.dll

A member access (MS-VBAL 5.6.12), a dictionary access (MS-VBAL 5.6.14), or the access of a member that the code does not name: the default member of an object that is indexed (MS-VBAL 5.6.13), the enumeration member of the object a For Each goes through (MS-VBAL 5.4.2.4).

public sealed record MemberAccessFact : OperatorFact, IEquatable<OperatorFact>, IEquatable<MemberAccessFact>
Inheritance
MemberAccessFact
Implements
Inherited Members

Remarks

👉 Operator is Tokens.MemberAccess for a member access and a member the code does not name, and Tokens.DictionaryAccess for a dictionary access. EffectiveType is the declared type of the member, when it is known. IsValueKnown says whether the object is.

Constructors

MemberAccessFact(SyntaxNodeId, SourceLocation, string, VBType?, bool, VBErrorInfo?, string?, MemberAccessOperationSemanticFlags)

A member access (MS-VBAL 5.6.12), a dictionary access (MS-VBAL 5.6.14), or the access of a member that the code does not name: the default member of an object that is indexed (MS-VBAL 5.6.13), the enumeration member of the object a For Each goes through (MS-VBAL 5.4.2.4).

public MemberAccessFact(SyntaxNodeId Node, SourceLocation Location, string Operator, VBType? EffectiveType, bool IsValueKnown, VBErrorInfo? Error, string? Member, MemberAccessOperationSemanticFlags Flags)

Parameters

Node SyntaxNodeId

The Identity of the syntax node the operation is evaluated for.

Location SourceLocation

Where in the document the operation is.

Operator string

The operator: one of the Tokens operators.

EffectiveType VBType

The effective type of the operation, if it has one.

IsValueKnown bool

Whether every operand of the operation is known, as opposed to a value its type merely allows.

Error VBErrorInfo

The run-time error the operation raises. Only stated when the operands are known, or when their types alone guarantee it.

Member string

The name of the member that is accessed, as the code writes it or, when the code does not name it, as the class declares it; null when there is no telling which member it is (the object is not known, or is late-bound).

Flags MemberAccessOperationSemanticFlags

What is known of the access.

Remarks

👉 Operator is Tokens.MemberAccess for a member access and a member the code does not name, and Tokens.DictionaryAccess for a dictionary access. EffectiveType is the declared type of the member, when it is known. IsValueKnown says whether the object is.

Properties

Flags

What is known of the access.

public MemberAccessOperationSemanticFlags Flags { get; init; }

Property Value

MemberAccessOperationSemanticFlags

Member

The name of the member that is accessed, as the code writes it or, when the code does not name it, as the class declares it; null when there is no telling which member it is (the object is not known, or is late-bound).

public string? Member { get; init; }

Property Value

string