public void TestRefOp() { Method <int> f = new Method <int>(); Var a = new Var <int>(); a.Assign(Constant(5)).Load(f); RefVar b = new RefVar(a); b.RefAssign(Constant(3)).Load(f); Var c = new Var <int>(); c.Assign(Constant(15)).Load(f); b.Assign(GetRefByVar(c)).Load(f); b.RefAssign(Constant(5)).Load(f); Return(Add(a, c)).Load(f); f.Create(); int val = f[null]; Assert.AreEqual(val, 8); }
public OpRefAssign(RefVar a, ILOp b) { this.Assignee = a; this.Assigned = b; // b is assigned to a // a is the assignee }
public void TestRef() { Method <int> f = new Method <int>(); Var a = new Var <int>(); a.Assign(Constant(5)).Load(f); RefVar b = new RefVar(a); b.RefAssign(Constant(3)).Load(f); Return(a).Load(f); f.Create(); int val = f[null]; Assert.AreEqual(val, 3); }