Use enum for approximate suggestions by Manishearth · Pull Request #50204 · rust-lang/rust (original) (raw)

zackmdavis added a commit to zackmdavis/rust that referenced this pull request

May 20, 2018

@zackmdavis

Consider this a down payment on rust-lang#50723. To recap, an Applicability enum was recently (rust-lang#50204) added, to convey to Rustfix and other tools whether we think it's OK for them to blindly apply the suggestion, or whether to prompt a human for guidance (because the suggestion might contain placeholders that we can't infer, or because we think it has a sufficiently high probability of being wrong even though it's— presumably—right often enough to be worth emitting in the first place).

When a suggestion is marked as MaybeIncorrect, we try to use comments to indicate precisely why (although there are a few places where we just say // speculative because the present author's subjective judgement balked at the idea that the suggestion has no false positives).

The run-rustfix directive is opporunistically set on some relevant UI tests (and a couple tests that were in the test/ui/suggestions directory, even if the suggestions didn't originate in librustc or libsyntax). This is less trivial than it sounds, because a surprising number of test files aren't equipped to be tested as fixed even when they contain successfully fixable errors, because, e.g., there are more, not-directly-related errors after fixing. Some test files need an attribute or underscore to avoid unused warnings tripping up the "fixed code is still producing diagnostics" check despite the fixes being correct; this is an interesting contrast-to/inconsistency-with the behavior of UI tests (which secretly pass -A unused), a behavior which we probably ought to resolve one way or the other (filed issue rust-lang#50926).

A few suggestion labels are reworded (e.g., to avoid phrasing it as a question, which which is discouraged by the style guidelines listed in .span_suggestion's doc-comment).