bool CheckEqualAssign (Expression t) { if (source is Assign) { Assign a = (Assign) source; if (t.Equals (a.Target)) return true; return a is SimpleAssign && ((SimpleAssign) a).CheckEqualAssign (t); } return t.Equals (source); }