예제 #1
0
파일: Copier.cs 프로젝트: riverar/devtools
 /// <summary>
 /// Visits the specified old value.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <returns></returns>
 protected virtual IExpression DeepCopy(OldValue oldValue)
 {
     oldValue.Expression = Substitute(oldValue.Expression);
       oldValue.Type = this.Substitute(oldValue.Type);
       return oldValue;
 }
예제 #2
0
파일: Copier.cs 프로젝트: riverar/devtools
 /// <summary>
 /// Visits the specified old value.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 public override void Visit(IOldValue oldValue)
 {
     OldValue mutableOldValue = new OldValue(oldValue);
     this.resultExpression = this.myCodeCopier.DeepCopy(mutableOldValue);
 }
예제 #3
0
파일: Mutator.cs 프로젝트: riverar/devtools
 /// <summary>
 /// Rewrites the children of the given old value expression.
 /// </summary>
 public virtual void RewriteChildren(OldValue oldValue)
 {
     this.RewriteChildren((Expression)oldValue);
       oldValue.Expression = this.Rewrite(oldValue.Expression);
 }
예제 #4
0
파일: Mutator.cs 프로젝트: riverar/devtools
 /// <summary>
 /// Visits the specified old value.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 /// <returns></returns>
 public virtual IExpression Visit(OldValue oldValue)
 {
     oldValue.Expression = Visit(oldValue.Expression);
       oldValue.Type = this.Visit(oldValue.Type);
       return oldValue;
 }
예제 #5
0
파일: Mutator.cs 프로젝트: riverar/devtools
 /// <summary>
 /// Visits the specified old value.
 /// </summary>
 /// <param name="oldValue">The old value.</param>
 public override void Visit(IOldValue oldValue)
 {
     OldValue mutableOldValue = oldValue as OldValue;
     if (alwaysMakeACopy || mutableOldValue == null) mutableOldValue = new OldValue(oldValue);
     this.resultExpression = this.myCodeMutator.Visit(mutableOldValue);
 }