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

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

Issue 1011403003: cps-ir: Set runtime type information for new objects that require it. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 8017ba65f47139a2866f32c6084ffe7b5592055c..be7db0c1687efbdbba56524c27549969fc460504 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
@@ -510,8 +510,13 @@ class Builder implements cps_ir.Visitor<Node> {
Statement visitInvokeConstructor(cps_ir.InvokeConstructor node) {
List<Expression> arguments = translateArguments(node.arguments);
- Expression invoke =
- new InvokeConstructor(node.type, node.target, node.selector, arguments);
+ List<Expression> typeArguments = translateArguments(node.typeArguments);
+ Expression invoke = new InvokeConstructor(
+ node.type,
+ node.target,
+ node.selector,
+ arguments,
+ typeArguments);
return continueWithExpression(node.continuation, invoke);
}
@@ -646,4 +651,11 @@ class Builder implements cps_ir.Visitor<Node> {
Expression visitReadTypeVariable(cps_ir.ReadTypeVariable node) {
return new ReadTypeVariable(node.variable, getVariableUse(node.target));
}
+
+ @override
+ Node visitTypeExpression(cps_ir.TypeExpression node) {
+ return new TypeExpression(
+ node.dartType,
+ node.arguments.map(getVariableUse).toList());
+ }
}

Powered by Google App Engine
This is Rietveld 408576698