Interface ILetCoercionRuntimeSemantics
Formalizes the interface of let-coercion runtime semantics.
public interface ILetCoercionRuntimeSemantics
Properties
LetCoercionSpecification
Type LetCoercionSpecification { get; }
Property Value
Methods
Analyze<TContext, TFlags>(ILetCoercionSemanticContextBuilder, ISymbolResolver, VBOperatorExpression<TContext, TFlags>, LetCoercionStackFrame, LetCoercionResult)
Builds the semantic context of a let-coercion operation involving the semantics of a specific VBType.
LetCoercionAnalysisContext Analyze<TContext, TFlags>(ILetCoercionSemanticContextBuilder builder, ISymbolResolver resolver, VBOperatorExpression<TContext, TFlags> expression, LetCoercionStackFrame frame, LetCoercionResult result) where TContext : SemanticContext<TFlags>, new() where TFlags : struct, Enum
Parameters
builderILetCoercionSemanticContextBuilderBuilds the semantic context of the conversion operation.
resolverISymbolResolverA symbol lookup service.
expressionVBOperatorExpression<TContext, TFlags>The
BoundExpressionthat is being evaluated.frameLetCoercionStackFrameThe current stack frame of the coercion operation.
resultLetCoercionResultThe result of the let-coercion operation for the current stack frame.
Returns
- LetCoercionAnalysisContext
An analysis context for this let-coercion operation.
Type Parameters
TContextThe type of semantic context of the
expressionthe let-coercion is occurring inside of.TFlagsThe type of semantic flags associated with the semantic context of the
expression.
Remarks
🧩 Analyzers (RDCore.Diagnostics and other plug-ins) perform the actual analysis of the semantic context.
EvaluateLetCoercion<TContext, TFlags>(ISymbolResolver, VBOperatorExpression<TContext, TFlags>, LetCoercionStackFrame)
Evaluates the let-coerced VBTypedValue for the specified effectiveType in the context of the specified expression.
LetCoercionResult EvaluateLetCoercion<TContext, TFlags>(ISymbolResolver resolver, VBOperatorExpression<TContext, TFlags> expression, LetCoercionStackFrame frame) where TContext : SemanticContext<TFlags>, new() where TFlags : struct, Enum
Parameters
resolverISymbolResolverA service that can resolve symbols and their values in the current context.
expressionVBOperatorExpression<TContext, TFlags>The
VBOperatorExpressionthat is being evaluated.frameLetCoercionStackFrameThe current stack frame of the coercion operation.
Returns
- LetCoercionResult
An object that encapsulates the result of the operation, including any run-time errors to be thrown.
Type Parameters
TContextTFlags