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

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

Issue 1616143003: Lower map literals to constructor or function calls in builder (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library tree_ir.optimization.statement_rewriter; 5 library tree_ir.optimization.statement_rewriter;
6 6
7 import 'optimization.dart' show Pass; 7 import 'optimization.dart' show Pass;
8 import '../tree_ir_nodes.dart'; 8 import '../tree_ir_nodes.dart';
9 import '../../io/source_information.dart'; 9 import '../../io/source_information.dart';
10 import '../../elements/elements.dart'; 10 import '../../elements/elements.dart';
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 730
731 Expression visitThis(This node) { 731 Expression visitThis(This node) {
732 return node; 732 return node;
733 } 733 }
734 734
735 Expression visitLiteralList(LiteralList node) { 735 Expression visitLiteralList(LiteralList node) {
736 _rewriteList(node.values); 736 _rewriteList(node.values);
737 return node; 737 return node;
738 } 738 }
739 739
740 Expression visitLiteralMap(LiteralMap node) {
741 // Process arguments right-to-left, the opposite of evaluation order.
742 for (LiteralMapEntry entry in node.entries.reversed) {
743 entry.value = visitExpression(entry.value);
744 entry.key = visitExpression(entry.key);
745 }
746 return node;
747 }
748
749 Expression visitTypeOperator(TypeOperator node) { 740 Expression visitTypeOperator(TypeOperator node) {
750 _rewriteList(node.typeArguments); 741 _rewriteList(node.typeArguments);
751 node.value = visitExpression(node.value); 742 node.value = visitExpression(node.value);
752 return node; 743 return node;
753 } 744 }
754 745
755 bool sameVariable(Expression e1, Expression e2) { 746 bool sameVariable(Expression e1, Expression e2) {
756 return e1 is VariableUse && e2 is VariableUse && e1.variable == e2.variable; 747 return e1 is VariableUse && e2 is VariableUse && e1.variable == e2.variable;
757 } 748 }
758 749
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
1349 VariableUseCallback callback; 1340 VariableUseCallback callback;
1350 1341
1351 VariableUseVisitor(this.callback); 1342 VariableUseVisitor(this.callback);
1352 1343
1353 visitVariableUse(VariableUse use) => callback(use); 1344 visitVariableUse(VariableUse use) => callback(use);
1354 1345
1355 static void visit(Expression node, VariableUseCallback callback) { 1346 static void visit(Expression node, VariableUseCallback callback) {
1356 new VariableUseVisitor(callback).visitExpression(node); 1347 new VariableUseVisitor(callback).visitExpression(node);
1357 } 1348 }
1358 } 1349 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698