Class BoundNode
A node of the bound tree (IR lowering §3.1): an expression, with what the static semantics decided of it once - what a name refers to, the plan of an operation - so that evaluating it does not decide it again.
public abstract record BoundNode : IEquatable<BoundNode>
- Inheritance
-
BoundNode
- Implements
- Derived
- Inherited Members
Remarks
A bound node keeps the expression it was bound from: its Identity and Location are what an error, a fact and the debugger are keyed by.
A binding is true of the scopes it was made in (Bind(StaticEvaluationContext, ExpressionNode, FrameLayout?)): a name is bound to the symbol it resolves to in them, which a symbol defined later can change. Whoever keeps a bound tree keeps the scopes with it, and binds the expression again when they are not the session's.
Constructors
BoundNode(ExpressionNode)
A node of the bound tree (IR lowering §3.1): an expression, with what the static semantics decided of it once - what a name refers to, the plan of an operation - so that evaluating it does not decide it again.
protected BoundNode(ExpressionNode Expression)
Parameters
ExpressionExpressionNodeThe expression this node was bound from.
Remarks
A bound node keeps the expression it was bound from: its Identity and Location are what an error, a fact and the debugger are keyed by.
A binding is true of the scopes it was made in (Bind(StaticEvaluationContext, ExpressionNode, FrameLayout?)): a name is bound to the symbol it resolves to in them, which a symbol defined later can change. Whoever keeps a bound tree keeps the scopes with it, and binds the expression again when they are not the session's.
Properties
Expression
The expression this node was bound from.
public ExpressionNode Expression { get; init; }