Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Side by Side Diff: lib/compiler/implementation/tree/nodes.dart

Issue 10091028: Fix type warnings and a few other warnings, and probably even an error. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 interface Visitor<R> { 5 interface Visitor<R> {
6 R visitBlock(Block node); 6 R visitBlock(Block node);
7 R visitBreakStatement(BreakStatement node); 7 R visitBreakStatement(BreakStatement node);
8 R visitCascade(Cascade node); 8 R visitCascade(Cascade node);
9 R visitCascadeReceiver(CascadeReceiver node); 9 R visitCascadeReceiver(CascadeReceiver node);
10 R visitCatchBlock(CatchBlock node); 10 R visitCatchBlock(CatchBlock node);
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 return statements.getEndToken(); 1365 return statements.getEndToken();
1366 } 1366 }
1367 } 1367 }
1368 1368
1369 Link<Token> caseKeywords() { 1369 Link<Token> caseKeywords() {
1370 Token token = startToken; 1370 Token token = startToken;
1371 if (label !== null) { 1371 if (label !== null) {
1372 // Skip past the label: <Identifier> ':'. 1372 // Skip past the label: <Identifier> ':'.
1373 token = token.next.next; 1373 token = token.next.next;
1374 } 1374 }
1375 Link<Token> recursiveGetCases(Token token, Link<Expression> expressions) { 1375 LinkBuilder<Token> builder = new LinkBuilder<Token>();
1376 if (token.stringValue === 'case') { 1376 Link<Expression> link = expressions.nodes;
1377 Token colon = expressions.head.getEndToken().next; 1377 while (token.stringValue === 'case') {
1378 return new Link<Token>(token, 1378 assert(token.next === link.head.getBeginToken(0));
1379 recursiveGetCases(colon.next, expressions.tail)); 1379 builder.addLast(token);
1380 } 1380 Token colon = link.head.getEndToken().next;
1381 return const EmptyLink<Token>(); 1381 token = colon.next;
1382 link = link.tail;
1382 } 1383 }
1383 return recursiveGetCases(token, expressions.nodes); 1384 return builder.toLink();
1384 } 1385 }
1385 } 1386 }
1386 1387
1387 class GotoStatement extends Statement { 1388 class GotoStatement extends Statement {
1388 final Identifier target; 1389 final Identifier target;
1389 final Token keywordToken; 1390 final Token keywordToken;
1390 final Token semicolonToken; 1391 final Token semicolonToken;
1391 1392
1392 GotoStatement(this.target, this.keywordToken, this.semicolonToken); 1393 GotoStatement(this.target, this.keywordToken, this.semicolonToken);
1393 1394
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1561 1562
1562 Token getBeginToken() => tryKeyword; 1563 Token getBeginToken() => tryKeyword;
1563 1564
1564 Token getEndToken() { 1565 Token getEndToken() {
1565 if (finallyBlock !== null) return finallyBlock.getEndToken(); 1566 if (finallyBlock !== null) return finallyBlock.getEndToken();
1566 if (!catchBlocks.isEmpty()) return catchBlocks.getEndToken(); 1567 if (!catchBlocks.isEmpty()) return catchBlocks.getEndToken();
1567 return tryBlock.getEndToken(); 1568 return tryBlock.getEndToken();
1568 } 1569 }
1569 } 1570 }
1570 1571
1571 class Cascade extends Node { 1572 class Cascade extends Expression {
1572 final Node expression; 1573 final Expression expression;
1573 Cascade(this.expression); 1574 Cascade(this.expression);
1574 1575
1575 Cascade asCascade() => this; 1576 Cascade asCascade() => this;
1576 accept(Visitor visitor) => visitor.visitCascade(this); 1577 accept(Visitor visitor) => visitor.visitCascade(this);
1577 1578
1578 void visitChildren(Visitor visitor) { 1579 void visitChildren(Visitor visitor) {
1579 expression.accept(visitor); 1580 expression.accept(visitor);
1580 } 1581 }
1581 1582
1582 Token getBeginToken() => expression.getBeginToken(); 1583 Token getBeginToken() => expression.getBeginToken();
1583 1584
1584 Token getEndToken() => expression.getEndToken(); 1585 Token getEndToken() => expression.getEndToken();
1585 } 1586 }
1586 1587
1587 class CascadeReceiver extends Node { 1588 class CascadeReceiver extends Expression {
1588 final Node expression; 1589 final Expression expression;
1589 final Token cascadeOperator; 1590 final Token cascadeOperator;
1590 CascadeReceiver(this.expression, this.cascadeOperator); 1591 CascadeReceiver(this.expression, this.cascadeOperator);
1591 1592
1592 CascadeReceiver asCascadeReceiver() => this; 1593 CascadeReceiver asCascadeReceiver() => this;
1593 accept(Visitor visitor) => visitor.visitCascadeReceiver(this); 1594 accept(Visitor visitor) => visitor.visitCascadeReceiver(this);
1594 1595
1595 void visitChildren(Visitor visitor) { 1596 void visitChildren(Visitor visitor) {
1596 expression.accept(visitor); 1597 expression.accept(visitor);
1597 } 1598 }
1598 1599
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1680 * argument). 1681 * argument).
1681 * 1682 *
1682 * TODO(ahe): This method is controversial, the team needs to discuss 1683 * TODO(ahe): This method is controversial, the team needs to discuss
1683 * if top-level methods are acceptable and what naming conventions to 1684 * if top-level methods are acceptable and what naming conventions to
1684 * use. 1685 * use.
1685 */ 1686 */
1686 initializerDo(Node node, f(Node node)) { 1687 initializerDo(Node node, f(Node node)) {
1687 SendSet send = node.asSendSet(); 1688 SendSet send = node.asSendSet();
1688 if (send !== null) return f(send.arguments.head); 1689 if (send !== null) return f(send.arguments.head);
1689 } 1690 }
OLDNEW
« no previous file with comments | « lib/compiler/implementation/ssa/tracer.dart ('k') | lib/compiler/implementation/tree/unparser.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698