Пример #1
0
        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);