97871aeab5
In many cases, AnalysisOptions is sufficient. * ResolvedCorrectionProducer will be public API for someone writing an analyzer plugin; it should not expose an AnalysisOptionsImpl. Luckily the only need for the Impl, today, is in the "ignore diagnostic" fixes so we can cast in there. (We could also expose the `file` and the `unignorableNames` fields.) * Some other spots only cast in order to access one of the 'strict' fields, but all of those have been made public. * AnalysisOptionsImpl.enabledLegacyPluginNames can be made final. * Many other users don't need AnalysisOptionsImpl, or only need it to pass it to other code that _does_ need it. In many of those cases it makes sense to look at an object as an AnalysisOptions, and let the code that needs a field from Impl to do a cast. Change-Id: I3640934fb9d93c9b95f15a22457af604e420c7a9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/392240 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>