NLL stderr diagnostic deviations

New Tables circa July/August 2018

(See also referencing issue )

Original Tables circa April/May 2018 below

(See also referencing issue )


Instructions for Table 1:

  • Categorize PRIORITY as either:
  • MY EYES:  top priority to fix
  • if needed: we can live with this, if we have to, but really should fix
  • meh: we can totally ship without this
  • weak test: this test is outdated and needs to be updated for NLL
  • 💯 : nothing to see here, move along
  • lang issue: an open question needs to be resolved by the Rust language design team
  • if no priority seems to fit, we can add one?
  • Describe problems in NOTES:
  • in particular, for missing suggestions, copy/paste the text so we can categorize that later
  • Tag with the right things:
  • specificity: we used to be more specific
  • suggestion: we use to make a nice suggestion
  • span: we’re giving a bad span (highlighting a suboptimal part of the code)
  • update: test needs to be updated to trigger errors in NLL

How many MY EYES rows? (Note that a single row may have multiple github issues associated with it.)
  • As of 30 May: 15 rows are marked “MY EYES”.

Below the first table (which just enumerates each test where NLL and AST-borrowck differ in their stderr output), I have a table that tries to summarize the status for each issue associated with the first table. (Info like number of tests tagged with the issue, and a link to any PR’s related to resolving the issue.)

TESTS where NLL and AST-borrowck differ






missing suggestion: “consider using a reference instead” (#51187)
MY EYES (span)
span: “borrow later used here” — we select the entire x += x which spans multiple lines; unclear that the original selection is so great either. Maybe the += would be ideal. (Issue 51000)

suggestion: “consider changing this to mut" (#51031)
#51000, #51031
we get fewer errors now because borrow check is being smart about Box again

if needed
specificity “closure may outlive the current function” (#51026)
if needed 
specificity: “closure may outlive the current function” (#51026)
if needed
specificity: “cannot move out of captured outer variable in an `Fn` closure” (#51028)
MY EYES (in sum)

span: match statements giving us a lot of duplicates

span: we are highlighting bindings instead of the expression being matched (#51012)