mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 20:01:19 +00:00
[bazel] Sort certain things when compiling in incremental mode
Not doing it can lead to the same input producing "different" outputs. Change-Id: I31fa1d728c2d26cbf1ad008472ea8fce4310794f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117725 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
This commit is contained in:
parent
37111633be
commit
cdcec63569
|
@ -18,7 +18,7 @@ import 'package:bazel_worker/bazel_worker.dart';
|
|||
import 'package:build_integration/file_system/multi_root.dart';
|
||||
import 'package:dev_compiler/src/kernel/target.dart';
|
||||
import 'package:front_end/src/api_unstable/bazel_worker.dart' as fe;
|
||||
import 'package:kernel/ast.dart' show Component, Library;
|
||||
import 'package:kernel/ast.dart' show Component, Library, Reference;
|
||||
import 'package:kernel/target/targets.dart';
|
||||
import 'package:vm/target/vm.dart';
|
||||
import 'package:vm/target/flutter.dart';
|
||||
|
@ -341,6 +341,19 @@ Future<ComputeKernelResult> computeKernel(List<String> args,
|
|||
includeSources: false, includeOffsets: false));
|
||||
}
|
||||
|
||||
// Make sure the output is stable.
|
||||
incrementalComponent.libraries.sort((l1, l2) {
|
||||
return "${l1.fileUri}".compareTo("${l2.fileUri}");
|
||||
});
|
||||
incrementalComponent.problemsAsJson?.sort();
|
||||
incrementalComponent.computeCanonicalNames();
|
||||
for (Library library in incrementalComponent.libraries) {
|
||||
library.additionalExports.sort((Reference r1, Reference r2) {
|
||||
return "${r1.canonicalName}".compareTo("${r2.canonicalName}");
|
||||
});
|
||||
library.problemsAsJson?.sort();
|
||||
}
|
||||
|
||||
return Future.value(fe.serializeComponent(incrementalComponent,
|
||||
filter: excludeNonSources
|
||||
? (library) => sources.contains(library.importUri)
|
||||
|
|
Loading…
Reference in a new issue