Beispiel #1
0
 public virtual void VisitAssign(BoundAssignEx x)
 {
     Accept(x.Target);
     Accept(x.Value);
 }
 public virtual void VisitAssign(BoundAssignEx x)
 {
     Accept(x.Target);
     Accept(x.Value);
 }
 public virtual TResult VisitAssign(BoundAssignEx x) => DefaultVisitOperation(x);
Beispiel #4
0
        public override void VisitAssign(BoundAssignEx x)
        {
            Debug.Assert(x.Target.Access.IsWrite);
            Debug.Assert(x.Value.Access.IsRead);

            Accept(x.Value);

            // keep WriteRef flag
            var targetaccess = BoundAccess.Write;
            if (x.Target.Access.IsWriteRef)
                targetaccess = targetaccess.WithWriteRef(0);

            // new target access with resolved target type
            Visit(x.Target, targetaccess.WithWrite(x.Value.TypeRefMask));

            //
            x.TypeRefMask = x.Value.TypeRefMask;
        }