eeb3ecb599
This was a utility class with absolutely zero state. It almost protected against unnecessary instantiation by providing a static `instance` member, but the constructor was still public. Also, the instance was passed around various objects as an instance field, even allowing for the static instance to be nullable in a few cases. All of this can be prevented by making the class `abstract final`, with all of its members static. (An argument can be made that all of the code in here could be made top-level functions, but I'll leave that for a later refactoring, if it is desired. Also the functions could be made into extension methods, but many of them rely on promotion of a parameter, so until we get `this` promotion in extensions, I won't advocate for that change.) The main reason I was looking at this was to get Flutter out of `_AbstractCorrectionProducer`, so that we don't have to drag the flutter utils into analyzer_plugin (we still can if we want to, but we won't _have_ to). I also modernized the code, following Effective Dart: * https://dart.dev/effective-dart/documentation#do-start-doc-comments-with-a-single-sentence-summary * https://dart.dev/effective-dart/documentation#do-separate-the-first-sentence-of-a-doc-comment-into-its-own-paragraph * https://dart.dev/effective-dart/documentation#prefer-starting-function-or-method-comments-with-third-person-verbs * https://dart.dev/effective-dart/documentation#prefer-starting-a-boolean-variable-or-property-comment-with-whether-followed-by-a-noun-or-gerund-phrase Change-Id: I0d1896ae2d45a31e00f8a824e92d173469cc7eea Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/340301 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>