Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LabelExpression.cs
Go to the documentation of this file.
2
4
5[DebuggerTypeProxy(typeof(LabelExpressionProxy))]
6public sealed class LabelExpression : Expression
7{
8 public sealed override Type Type => Target.Type;
9
10 public sealed override ExpressionType NodeType => ExpressionType.Label;
11
12 public LabelTarget Target { get; }
13
14 public Expression? DefaultValue { get; }
15
16 internal LabelExpression(LabelTarget label, Expression defaultValue)
17 {
18 Target = label;
19 DefaultValue = defaultValue;
20 }
21
22 protected internal override Expression Accept(ExpressionVisitor visitor)
23 {
24 return visitor.VisitLabel(this);
25 }
26
27 public LabelExpression Update(LabelTarget target, Expression? defaultValue)
28 {
29 if (target == Target && defaultValue == DefaultValue)
30 {
31 return this;
32 }
33 return Expression.Label(target, defaultValue);
34 }
35}
virtual Expression VisitLabel(LabelExpression node)
static LabelExpression Label(LabelTarget target)
LabelExpression Update(LabelTarget target, Expression? defaultValue)
override Expression Accept(ExpressionVisitor visitor)
LabelExpression(LabelTarget label, Expression defaultValue)