c1e535031d
I found that the `propagateLinterExceptions` analysis option was being passed to the AnalysisRuleExceptionHandler class at approximately the same point where the exception handler is called, and also that the AnalysisRuleExceptionHandler class's `logException` method did not _use_ the `propagateLinterExceptions` value; it just _unconditionally_ returned it. So it gave it back to nearly the same code that passed it in. So we can simplify all of this by removing the `propagateExceptions` field in AnalysisRuleExceptionHandler. But then that class has zero fields and one method. _And_ that one method is _the only_ ,method that is ever passed in to AnalysisRuleVisitor as the exception handler. So remove the class altogether, and inline the method in AnalysisRuleVisitor. AnalysisRuleVisitor instead takes the bool value, `shouldPropagateExceptions`, and does the right thing with it. Additionally: * Privatize AnalysisRuleVisitor `registry` property. * Make AnalysisOptionsImpl `propagateLinterExceptions` property final. Change-Id: Ia438881a3eccb3e26ebed294a7b7b8329d7961ed Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393902 Reviewed-by: Phil Quitslund <pquitslund@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>