public override void VisitRefArgument <TExpression>(IRefArgument <TExpression> refArgument) { Value = new Argument() { RefArgument = new RefArgumentFactory(refArgument).Value }; }
public static void VisitRefArgumentChildren<TExpression>( IRefArgument<TExpression> refArgument, IGenericExpressionVisitor visitor) where TExpression : IExpression { VisitIfNotNull(refArgument.Expression, visitor); }
public override void Visit(IRefArgument refArgument) { if (Process(refArgument)) { visitor.Visit(refArgument); } base.Visit(refArgument); }
/// <summary> /// /// </summary> /// <param name="refArgument"></param> public RefArgument(IRefArgument refArgument) : base(refArgument) { this.expression = refArgument.Expression; }
public virtual void onASTElement(IRefArgument refArgument) { }
public void Visit(IRefArgument refArgument) { this.traverser.Traverse(refArgument); }
public void Visit(IRefArgument refArgument) { Contract.Requires(refArgument != null); throw new NotImplementedException(); }
public override void Visit(IRefArgument refArgument) { if(Process(refArgument)){visitor.Visit(refArgument);} base.Visit(refArgument); }
/// <summary> /// Traverses the ref argument expression. /// </summary> public void Traverse(IRefArgument refArgument) { Contract.Requires(refArgument != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(refArgument); if (this.StopTraversal) return; this.TraverseChildren(refArgument); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(refArgument); }
public override void TraverseChildren(IRefArgument refArgument) { base.TraverseChildren(refArgument); ((RefArgument)refArgument).Type = refArgument.Expression.Type; }
public void Visit(IRefArgument refArgument) { this.result = this.copier.Copy(refArgument); }
public override void Visit(IRefArgument refArgument) { allElements.Add(new InvokInfo(Traverser, "IRefArgument", refArgument)); }
/// <summary> /// Rewrites the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public virtual IExpression Rewrite(IRefArgument refArgument) { return refArgument; }
/// <summary> /// Rewrites the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public virtual IExpression Rewrite(IRefArgument refArgument) { var mutableRefArgument = refArgument as RefArgument; if (mutableRefArgument == null) return refArgument; this.RewriteChildren(mutableRefArgument); return mutableRefArgument; }
/// <summary> /// Generates IL for the specified ref argument. /// </summary> /// <param name="refArgument">The ref argument.</param> public override void TraverseChildren(IRefArgument refArgument) { this.LoadAddressOf(refArgument.Expression, null); }
/// <summary> /// Visits the specified ref argument. /// </summary> /// <param name="refArgument">The ref argument.</param> public override void Visit(IRefArgument refArgument) { RefArgument mutableRefArgument = refArgument as RefArgument; if (alwaysMakeACopy || mutableRefArgument == null) mutableRefArgument = new RefArgument(refArgument); this.resultExpression = this.myCodeMutator.Visit(mutableRefArgument); }
/// <summary> /// Returns a shallow copy of the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public RefArgument Copy(IRefArgument refArgument) { return new RefArgument(refArgument); }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public virtual void Visit(IRefArgument refArgument) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(refArgument); this.Visit(refArgument.Expression); //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not to decrease this.path.Count. this.path.Pop(); }
/// <summary> /// Returns a shallow copy of the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public RefArgument Copy(IRefArgument refArgument) { Contract.Requires(refArgument != null); Contract.Ensures(Contract.Result<RefArgument>() != null); return new RefArgument(refArgument); }
public void Visit(IRefArgument refArgument) { this.result = this.rewriter.Rewrite(refArgument); }
public override void TraverseChildren(IRefArgument refArgument) { MethodEnter(refArgument); base.TraverseChildren(refArgument); MethodExit(); }
/// <summary> /// Returns a deep copy of the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public RefArgument Copy(IRefArgument refArgument) { Contract.Requires(refArgument != null); Contract.Ensures(Contract.Result<RefArgument>() != null); var mutableCopy = this.shallowCopier.Copy(refArgument); this.CopyChildren((Expression)mutableCopy); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
/// <summary> /// Performs some computation with the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public virtual void Visit(IRefArgument refArgument) { }
public virtual void VisitRefArgument <TExpression>(IRefArgument <TExpression> refArgument) where TExpression : IExpression { Visit(refArgument.Expression); }
/// <summary> /// Traverses the children of the ref argument expression. /// </summary> public virtual void TraverseChildren(IRefArgument refArgument) { Contract.Requires(refArgument != null); this.TraverseChildren((IExpression)refArgument); if (this.StopTraversal) return; this.Traverse(refArgument.Expression); }
public override void VisitRefArgument <TExpression>(IRefArgument <TExpression> refArgument) { Steps.Add(new WriteMethodParameterModifier(ParameterModifier.Ref)); Steps.Add(new WriteWhitespace()); Steps.Add(new WriteExpression <TExpression>(refArgument.Expression)); }
/// <summary> /// Performs some computation with the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public virtual void Visit(IRefArgument refArgument) { this.Visit((IExpression)refArgument); }
public void Visit(IRefArgument refArgument) { throw new NotImplementedException(); }
/// <summary> /// Visits the specified ref argument. /// </summary> /// <param name="refArgument">The ref argument.</param> public override void Visit(IRefArgument refArgument) { RefArgument mutableRefArgument = new RefArgument(refArgument); this.resultExpression = this.myCodeCopier.DeepCopy(mutableRefArgument); }
public override void TraverseChildren(IRefArgument refArgument) { base.TraverseChildren(refArgument); }
/// <summary> /// Returns a deep copy of the given ref argument expression. /// </summary> /// <param name="refArgument"></param> public RefArgument Copy(IRefArgument refArgument) { var mutableCopy = this.shallowCopier.Copy(refArgument); this.CopyChildren((Expression)mutableCopy); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
/// <summary> /// Visits the specified ref argument. /// </summary> /// <param name="refArgument">The ref argument.</param> public override void Visit(IRefArgument refArgument) { RefArgument mutableRefArgument = refArgument as RefArgument; if (mutableRefArgument == null) { this.resultExpression = refArgument; return; } this.resultExpression = this.myCodeMutator.Visit(mutableRefArgument); }