public override void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     if (Process(getValueOfTypedReference))
     {
         visitor.Visit(getValueOfTypedReference);
     }
     base.Visit(getValueOfTypedReference);
 }
Example #2
0
        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) { }
Example #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="getValueOfTypedReference"></param>
 public GetValueOfTypedReference(IGetValueOfTypedReference getValueOfTypedReference)
     : base(getValueOfTypedReference)
 {
     this.targetType = getValueOfTypedReference.TargetType;
       this.typedReference = getValueOfTypedReference.TypedReference;
 }
Example #5
0
 public void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     Contract.Requires(getValueOfTypedReference != null);
       throw new NotImplementedException();
 }
Example #6
0
 public void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     this.traverser.Traverse(getValueOfTypedReference);
 }
Example #7
0
 /// <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);
 }
Example #8
0
 //^ 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();
 }
Example #9
0
 public virtual void onASTElement(IGetValueOfTypedReference getValueOfTypedReference)
 {
 }
 /// <summary>
 /// Rewrites the given get value of typed reference expression.
 /// </summary>
 /// <param name="getValueOfTypedReference"></param>
 public virtual IExpression Rewrite(IGetValueOfTypedReference getValueOfTypedReference)
 {
     return getValueOfTypedReference;
 }
Example #11
0
 public override void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     allElements.Add(new InvokInfo(Traverser, "IGetValueOfTypedReference", getValueOfTypedReference));
 }
Example #12
0
 /// <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);
 }
Example #14
0
 public void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     this.result = this.rewriter.Rewrite(getValueOfTypedReference);
 }
Example #15
0
 /// <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;
 }
Example #16
0
 /// <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);
 }
Example #17
0
 public void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     this.result = this.copier.Copy(getValueOfTypedReference);
 }
Example #18
0
 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();   }
Example #20
0
    /// <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;
    }
Example #21
0
 /// <summary>
 /// Performs some computation with the given get value of typed reference expression.
 /// </summary>
 /// <param name="getValueOfTypedReference"></param>
 public virtual void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
 }
Example #22
0
    /// <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);
    }
Example #23
0
 /// <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)
 {
 }
Example #25
0
 /// <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);
 }
Example #26
0
 /// <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);
 }
Example #27
0
 public void Visit(IGetValueOfTypedReference getValueOfTypedReference)
 {
     throw new NotImplementedException();
 }
Example #28
0
 /// <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(")");
 }
Example #30
0
 /// <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);
 }
Example #31
0
 public override void TraverseChildren(IGetValueOfTypedReference getValueOfTypedReference)
 {
     MethodEnter(getValueOfTypedReference);
     base.TraverseChildren(getValueOfTypedReference);
     MethodExit();
 }
Example #32
0
 /// <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);
 }