void PropagateByRefParameterChanges(Method call, IParameter[] parameters, InternalLocal[] temporaries)
{
int byRefIndex = 0;
for (int i=0; i<parameters.Length; ++i)
{
if (!parameters[i].IsByRef) continue;
SlicingExpression slice = CodeBuilder.CreateSlicing(
CodeBuilder.CreateReference(call.Parameters[0]),
i);
call.Body.Add(
CodeBuilder.CreateAssignment(
slice,
CodeBuilder.CreateReference(temporaries[byRefIndex])));
++byRefIndex;
}
}