public override void SubstituteDef(IRVariable variable, IRExpression expression) { if (expression is IRVariable) { if (ReferenceEquals(Destination, variable)) { Destination = expression.CloneComplete(); } else { Destination.Substitute(variable, expression); } Defs.Clear(); Defs.UnionWith(Destination.GetAllVariables()); } }