Index: pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
index ec566d24f2400f1c16f69c85e7d6f705c49ab00e..e128c14e4ee408b5353b32f7479ddb9c71861cc1 100644 |
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
@@ -380,6 +380,10 @@ class Builder implements cps_ir.Visitor<Node> { |
return new Rethrow(); |
} |
+ Statement visitUnreachable(cps_ir.Unreachable node) { |
+ return new Unreachable(); |
+ } |
+ |
Expression visitNonTailThrow(cps_ir.NonTailThrow node) { |
unexpectedNode(node); |
} |
@@ -415,13 +419,18 @@ class Builder implements cps_ir.Visitor<Node> { |
return Assign.makeStatement(variable, value, visit(node.body)); |
} |
- Statement visitTypeOperator(cps_ir.TypeOperator node) { |
+ Statement visitTypeCast(cps_ir.TypeCast node) { |
Expression value = getVariableUse(node.value); |
List<Expression> typeArgs = translateArguments(node.typeArguments); |
- Expression concat = |
- new TypeOperator(value, node.type, typeArgs, |
- isTypeTest: node.isTypeTest); |
- return continueWithExpression(node.continuation, concat); |
+ Expression expression = |
+ new TypeOperator(value, node.type, typeArgs, isTypeTest: false); |
+ return continueWithExpression(node.continuation, expression); |
+ } |
+ |
+ Expression visitTypeTest(cps_ir.TypeTest node) { |
+ Expression value = getVariableUse(node.value); |
+ List<Expression> typeArgs = translateArguments(node.typeArguments); |
+ return new TypeOperator(value, node.type, typeArgs, isTypeTest: true); |
} |
Statement visitInvokeConstructor(cps_ir.InvokeConstructor node) { |