We have made a lot of progress on NLL diagnostics
So much so that it behooves us to take a step back and reevaluate where we stand with respect to overall diagnostic quality.
As part of that, we should do another round of review of the differences between AST borrowck diagnostic output and NLL borrowck diagnostic output.
Update: I finished the review, and have put the cases where NLL is not up to par into "buckets." Each bucket has a linked comment on this issue (and, in some cases, a separate issue that is linked from that comment and from the description here).
Here are all the buckets (with links to each specific comment):
- When a bucket is no longer relevant (either because the issue has been fixed or we've decided its not actually an issue), it will be struckout (
like so).
We have made a lot of progress on NLL diagnostics
So much so that it behooves us to take a step back and reevaluate where we stand with respect to overall diagnostic quality.
As part of that, we should do another round of review of the differences between AST borrowck diagnostic output and NLL borrowck diagnostic output.
Update: I finished the review, and have put the cases where NLL is not up to par into "buckets." Each bucket has a linked comment on this issue (and, in some cases, a separate issue that is linked from that comment and from the description here).
Here are all the buckets (with links to each specific comment):
like so).Sort By SpanBetter Diagnostic When "Later" means "A Future Loop Iteration"NLL Spans Show Hypothetical CodeNLL diagnostic is globally bad ... but locally justifiable?The "Later used here" diagnostic is not ideal for return valuesProvide span for declaration of captured variablesNLL is missing struct field suggestionmissing lifetime in suggestionNLL fails to suggest + bound on trait object"does not live long enough" when talking about a (thread-local) staticNLL missing suggestion to extend lifetimes via let bindingsNLL didn't fix interaction of local dying with temps in dropckNLL mentions lifetimes that are not included in printed span(s).FnMutclosure where AST-borrowck accepted it