public override bool Replace(Node oldValue, Node newValue) { return (Replace(Expression, oldValue, newValue, n => Expression = n) || Replace(Body, oldValue, newValue, n => Body = n) || Replace(Comparison, oldValue, newValue, n => Comparison = n) || base.Replace(oldValue, newValue)); }
public override bool Replace(Node oldValue, Node newValue) { return Replace(Expression, oldValue, newValue, n => Expression = n) || Replace(Body, oldValue, newValue, n => Body = n) || Replace(Comparison, oldValue, newValue, n => Comparison = n) || base.Replace(oldValue, newValue); }
public override void Visit(SameExpression node) { Visit(node, Types.Operations.Binary.Same); }
public override void Visit(SameExpression node) { Visit((BinaryExpression)node); }
public override void Visit(SameExpression node) { base.Visit(node); node.ValueType = GetType(node); }
internal static mdr.ValueTypes GetType(SameExpression expression) { return Types.Operations.Binary.Same.ReturnType(expression.Left.ValueType, expression.Right.ValueType); }
private SameExpression MakeSameExpressionInternal(Expression left, Expression right) { var n = new SameExpression(MakeGuardedCast(left), MakeGuardedCast(right)); return n; }
public abstract void Visit(SameExpression node);
public override void Visit(SameExpression node) { PushLocation(node); VisitNode(node.Left); VisitNode(node.Right); Call(Types.Operations.Stack.Same, 2, 1); PopLocation(); }
private SameExpression MakeSameExpressionInternal(Expression left, Expression right) { var n = new SameExpression(MakeGuardedCast(left), MakeGuardedCast(right)); return(n); }
public override void Visit(SameExpression node) { AssignToImplicitReturn(node); }