mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 11:03:19 +00:00
fix options map sorting
Fixes: https://github.com/dart-lang/sdk/issues/55252 Change-Id: I2dbd0513039903ed95265d4546163f68236d88e9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/359241 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Phil Quitslund <pquitslund@google.com>
This commit is contained in:
parent
4145eeba06
commit
970582ec20
|
@ -41,7 +41,7 @@ class AnalysisOptionsMap {
|
|||
void add(Folder folder, AnalysisOptionsImpl options) {
|
||||
entries.add(OptionsMapEntry(folder, options));
|
||||
// Sort entries by (reverse) containment (for now).
|
||||
entries.sort((e1, e2) => e1.folder.contains(e2.folder.path) ? 1 : -1);
|
||||
entries.sort((e1, e2) => e2.folder.path.compareTo(e1.folder.path));
|
||||
}
|
||||
|
||||
/// Perform the given [action] on all the mapped options.
|
||||
|
|
|
@ -38,6 +38,31 @@ class AnalysisOptionsMapTest with ResourceProviderMixin {
|
|||
expect(map.getOptions(file).file, isNull);
|
||||
}
|
||||
|
||||
/// https://github.com/dart-lang/sdk/issues/55252
|
||||
test_optionsMapLookup() {
|
||||
AnalysisOptions optionsFor(String file) =>
|
||||
map.getOptions(newFile(file, ''));
|
||||
|
||||
AnalysisOptions addOptions(String folder) {
|
||||
var options = AnalysisOptionsImpl();
|
||||
map.add(newFolder(folder), options);
|
||||
return options;
|
||||
}
|
||||
|
||||
var fOptions = addOptions('/home/test/f');
|
||||
addOptions('/home/test/g');
|
||||
var fghOptions = addOptions('/home/test/f/g/h');
|
||||
var fghiOptions = addOptions('/home/test/f/g/h/i');
|
||||
addOptions('/home/test/h');
|
||||
var fgOptions = addOptions('/home/test/f/g');
|
||||
|
||||
// Ensure lookup retrieves the most specific options files.
|
||||
expect(optionsFor('/home/test/f/c.dart'), fOptions);
|
||||
expect(optionsFor('/home/test/f/g/c.dart'), fgOptions);
|
||||
expect(optionsFor('/home/test/f/g/h/c.dart'), fghOptions);
|
||||
expect(optionsFor('/home/test/f/g/h/i/c.dart'), fghiOptions);
|
||||
}
|
||||
|
||||
test_singleOptions() {
|
||||
var rootOptions = AnalysisOptionsImpl();
|
||||
var rootFolder = newFolder('/home/test');
|
||||
|
|
Loading…
Reference in a new issue