protected override Expression VisitTemporaryVariableScope(TemporaryVariableScopeExpression node) { ParameterExpression previousTemp; if (!_replacements.TryGetValue(node.Variable, out previousTemp)) { previousTemp = null; } var newTemp = GetTemp(node.Variable); _replacements[node.Variable] = newTemp; var result = Visit(node.Body); _replacements[node.Variable] = previousTemp; _avaialbleTemps[node.Variable.Type].Enqueue(newTemp); return(result); }
protected virtual Expression VisitTemporaryVariableScope(TemporaryVariableScopeExpression node) => base.VisitExtension(node);