blob: 0de3e33919d1e7193c0d601c0968096f3f18de4e [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library dart2js.js_emitter.sorter;
import '../elements/entities.dart';
/// Sorting strategy for libraries, classes and members.
abstract class Sorter {
/// Returns a sorted list of [libraries].
Iterable<LibraryEntity> sortLibraries(Iterable<LibraryEntity> libraries);
/// Returns a sorted list of [classes].
Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes);
/// Returns a sorted list of [members].
Iterable<T> sortMembers<T extends MemberEntity>(Iterable<T> members);
int compareLibrariesByLocation(LibraryEntity a, LibraryEntity b);
int compareClassesByLocation(ClassEntity a, ClassEntity b);
int compareMembersByLocation(MemberEntity a, MemberEntity b);
}