-
Notifications
You must be signed in to change notification settings - Fork 13.3k
NLL: isolate borrowck errors in Servo dependencies #47596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
cc @rust-lang/wg-compiler-nll |
NLL does fix a number of known bugs, so it will take some closer investigation to see whether these failures are expected or not. Thanks for the heads up, @SimonSapin ! |
Minimized version of the The above example compiles if |
Thanks @Aaron1011. Deconstructing in a struct pattern ( |
Filed @Aaron1011's example as #47703 -- it'd be great to try and minimize the others. |
One thing that could help here is trying to isolate the failures that @SimonSapin uncovered. See the issue header for the list of such tests. The procedure would be something like this:
cc @rust-lang/wg-compiler-nll |
I think this is a minimized version of the getopts 0.2.14 error: https://play.rust-lang.org/?gist=91237489cb7566627523b81dbb09d917&version=nightly compiles without NLLs |
The atomic_refcell 0.1.0 case looks like the previously minimized error #47703: https://play.rust-lang.org/?gist=5b3934b08dec4d034dc5b00fba8647c3&version=nightly |
@lqd nice! |
@nikomatsakis Just in case Simon's 4th error was forgotten in your list of 3, I also reduced the one in the mozjs 0.1.10 crate: https://play.rust-lang.org/?gist=db23fce76e48bf866b0b8c2f80a50464&version=nightly (Maybe it wasn't included because an issue already existed) |
@lqd nope, just missed it. |
Gonna close this issue, since we've created subissues for each part. |
UPDATE by @nikomatsakis: In the original issue below, @SimonSapin found several issues when building servo. The goal now is to isolate those issues into standalone test cases and investigate them. Mentoring instructions for doing that isolation can be found here.
The list of tests to be isolated is:
Original issue report
How I got these results:
cargo +nightly-2018-01-19 build
, see that it finishes successfullRUST_BACKTRACE=1 RUSTFLAGS=-Znll cargo +nightly-2018-01-19 build -j100 -v
repeatedly (because when one crate fails Cargo stops building more crates) until the output stabilizes. This results in three borrow-checking errors below, and one ICE filed separately at ICE with NLL: 'assertion failed: identity_substs.is_empty()', librustc_mir/borrow_check/nll/universal_regions.rs:593:17 #47598.The relevant code is from crates.io, so easier steps to reproduce might be to build the same crate outside of Servo. And these errors would probably be caught by crater, so they might be already known.
The text was updated successfully, but these errors were encountered: