Description
Most of the issues listed below appear ready to be closed or tagged. The check boxes are there to mark after a decision has been made on their respective threads (including if an issue is decided to be left open).
@pnkfelix @matthewjasper mind checking these out? what started as a general triage, ended up accumulating a bit of fixed-by-nll issues. although not all nll-related, the other issues are generally in areas you could help make a final decision on.
now compiles on both editions
rustc: 1.32.0
The following issues previously did not compile.
These appear ready to close, unless if any need a test.
- failure to infer move mode for a variable when the move is from
*x
failure to infer move mode for a variable when the move is from*x
#23675 - Incorrect closure type deduced despite move keyword Incorrect closure type deduced despite move keyword #44336
- Rustc confuses lifetimes of different unrelated variables of type &'static str when implementing a trait for &'a str Rustc confuses lifetimes of different unrelated variables of type &'static str when implementing a trait for &'a str #26448
- Unexpected lifetime issue when comparing Option<&i32 Unexpected lifetime issue when comparing Option<&i32> #42966
- Incorrect lifetime error with a generic FnMut after annotating the type in a closure. Incorrect lifetime error with a generic FnMut after annotating the type in a closure. #22557
now compiles on 2018
rustc: 1.32.0
cc @rust-lang/wg-compiler-nll
The following issues previously did not compile, but now do on 2018.
They also compile on 2015 with#![feature(nll)]
.
- Weird lifetime error with closure and early-bound lifetime Weird lifetime error with closure and early-bound lifetime #28092
- (example in description compiles in both editions, but a variant was identified that still exhibits the original problem.)
- Closures cause unnecessary borrows Closures cause unnecessary borrows #23591
- Lifetime elision is too greedy without explicit type declaration Lifetime elision is too greedy without explicit type declaration #39943
- Ref and &T have different lifetime requirements Ref<T> and &T have different lifetime requirements #37785
-
if let
keeps borrows too longif let
keeps borrows too long #43407 - Compiler gets lifetime scope wrong Compiler gets lifetime scope wrong #28970
- Borrow checker gets confused with a mutable pointer which should be moved Borrow checker gets confused with a mutable pointer which should be moved #27487
- Slice pattern incorrectly report double borrow Slice pattern incorrectly report double borrow #37302
- Borrow checker false dropped while still borrowed Borrow checker false dropped while still borrowed #38915
- Spurious "borrowed value does not live long enough" when calling a function through a function pointer Spurious "borrowed value does not live long enough" when calling a function through a function pointer #49073
now compiles on beta / nightly on both editions
rust version 1.34.0-nightly (da6ab956e 2019-01-27)
needs test?
- Adding Deref impl affects lifetime bounds of other methods Adding Deref impl affects lifetime bounds of other methods #27697
now (correctly) rejected on beta / nightly on both editions
These appear ready to close, unless if any need a test.