public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { if (Process(getValueOfTypedReference)) { visitor.Visit(getValueOfTypedReference); } base.Visit(getValueOfTypedReference); }
public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { base.TraverseChildren(getValueOfTypedReference); var type = getValueOfTypedReference.TargetType; if (type.IsValueType) { type = Immutable.ManagedPointerType.GetManagedPointerType(type, this.host.InternFactory); } ((GetValueOfTypedReference)getValueOfTypedReference).Type = type; }
public virtual void onASTElement(IGetValueOfTypedReference getValueOfTypedReference) { }
/// <summary> /// /// </summary> /// <param name="getValueOfTypedReference"></param> public GetValueOfTypedReference(IGetValueOfTypedReference getValueOfTypedReference) : base(getValueOfTypedReference) { this.targetType = getValueOfTypedReference.TargetType; this.typedReference = getValueOfTypedReference.TypedReference; }
public void Visit(IGetValueOfTypedReference getValueOfTypedReference) { Contract.Requires(getValueOfTypedReference != null); throw new NotImplementedException(); }
public void Visit(IGetValueOfTypedReference getValueOfTypedReference) { this.traverser.Traverse(getValueOfTypedReference); }
/// <summary> /// Traverses the get value of typed reference expression. /// </summary> public void Traverse(IGetValueOfTypedReference getValueOfTypedReference) { Contract.Requires(getValueOfTypedReference != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(getValueOfTypedReference); if (this.StopTraversal) return; this.TraverseChildren(getValueOfTypedReference); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(getValueOfTypedReference); }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public virtual void Visit(IGetValueOfTypedReference getValueOfTypedReference) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(getValueOfTypedReference); this.Visit(getValueOfTypedReference.TypedReference); this.Visit(getValueOfTypedReference.TargetType); //^ 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> /// Rewrites the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public virtual IExpression Rewrite(IGetValueOfTypedReference getValueOfTypedReference) { return getValueOfTypedReference; }
public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { allElements.Add(new InvokInfo(Traverser, "IGetValueOfTypedReference", getValueOfTypedReference)); }
/// <summary> /// Generates IL for the specified get value of typed reference. /// </summary> /// <param name="getValueOfTypedReference">The get value of typed reference.</param> public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { this.Traverse(getValueOfTypedReference.TypedReference); this.generator.Emit(OperationCode.Refanyval, getValueOfTypedReference.TargetType); }
public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { if(Process(getValueOfTypedReference)){visitor.Visit(getValueOfTypedReference);} base.Visit(getValueOfTypedReference); }
public void Visit(IGetValueOfTypedReference getValueOfTypedReference) { this.result = this.rewriter.Rewrite(getValueOfTypedReference); }
/// <summary> /// Rewrites the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public virtual IExpression Rewrite(IGetValueOfTypedReference getValueOfTypedReference) { var mutableGetValueOfTypedReference = getValueOfTypedReference as GetValueOfTypedReference; if (mutableGetValueOfTypedReference == null) return getValueOfTypedReference; this.RewriteChildren(mutableGetValueOfTypedReference); return mutableGetValueOfTypedReference; }
/// <summary> /// Visits the specified get value of typed reference. /// </summary> /// <param name="getValueOfTypedReference">The get value of typed reference.</param> public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { GetValueOfTypedReference mutableGetValueOfTypedReference = getValueOfTypedReference as GetValueOfTypedReference; if (alwaysMakeACopy || mutableGetValueOfTypedReference == null) mutableGetValueOfTypedReference = new GetValueOfTypedReference(getValueOfTypedReference); this.resultExpression = this.myCodeMutator.Visit(mutableGetValueOfTypedReference); }
public void Visit(IGetValueOfTypedReference getValueOfTypedReference) { this.result = this.copier.Copy(getValueOfTypedReference); }
public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { base.TraverseChildren(getValueOfTypedReference); var type = getValueOfTypedReference.TargetType; if (type.IsValueType) type = Immutable.ManagedPointerType.GetManagedPointerType(type, this.host.InternFactory); ((GetValueOfTypedReference)getValueOfTypedReference).Type = type; }
public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { MethodEnter(getValueOfTypedReference); base.TraverseChildren(getValueOfTypedReference); MethodExit(); }
/// <summary> /// Returns a deep copy of the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public GetValueOfTypedReference Copy(IGetValueOfTypedReference getValueOfTypedReference) { Contract.Requires(getValueOfTypedReference != null); Contract.Ensures(Contract.Result<GetValueOfTypedReference>() != null); var mutableCopy = this.shallowCopier.Copy(getValueOfTypedReference); this.CopyChildren((Expression)mutableCopy); mutableCopy.TypedReference = this.Copy(mutableCopy.TypedReference); mutableCopy.TargetType = this.Copy(mutableCopy.TargetType); return mutableCopy; }
/// <summary> /// Performs some computation with the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public virtual void Visit(IGetValueOfTypedReference getValueOfTypedReference) { }
/// <summary> /// Returns a shallow copy of the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public GetValueOfTypedReference Copy(IGetValueOfTypedReference getValueOfTypedReference) { Contract.Requires(getValueOfTypedReference != null); Contract.Ensures(Contract.Result<GetValueOfTypedReference>() != null); return new GetValueOfTypedReference(getValueOfTypedReference); }
/// <summary> /// Traverses the children of the get value of typed reference expression. /// </summary> public virtual void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { Contract.Requires(getValueOfTypedReference != null); this.TraverseChildren((IExpression)getValueOfTypedReference); if (this.StopTraversal) return; this.Traverse(getValueOfTypedReference.TypedReference); if (this.StopTraversal) return; this.Traverse(getValueOfTypedReference.TargetType); }
/// <summary> /// Performs some computation with the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public virtual void Visit(IGetValueOfTypedReference getValueOfTypedReference) { this.Visit((IExpression)getValueOfTypedReference); }
/// <summary> /// Visits the specified get value of typed reference. /// </summary> /// <param name="getValueOfTypedReference">The get value of typed reference.</param> public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { GetValueOfTypedReference mutableGetValueOfTypedReference = new GetValueOfTypedReference(getValueOfTypedReference); this.resultExpression = this.myCodeCopier.DeepCopy(mutableGetValueOfTypedReference); }
public void Visit(IGetValueOfTypedReference getValueOfTypedReference) { throw new NotImplementedException(); }
/// <summary> /// Returns a deep copy of the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public GetValueOfTypedReference Copy(IGetValueOfTypedReference getValueOfTypedReference) { var mutableCopy = this.shallowCopier.Copy(getValueOfTypedReference); this.CopyChildren((Expression)mutableCopy); mutableCopy.TypedReference = this.Copy(mutableCopy.TypedReference); mutableCopy.TargetType = this.Copy(mutableCopy.TargetType); return mutableCopy; }
public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference) { this.sourceEmitterOutput.Write("__refvalue("); this.Traverse(getValueOfTypedReference.TypedReference); this.sourceEmitterOutput.Write(", "); this.PrintTypeReferenceName(getValueOfTypedReference.TargetType); this.sourceEmitterOutput.Write(")"); }
/// <summary> /// Returns a shallow copy of the given get value of typed reference expression. /// </summary> /// <param name="getValueOfTypedReference"></param> public GetValueOfTypedReference Copy(IGetValueOfTypedReference getValueOfTypedReference) { return new GetValueOfTypedReference(getValueOfTypedReference); }
/// <summary> /// Visits the specified get value of typed reference. /// </summary> /// <param name="getValueOfTypedReference">The get value of typed reference.</param> public override void Visit(IGetValueOfTypedReference getValueOfTypedReference) { GetValueOfTypedReference mutableGetValueOfTypedReference = getValueOfTypedReference as GetValueOfTypedReference; if (mutableGetValueOfTypedReference == null) { this.resultExpression = getValueOfTypedReference; return; } this.resultExpression = this.myCodeMutator.Visit(mutableGetValueOfTypedReference); }