Chromium Code Reviews| Index: lib/compiler/implementation/dart_backend/backend.dart |
| diff --git a/lib/compiler/implementation/dart_backend/backend.dart b/lib/compiler/implementation/dart_backend/backend.dart |
| index e65c90bd669691f7233abee768bbdbf5e6ead6ee..109595032fb5355aeff2f93f44dffcee14117327 100644 |
| --- a/lib/compiler/implementation/dart_backend/backend.dart |
| +++ b/lib/compiler/implementation/dart_backend/backend.dart |
| @@ -104,21 +104,10 @@ class DartBackend extends Backend { |
| renamePlaceholders(compiler, collector, renames, imports); |
| // Sort elements. |
| - compareElements(e0, e1) { |
| - compareBy(x, y, f) => f(x).compareTo(f(y)); |
| - int result = compareBy(e0, e1, (e) => e.getLibrary().uri.toString()); |
| - if (result != 0) return result; |
| - return compareBy(e0, e1, (e) => e.position().charOffset); |
| - } |
| - |
| - final sortedTopLevels = new List<Element>.from(topLevelElements); |
| - sortedTopLevels.sort(compareElements); |
| - |
| + final sortedTopLevels = sortElements(topLevelElements); |
| final sortedClassMembers = new Map<ClassElement, List<Element>>(); |
| classMembers.forEach((classElement, members) { |
| - final sortedMembers = new List<Element>.from(members); |
| - sortedMembers.sort(compareElements); |
| - sortedClassMembers[classElement] = sortedMembers; |
| + sortedClassMembers[classElement] = sortElements(members); |
| }); |
| final unparser = new Unparser.withRenamer((Node node) => renames[node]); |
| @@ -191,3 +180,21 @@ class ReferencedElementCollector extends AbstractVisitor { |
| }); |
| } |
| } |
| + |
| +compareBy(f) => (x, y) => f(x).compareTo(f(y)); |
| + |
| +List sorted(List l, comparison) { |
|
Roman
2012/08/21 12:37:39
'sortList'?
Anton Muhin
2012/08/21 12:57:42
sorted matches nicely Python, mind if I keep it th
|
| + final result = new List.from(l); |
| + result.sort(comparison); |
| + return result; |
| +} |
| + |
| +List<Element> sortElements(Collection<Element> elements) { |
| + compareElements(e0, e1) { |
| + int result = compareBy((e) => e.getLibrary().uri.toString())(e0, e1); |
| + if (result != 0) return result; |
| + return compareBy((e) => e.position().charOffset)(e0, e1); |
| + } |
| + |
| + return sorted(elements, compareElements); |
| +} |