Index: pkg/compiler/lib/src/kernel/fall_through_visitor.dart |
diff --git a/pkg/compiler/lib/src/kernel/fall_through_visitor.dart b/pkg/compiler/lib/src/kernel/fall_through_visitor.dart |
deleted file mode 100644 |
index cd747082b08d94c2a578e9fd32a74f3330c36208..0000000000000000000000000000000000000000 |
--- a/pkg/compiler/lib/src/kernel/fall_through_visitor.dart |
+++ /dev/null |
@@ -1,99 +0,0 @@ |
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE.md file. |
- |
-import 'package:kernel/ast.dart' |
- show |
- AssertStatement, |
- Block, |
- BreakStatement, |
- Catch, |
- ContinueSwitchStatement, |
- DoStatement, |
- EmptyStatement, |
- ExpressionStatement, |
- ForInStatement, |
- ForStatement, |
- FunctionDeclaration, |
- IfStatement, |
- InvalidStatement, |
- LabeledStatement, |
- ReturnStatement, |
- Statement, |
- StatementVisitor, |
- SwitchStatement, |
- Throw, |
- TryCatch, |
- TryFinally, |
- VariableDeclaration, |
- WhileStatement, |
- YieldStatement; |
- |
-/// Returns true if [node] would let execution reach the next node (aka |
-/// fall-through in switch cases). |
-bool fallsThrough(Statement node) => node.accept(const FallThroughVisitor()); |
- |
-/// Visitor implementing [computeFallThrough]. |
-class FallThroughVisitor implements StatementVisitor<bool> { |
- const FallThroughVisitor(); |
- |
- bool defaultStatement(Statement node) => throw "Not implemented."; |
- |
- bool visitInvalidStatement(InvalidStatement node) => false; |
- |
- bool visitExpressionStatement(ExpressionStatement node) { |
- return node.expression is! Throw; |
- } |
- |
- bool visitBlock(Block node) { |
- for (Statement statement in node.statements) { |
- if (!statement.accept(this)) return false; |
- } |
- return true; |
- } |
- |
- bool visitEmptyStatement(EmptyStatement node) => true; |
- |
- bool visitAssertStatement(AssertStatement node) => true; |
- |
- bool visitLabeledStatement(LabeledStatement node) => true; |
- |
- bool visitBreakStatement(BreakStatement node) => false; |
- |
- bool visitWhileStatement(WhileStatement node) => true; |
- |
- bool visitDoStatement(DoStatement node) => node.body.accept(this); |
- |
- bool visitForStatement(ForStatement node) => true; |
- |
- bool visitForInStatement(ForInStatement node) => true; |
- |
- bool visitSwitchStatement(SwitchStatement node) => true; |
- |
- bool visitContinueSwitchStatement(ContinueSwitchStatement node) => false; |
- |
- bool visitIfStatement(IfStatement node) { |
- if (node.then == null || node.otherwise == null) return true; |
- return node.then.accept(this) || node.otherwise.accept(this); |
- } |
- |
- bool visitReturnStatement(ReturnStatement node) => false; |
- |
- bool visitTryCatch(TryCatch node) { |
- if (node.body.accept(this)) return true; |
- for (Catch catchNode in node.catches) { |
- if (catchNode.body.accept(this)) return true; |
- } |
- return false; |
- } |
- |
- bool visitTryFinally(TryFinally node) { |
- return node.body.accept(this) && node.finalizer.accept(this); |
- } |
- |
- bool visitYieldStatement(YieldStatement node) => true; |
- |
- bool visitVariableDeclaration(VariableDeclaration node) => true; |
- |
- bool visitFunctionDeclaration(FunctionDeclaration node) => true; |
-} |