Index: lib/kernel_visitor.dart |
diff --git a/lib/kernel_visitor.dart b/lib/kernel_visitor.dart |
index c536447dce9978f57303a7aeaf4a0de0b2aa8a43..395c9b93625be12ed5a9f480e3c09409bb1c5010 100644 |
--- a/lib/kernel_visitor.dart |
+++ b/lib/kernel_visitor.dart |
@@ -176,6 +176,9 @@ import 'kernel.dart' show |
ConstructorTarget, |
Kernel; |
+import 'kernel/fall_through_visitor.dart' show |
+ fallsThrough; |
+ |
/// Translates dart2js AST nodes [Node] into Kernel IR [ir.TreeNode]. |
/// |
/// Most methods in this class have a prefix that follows these conventions: |
@@ -1042,6 +1045,14 @@ class KernelVisitor extends Object |
hasVariableDeclaration = true; |
} |
} |
+ if (statements.isEmpty || fallsThrough(statements.last)) { |
+ statements.add( |
+ new ir.ExpressionStatement( |
+ new ir.Throw( |
+ new ir.StaticInvocation( |
+ kernel.getFallThroughErrorBuilder(), |
+ new ir.Arguments.empty())))); |
+ } |
ir.Statement body; |
if (!hasVariableDeclaration && statements.length == 1) { |
body = statements.single; |