Skip to content

tracking issue for bugs fixed by the MIR borrow checker or NLL #47366

Closed
@nikomatsakis

Description

@nikomatsakis

Part of: #43234

The MIR-based borrow checker used by NLL fixes a number of bugs in the existing AST-based borrow checker. Our plan for these bugs is to fix them by transitioning to the MIR-based borrow checker. In the meantime, we wish to add tests that show that the bugs are fixed with NLL, and then close the bugs (so they don't clutter up the issue tracker). This issue tracks the set of such bugs and gives instructions for how to proceed.

Bugs fixed by MIR

All these bugs are confirmed as fixed; the checkmark indicates that a PR with a test is enqueued or landed.

Procedure

  • First, if you wish, add yourself to the list of participants for the WG-compiler-nll working group.
    • This will help us to find people who might like to help later!
  • Create a regression test in src/test/ui/nll/
    • The name can be issue-XXX.rs, though giving a more descriptive name is also good
    • The file should include a comment saying // Regression test for #XXX however to ease searching later
  • This test should include the error from the bug along with the following header material:
    • Rust license
    • #![feature(nll)] at the top
    • comments like //~ ERROR for the errors, or whatever is needed for test harness to pass
  • Run ./x.py test --stage 1 src/test/ui --test-args nll, this will test all the nll tests (including yours)
  • Presuming that passes, open a PR! Otherwise, stop in at the WG-compiler-nll gitter channel
    • Put r? @nikomatsakis in the PR summary

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-NLLArea: Non-lexical lifetimes (NLL)C-bugCategory: This is a bug.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCE-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.fixed-by-NLLBugs fixed, but only when NLL is enabled.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions