Struct OperatorAnalysisContext<TFlags>
Encapsulates the context of an Analyze operation as the nullable results of successive operations.
public readonly record struct OperatorAnalysisContext<TFlags> : IEquatable<OperatorAnalysisContext<TFlags>> where TFlags : struct, Enum
Type Parameters
TFlagsThe specific type of semantic flags associated with the operation.
- Implements
-
IEquatable<OperatorAnalysisContext<TFlags>>
- Inherited Members
Constructors
OperatorAnalysisContext(SyntaxNodeId, DetermineOperatorEffectiveTypeResult, LetCoercionAnalysisContext, RuntimeSemanticsEvaluationResult, TFlags)
Encapsulates the context of an Analyze operation as the nullable results of successive operations.
public OperatorAnalysisContext(SyntaxNodeId NodeId, DetermineOperatorEffectiveTypeResult EffectiveTypeResult, LetCoercionAnalysisContext ValidationResults, RuntimeSemanticsEvaluationResult EvaluationResult, TFlags SemanticFlags)
Parameters
NodeIdSyntaxNodeIdThe
Identityof the associated expression node.EffectiveTypeResultDetermineOperatorEffectiveTypeResultThe outcome of determining the effective type of the operation, the first step of the evaluation process.
ValidationResultsLetCoercionAnalysisContextThe outcome of validating the operands of the operator expression, which involves let-coercion semantics and possible implicit type conversions. This is the second step of the evaluation process.
EvaluationResultRuntimeSemanticsEvaluationResultThe outcome of evaluating the result in the current execition context, which is the third and last step of the evaluation process.
SemanticFlagsTFlagsThe semantic flags associated with the operation.
Properties
EffectiveTypeResult
The outcome of determining the effective type of the operation, the first step of the evaluation process.
public DetermineOperatorEffectiveTypeResult EffectiveTypeResult { get; init; }
Property Value
EvaluationResult
The outcome of evaluating the result in the current execition context, which is the third and last step of the evaluation process.
public RuntimeSemanticsEvaluationResult EvaluationResult { get; init; }
Property Value
NodeId
The Identity of the associated expression node.
public SyntaxNodeId NodeId { get; init; }
Property Value
SemanticFlags
The semantic flags associated with the operation.
public TFlags SemanticFlags { get; init; }
Property Value
- TFlags
ValidationResults
The outcome of validating the operands of the operator expression, which involves let-coercion semantics and possible implicit type conversions. This is the second step of the evaluation process.
public LetCoercionAnalysisContext ValidationResults { get; init; }