DescriptionPrecompute `IgnoreInfo` in Scanner.
The existing support for `ignore` filtering requires the error generator task to depend on parsed sources as input. As it happens, these parse results get flushed between the parse task and error generation, meaning that they need to be recomputed for EVERY source. This change moves ignore detection into the scanner which now produces a new result (akin to LineInfo) that can be used at error generation time (and will not be flushed).
Local profiling shows this change making a roughly 10% improvement to overall analysis time for `flutter analyze`. Server-based analysis should enjoy a similar benefit.
A few thoughts for further refinement:
* can we NOT produce ignore results for sources whose errors we will not generate?
* can we (and should we) improve the regexp-based approach?
BUG=
R=brianwilkerson@google.com, scheglov@google.com
Committed: https://github.com/dart-lang/sdk/commit/c77781d27e54fdf04721b8b5890576a91619e976
Patch Set 1 #
Total comments: 20
Patch Set 2 : review_fixes #
Messages
Total messages: 8 (2 generated)
|