Beispiel #1
0
 /// <summary>
 /// Visits the specified out argument.
 /// </summary>
 /// <param name="outArgument">The out argument.</param>
 /// <returns></returns>
 protected virtual IExpression DeepCopy(OutArgument outArgument)
 {
     outArgument.Expression = (ITargetExpression)Substitute(outArgument.Expression);
       outArgument.Type = this.Substitute(outArgument.Type);
       return outArgument;
 }
Beispiel #2
0
 /// <summary>
 /// Visits the specified out argument.
 /// </summary>
 /// <param name="outArgument">The out argument.</param>
 public override void Visit(IOutArgument outArgument)
 {
     OutArgument mutableOutArgument = new OutArgument(outArgument);
     this.resultExpression = this.myCodeCopier.DeepCopy(mutableOutArgument);
 }
Beispiel #3
0
 /// <summary>
 /// Rewrites the children of the given out argument expression.
 /// </summary>
 public virtual void RewriteChildren(OutArgument outArgument)
 {
     this.RewriteChildren((Expression)outArgument);
       outArgument.Expression = (ITargetExpression)this.Rewrite((TargetExpression)outArgument.Expression);
 }
Beispiel #4
0
 /// <summary>
 /// Visits the specified out argument.
 /// </summary>
 /// <param name="outArgument">The out argument.</param>
 /// <returns></returns>
 public virtual IExpression Visit(OutArgument outArgument)
 {
     outArgument.Expression = Visit(outArgument.Expression);
       outArgument.Type = this.Visit(outArgument.Type);
       return outArgument;
 }
Beispiel #5
0
 /// <summary>
 /// Visits the specified out argument.
 /// </summary>
 /// <param name="outArgument">The out argument.</param>
 public override void Visit(IOutArgument outArgument)
 {
     OutArgument mutableOutArgument = outArgument as OutArgument;
     if (alwaysMakeACopy || mutableOutArgument == null) mutableOutArgument = new OutArgument(outArgument);
     this.resultExpression = this.myCodeMutator.Visit(mutableOutArgument);
 }