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

Unified Diff: pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart

Issue 1142383005: Refactor StatementRewriter: Extract method for rewriting a list left-to-right. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Change comment. Created 5 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
diff --git a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
index 643aeb23c285b5a6e919b9dc0ff315188abad885..7b79cfd67b77b7e0adf254554efaefb6ae54b21d 100644
--- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
+++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
@@ -343,41 +343,38 @@ class StatementRewriter extends Transformer implements Pass {
return node;
}
- Expression visitInvokeStatic(InvokeStatic node) {
- // Process arguments right-to-left, the opposite of evaluation order.
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
+ /// Process nodes right-to-left, the opposite of evaluation order in the case
+ /// of argument lists..
+ void _rewriteList(List<Node> nodes) {
+ for (int i = nodes.length - 1; i >= 0; --i) {
+ nodes[i] = visitExpression(nodes[i]);
}
+ }
+
+ Expression visitInvokeStatic(InvokeStatic node) {
+ _rewriteList(node.arguments);
return node;
}
Expression visitInvokeMethod(InvokeMethod node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
node.receiver = visitExpression(node.receiver);
return node;
}
Expression visitInvokeMethodDirectly(InvokeMethodDirectly node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
node.receiver = visitExpression(node.receiver);
return node;
}
Expression visitInvokeConstructor(InvokeConstructor node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
return node;
}
Expression visitConcatenateStrings(ConcatenateStrings node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
return node;
}
@@ -561,10 +558,7 @@ class StatementRewriter extends Transformer implements Pass {
}
Expression visitLiteralList(LiteralList node) {
- // Process values right-to-left, the opposite of evaluation order.
- for (int i = node.values.length - 1; i >= 0; --i) {
- node.values[i] = visitExpression(node.values[i]);
- }
+ _rewriteList(node.values);
return node;
}
@@ -607,9 +601,7 @@ class StatementRewriter extends Transformer implements Pass {
}
Expression visitCreateInstance(CreateInstance node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
return node;
}
@@ -624,16 +616,12 @@ class StatementRewriter extends Transformer implements Pass {
}
Expression visitTypeExpression(TypeExpression node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
return node;
}
Expression visitCreateInvocationMirror(CreateInvocationMirror node) {
- for (int i = node.arguments.length - 1; i >= 0; --i) {
- node.arguments[i] = visitExpression(node.arguments[i]);
- }
+ _rewriteList(node.arguments);
return node;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698