9933192f36
This does a few optimizations to improve the performance of the analyzer when watching for generated files: - We do all the polling in a separate isolate. - We detect when Bazel finished running and only poll afterwards. - We use a batch interface and deliver all changes at once (instead of one by one). This allows us to avoid resetting caches more often than necessary. I had to remove one of the larger tests and created an integration test instead, since the code for detecting the Bazel builds relies on `dart:io` directly (`ResourceProvider` does not expose a way to check for symlink targets). Since this required a bit more code, I've decided to create a separate file for it (`bazel_watcher.dart`). Change-Id: I6c2383e7fd4348ab8af1af639b10db519c7a2f33 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183010 Commit-Queue: Michal Terepeta <michalt@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>