internal void ReplaceLiftedLocals(IRuntimeVariables liftedLocals) {
Debug.Assert(_liftedLocals == null || liftedLocals.Count >= _liftedLocals.Count);
IRuntimeVariables oldLiftecLocals = _liftedLocals;
// Replace the list of IStrongBoxes with the new list
_liftedLocals = liftedLocals;
if (oldLiftecLocals != null) {
for (int i = 0; i < oldLiftecLocals.Count; i++) {
if (!_funcInfo.Variables[i].IsParameter && i < _liftedLocals.Count)
_liftedLocals[i] = oldLiftecLocals[i];
}
}
// Null out scope/variable states to force creation of new ones
_variables.Clear();
}