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

Unified Diff: pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart

Issue 1153603006: dart2js cps: Type casts and related changes to type propagation. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Another typo in SExpression unstrngifier Created 5 years, 6 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
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) {
« no previous file with comments | « pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart ('k') | pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698