Ejemplo n.º 1
0
            public override SyntaxList <StatementSyntax> VisitForEachBlock(VBSyntax.ForEachBlockSyntax node)
            {
                var stmt = node.ForEachStatement;

                TypeSyntax  type = null;
                SyntaxToken id;

                if (stmt.ControlVariable is VBSyntax.VariableDeclaratorSyntax)
                {
                    var v           = (VBSyntax.VariableDeclaratorSyntax)stmt.ControlVariable;
                    var declaration = CommonConversions.SplitVariableDeclarations(v).Values.Single();
                    type = declaration.Type;
                    id   = declaration.Variables[0].Identifier;
                }
                else
                {
                    var v = (IdentifierNameSyntax)stmt.ControlVariable.Accept(_nodesVisitor);
                    id   = v.Identifier;
                    type = SyntaxFactory.ParseTypeName("var");
                }

                var block = SyntaxFactory.Block(node.Statements.SelectMany(s => s.Accept(CommentConvertingVisitor)));

                return(SingleStatement(SyntaxFactory.ForEachStatement(
                                           type,
                                           id,
                                           (ExpressionSyntax)stmt.Expression.Accept(_nodesVisitor),
                                           block.UnpackNonNestedBlock()
                                           )));
            }
Ejemplo n.º 2
0
 public override SyntaxList <StatementSyntax> VisitForEachBlock(VBSyntax.ForEachBlockSyntax node) => AddLocalVariables(node);
Ejemplo n.º 3
0
 public override Task <SyntaxList <StatementSyntax> > VisitForEachBlock(VBSyntax.ForEachBlockSyntax node) => AddLocalVariablesAsync(node, VBasic.SyntaxKind.ForKeyword, true);