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

Unified Diff: dart/frog/leg/resolver.dart

Issue 9599013: Complete AST nodes for switch statement. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | dart/frog/leg/scanner/listener.dart » ('j') | dart/frog/leg/tree/nodes.dart » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/frog/leg/resolver.dart
diff --git a/dart/frog/leg/resolver.dart b/dart/frog/leg/resolver.dart
index 6578f587fa0656764f8bfb25f76f6a53725a961e..ff18d5b83951ede939ae74c16b943a52db227c30 100644
--- a/dart/frog/leg/resolver.dart
+++ b/dart/frog/leg/resolver.dart
@@ -1139,7 +1139,22 @@ class ResolverVisitor extends CommonResolverVisitor<Element> {
}
visitSwitchStatement(SwitchStatement node) {
- warning(node, MessageKind.GENERIC, ['switch statement is not implemented']);
+ node.expression.accept(this);
+ StatementElement element = getOrCreateStatementElement(node);
+ statementScope.enterLoop(element);
Lasse Reichstein Nielsen 2012/03/05 19:54:04 Will need modifying (switch isn't a continue targe
ahe 2012/03/05 20:07:23 Good point. I'll probably need your help figuring
+ node.cases.accept(this);
+ statementScope.exitLoop();
+ }
+
+ visitSwitchCase(SwitchCase node) {
+ // TODO(ahe): What about the label?
Lasse Reichstein Nielsen 2012/03/05 19:54:04 We will probably have to make two passed over the
ahe 2012/03/05 20:07:23 I was thinking about something similar.
+ node.expression.accept(this);
+ node.statements.accept(this);
+ }
+
+ visitDefaultCase(DefaultCase node) {
+ // TODO(ahe): What about the label?
+ node.statements.accept(this);
}
visitTryStatement(TryStatement node) {
« no previous file with comments | « no previous file | dart/frog/leg/scanner/listener.dart » ('j') | dart/frog/leg/tree/nodes.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698