Skip to content

several ui tests need to be strengthened to properly test NLL mode #51025

Closed
@pnkfelix

Description

@pnkfelix

The following tests fail to report the intended errors (most often it is missing the intended number of errors; sometimes failing to report any error at all), not because of a bug in the compiler, but rather because the test was written in a manner that assumes lexical lifetimes.

This issue is just documenting these cases (and I will try to add to the list if more are discovered); a follow-up PR will have the necessary updates to the tests.

(Some of the cases currently listed are only currently slated as "needs investigation", either to whether it should be strengthened, or what the original intent of the test even was, etc. As those questions are resolved, they will be either have their checkbox marked, or just crossed off entirely.)

  • borrowck/borrowck-report-with-custom-diagnostic.rs
  • borrowck/mut-borrow-outside-loop.rs
  • codemap_tests/issue-11715.rs
  • codemap_tests/one_line.rs
    • this is not an obvious instance of "weak test"; needs further review
  • codemap_tests/overlapping_spans.rs
    • this is a weak test (in the opinion of @pnkfelix ) but its not obvious what the right fix is in order to recover the (hypothesized) original intent.
    • Thus, deferring to another issue (TBD).
  • dropck/dropck-eyepatch-extern-crate.rs
  • dropck/dropck-eyepatch-reorder.rs
  • dropck/dropck-eyepatch.rs
  • error-codes/E0499.rs
  • error-codes/E0502.rs
  • error-codes/E0503.rs
  • error-codes/E0505.rs
  • error-codes/E0597.rs
  • generator/dropck.rs
  • generator/pattern-borrow.rs
  • hygiene/fields-numeric-borrowck.rs
  • issue-17263.rs
    • this was miscategorized initially. I believe it is actually a case where NLL has reenabled smart reasoning about Box, which was intended.
  • issue-25793.rs
  • issue-42106.rs
  • lifetime-errors/ex3-both-anon-regions-2.rs (?)
    • see NLL diagnostics fail to report lifetime mismatches #51029 in particular; its not 100% clear that this is merely a weak test.
    • huh; I changed my mind. Found way to strengthen test I'm happy with. Should double-check original intent of test vs ifetime-errors/ex3-both-anon-regions.rs though.
  • lifetimes/borrowck-let-suggestion.rs
  • span/borrowck-let-suggestion-suffixes.rs
  • span/issue-36537.rs
  • span/mut-ptr-cant-outlive-ref.rs
  • span/range-2.rs
  • span/regionck-unboxed-closure-lifetimes.rs
  • span/send-is-not-static-std-sync.rs
  • span/slice-borrow.rs
  • span/vec_refs_data_with_early_death.rs

(This list of tests is drawn from an informal paper document that I have been using to keep notes for myself as I work on this...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-NLLArea: Non-lexical lifetimes (NLL)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions