two-phase-borrows need a specification

1a5acb6
Opened by Felix S Klock II at 2019-12-10 17:30:20

Spawned off of https://github.com/rust-lang/rust/pull/46887#issuecomment-353156090: While our short term solution for two-phase borrow support (#46037) is to make it as conservative as we can (e.g. the still planned #46747), the reality is that its complex and needs a specification.

(It might even be worth the exercise of adding them to the https://github.com/nikomatsakis/borrowck model )

  1. hmm is this "covered" by "adjust documentation" on #44100? Somehow I suspect that the adjustment expected there did not account for how subtle the corner cases here might be.

    Felix S Klock II at 2017-12-21 10:28:13

  2. cc @bobtwinkles who did the two phase borrows rewrite (#48770)

    Felix S Klock II at 2018-05-08 20:09:12

  3. I'm going to push this to "the final milestone" -- I do think we want to "freeze" a spec for NLL as it is implemented (pending polonius improvements).

    Niko Matsakis at 2018-07-03 18:37:03

  4. Visited for T-compiler triage. I cannot imagine us blocking the release on this (even though it is of course desirable.)

    I-nominating for discussion at next WG-compiler-nll meeting

    Felix S Klock II at 2018-11-08 14:47:42

  5. unnominating. We'll get to this when we get to all the NLL-deferred issues, and right now its just clogging up T-compiler process.

    Felix S Klock II at 2018-11-29 13:37:58

  6. Re-triaging for #56754. P-high. Assigning to self.

    Felix S Klock II at 2018-12-19 16:08:33

  7. (it would be good to take care of this in tandem with resolving the question of #56254 )

    Felix S Klock II at 2018-12-19 16:09:30

  8. subtask of #54129

    Felix S Klock II at 2018-12-21 14:27:33

  9. triage: should we realistically continue keeping this at P-high? (I've been absent but the fact that no one prioritized work-stealing it while I was gone for three weeks makes me wonder if it is in fact a P-medium issue...)

    Felix S Klock II at 2019-01-17 14:47:37

  10. triage: downgrading from P-high to P-medium.

    Felix S Klock II at 2019-05-02 13:25:11