Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnUnpackStatement C# (CSharp) Метод

OnUnpackStatement() публичный Метод

public OnUnpackStatement ( Boo.Lang.Compiler.Ast.UnpackStatement node ) : void
node Boo.Lang.Compiler.Ast.UnpackStatement
Результат void
        public override void OnUnpackStatement(UnpackStatement node)
        {
            Visit(node.Expression);

            node.Expression = GetCorrectIterator(node.Expression);

            IType defaultDeclarationType = GetEnumeratorItemType(GetExpressionType(node.Expression));
            foreach (Declaration d in node.Declarations)
            {
                bool declareNewVariable = d.Type != null;

                GetDeclarationType(defaultDeclarationType, d);
                if (declareNewVariable)
                {
                    AssertUniqueLocal(d);
                }
                else
                {
                    IEntity entity = TryToResolveName(d.Name);
                    if (null != entity)
                    {
                        Bind(d, entity);
                        AssertLValue(d, entity);
                        continue;
                    }
                }
                DeclareLocal(d, false);
            }
        }
ProcessMethodBodies