owned this note
owned this note
Published
Linked with GitHub
### 3rd NLL crater run — root regressions
27 crates regressed (for completeness, this report shows the 45 tested versions of these 27 crates).
#### Regressions starting with `A`
- [attr-0.1.0](https://crates.io/crates/attr/0.1.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/attr-0.1.0/log.txt)
-> [Previously triaged](https://hackmd.io/2sR4vloZQhC8arJkFOFyLA?both#Root-regressions-starting-with-A) as "2018.07.30: Bug. This *looks* like a bug in MIR borrowck to me. --nmatsakis". [Minimized repro](https://play.rust-lang.org/?gist=46146e256a3e138cbd42d0ee34b43571&version=nightly&mode=debug&edition=2015) where the two borrowcks differ. [Rust issue](https://github.com/rust-lang/rust/issues/53569).
- [auroranssolis.fractions_and_matrices.2ea35e2e5a65ce3a8d32120f4e2b1d8274fcf9f4](https://github.com/AuroransSolis/fractions_and_matrices/tree/2ea35e2e5a65ce3a8d32120f4e2b1d8274fcf9f4): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/gh/AuroransSolis.fractions_and_matrices/log.txt)
- From the log it looks like the bug shown in `sprs-0.6.2`: some generic code with assignments and indexing.
- looks like [#47349](https://github.com/rust-lang/rust/issues/47349) to me, and hence WONTFIX --nmatsakis
#### Regressions starting with `C`
- capnp-0.6.2: [log from rotor-capnp-0.1.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/rotor-capnp-0.1.0/log.txt)
-> Same errors as `capnp-0.7.5`.
- capnp-0.7.5: [log from capnp-gj-0.2.1](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/capnp-gj-0.2.1/log.txt)
- Feels like an instance of the 2PB-expansion "feature request" [#51915](https://github.com/rust-lang/rust/issues/51915) ?
- Not quite. This is the "next level", where we also trigger 2PB for `&mut` for borrows written explicitly. I think WONTFIX -nmatsakis
- [cswinter.locustdb.c5942997e6bdbb94fe0920e67bd96b0637399b97](https://github.com/cswinter/LocustDB/tree/c5942997e6bdbb94fe0920e67bd96b0637399b97): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/gh/cswinter.LocustDB/log.txt)
- [Repro](https://play.rust-lang.org/?gist=a051d535a66f46f52ceb271383d334d5&version=nightly&mode=debug&edition=2015). Looks like a bug ? The same piece of code emits 2 different errors with 2 different proposals to fix the code, only the first one was enough for AST borrowck.
- Looks like a variant on [#53119](https://github.com/rust-lang/rust/issues/53119). Filed [#53570](https://github.com/rust-lang/rust/issues/53570).
#### Regressions starting with `E`
- [extended-collections-0.1.0](https://crates.io/crates/extended-collections/0.1.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/extended-collections-0.1.0/log.txt)
-> Same errors as `extended-collections-0.2.0`.
- [extended-collections-0.2.0](https://crates.io/crates/extended-collections/0.2.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/extended-collections-0.2.0/log.txt)
- Previously triaged to [this comment about 2PB](https://github.com/rust-lang/rust/issues/51915#issuecomment-410812491).
- Looks indeed like the extended variant of #51915 -- nmatsakis
#### Regressions starting with `G`
- [galvanize-0.0.1](https://crates.io/crates/galvanize/0.0.1): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/galvanize-0.0.1/log.txt)
-> Previously triaged. Legitimate error in the crate: a move out of a struct with a destructor. [Repro](https://play.rust-lang.org/?gist=f3c0638cd128773bfa2413e3d3ec3783&version=nightly&mode=debug&edition=2015). The unclear diagnostic was already filed as [#52059](https://github.com/rust-lang/rust/issues/52059).
- [gearley-0.0.1](https://crates.io/crates/gearley/0.0.1): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/gearley-0.0.1/log.txt)
-> Previously triaged. Looks like a legitimate error in the crate.
- getopts-0.2.14: [log from rpc-perf-2.0.3](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/rpc-perf-2.0.3/log.txt)
-> Same errors as `getopts-0.2.15`.
- getopts-0.2.15: [log from yupferris.kaze](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/gh/yupferris.kaze/log.txt)
- Previously triaged as: while loop condition borrowing a value itself mutated inside the loop by a closure. Either "fixed by NLL" or a matter left to Polonius ? [Minimized repro](https://play.rust-lang.org/?gist=c33970bf610c7b5bdbf73c565ae3ec27&version=nightly&mode=debug&edition=2015) that AST borrowck accepts.
- Fixed by NLL, imo. -- nmatsakis
- FIXME find issue to link too
#### Regressions starting with `I`
- [ilp-packet-0.3.0](https://crates.io/crates/ilp-packet/0.3.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/ilp-packet-0.3.0/log.txt)
- Weird. Looks like an error in the crate but AST borrowck accepts it. Fixed by NLL ? [Minimized repro](https://play.rust-lang.org/?gist=fcd15716ab77c5aaf787471a87beebb2&version=nightly&mode=debug&edition=2015) showing the difference between the 2 borrowcks.
- Fixed by NLL. -- nmatsakis
- FIXME find issue to link too
#### Regressions starting with `L`
- [liner-0.4.4](https://crates.io/crates/liner/0.4.4): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/liner-0.4.4/log.txt)
- Previously triaged, I think, to [issue 53114](https://github.com/rust-lang/rust/issues/53114). [Repro](https://play.rust-lang.org/?gist=ccb6c558bf380bc7026074c958be3c7a&version=nightly&mode=debug&edition=2015).
- Hmm, this does not look like [#53114](https://github.com/rust-lang/rust/issues/53114) -- I don't see any `_` patterns. It *does* look like a "Fixed By NLL" situation though. Might be worth digging a deeper and trying to minimize. -- nmatsakis
- FIXME minimize and confirm diagnosis
#### Regressions starting with `M`
- [mop-solvers-0.0.1](https://crates.io/crates/mop-solvers/0.0.1): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/mop-solvers-0.0.1/log.txt)
- Feels like a very similar bug to `sprs-0.6.2`: some generic code with assignments and indexing.
- Almost certainly [#47349](https://github.com/rust-lang/rust/issues/47349). -- nmatsakis
#### Regressions starting with `N`
- nalgebra-0.11.2: [log from ahrs-0.2.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/ahrs-0.2.0/log.txt)
-> Same errors as `nalgebra-0.16.0`.
- nalgebra-0.12.3: [log from softrender-0.1.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/softrender-0.1.0/log.txt)
-> Same errors as `nalgebra-0.16.0`.
- nalgebra-0.13.1: [log from artano-0.2.6](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/artano-0.2.6/log.txt)
-> Same errors as `nalgebra-0.16.0`.
- [nalgebra-0.14.4](https://crates.io/crates/nalgebra/0.14.4): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/nalgebra-0.14.4/log.txt)
-> Same errors as `nalgebra-0.16.0`.
- nalgebra-0.15.3: [log from casimir-fdfd-0.2.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/casimir-fdfd-0.2.0/log.txt)
-> Same errors as `nalgebra-0.16.0`.
- [nalgebra-0.16.0](https://crates.io/crates/nalgebra/0.16.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/nalgebra-0.16.0/log.txt)
- Feels like a very similar bug to `sprs-0.6.2`. [Repro](https://play.rust-lang.org/?gist=d990ae4f72586254da602161b749cc5b&version=nightly&mode=debug&edition=2015) .
- Almost certainly [#47349](https://github.com/rust-lang/rust/issues/47349). -- nmatsakis
#### Regressions starting with `P`
- [pgetopts-0.1.2](https://crates.io/crates/pgetopts/0.1.2): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/pgetopts-0.1.2/log.txt)
- Looks like the same errors as `getopts-0.1.2`.
- Yes, Fixed By NLL. -- nmatsakis
- FIXME find an issue to link this to
- [pom-2.0.1](https://crates.io/crates/pom/2.0.1): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/pom-2.0.1/log.txt)
- Almost certainly [#53040](https://github.com/rust-lang/rust/issues/53040) but it might be good to minimize this. -- nmatsakis
- FIXME minimize and confirm diagnosis
- [proptest-arbitrary-0.2.2](https://crates.io/crates/proptest-arbitrary/0.2.2): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/proptest-arbitrary-0.2.2/log.txt)
- Looks like missing lifetime annotations on associated types ?
- could be [#53570](https://github.com/rust-lang/rust/issues/53570) -- we should fix *that* and reconfirm, perhaps? Else, we need to minimize. -- nmatsakis
#### Regressions starting with `R`
- [rgen3-save-0.1.0](https://crates.io/crates/rgen3-save/0.1.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/rgen3-save-0.1.0/log.txt)
- Unexpected Pokémon. Feels correct to reject this code ? [Reduced repro](https://play.rust-lang.org/?gist=104d7f51c89e5d6b332dfd7e9090d6a2&version=nightly&mode=debug&edition=2015).
- Seems legit. Might be a case that 2phi borrows would fix. -- nmatsakis
- [rs-graph-0.14.0](https://crates.io/crates/rs-graph/0.14.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/rs-graph-0.14.0/log.txt)
- 1st error: [Repro](https://play.rust-lang.org/?gist=7146cf1e1a1528c46a8e859368c0b75a&version=nightly&mode=debug&edition=2015). It deals with bounds on associated types or `Self`, and feels like the crate might be wrong in not having them here.
- Hmm, while I agree the errors are legit, this minimized variant does not build with AST borrowck. I suspect that this is [#53121](https://github.com/rust-lang/rust/issues/53121) though. -- nmatsakis
- 2nd error: looks related to the bug in `sprs-0.6.2` because of the `AddAssign` with method calls, but slightly different since it's only mutable refs here. [Repro](https://play.rust-lang.org/?gist=72ff07aa838d8e4aacb283181e2a0824&version=nightly&mode=debug&edition=2015).
- Yes, fixed by NLL and still, I think, attributable to [#47349](https://github.com/rust-lang/rust/issues/47349). In particular, this is basically us handling `+=` correctly. -- nmatsakis
- rs-graph-0.14.1: [log from rs-graph-derive-0.14.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/rs-graph-derive-0.14.0/log.txt)
-> Same errors as `rs-graph-0.14.0`.
- rusttype-0.2.1: [log from joar.rust-game-of-life](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/gh/joar.rust-game-of-life/log.txt)
-> Same errors as `rusttype-0.2.3`.
- rusttype-0.2.3: [log from clipping-0.1.1](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/clipping-0.1.1/log.txt)
- [Previously triaged](https://hackmd.io/VCYh_KdgQkO2O_45jWAxaw?both#Regressed-because-of-dependency-rusttype-023) as: code extracted from rustc's `liballoc` which needed annotations to compile. Hard to tell whether this should be handled better by rustc ?
- I remember thinking that these errors were legit. Fixed in [#51914](https://github.com/rust-lang/rust/pull/51914). Looks like I categorized this as "fixed by NLL" and in particular [#29149](https://github.com/rust-lang/rust/issues/29149). -- nmatsakis
#### Regressions starting with `S`
- [segment-tree-1.1.0](https://crates.io/crates/segment-tree/1.1.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/segment-tree-1.1.0/log.txt)
- Builds on nightly 2018-08-18.
- Looks like [#47349](https://github.com/rust-lang/rust/issues/47349). -- nmatsakis
- [serenity-0.4.8](https://crates.io/crates/serenity/0.4.8): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/serenity-0.4.8/log.txt)
-> Old version of the crate: the code has since been rewritten and contained a comment about it: `This is a hack as to mitigate some nasty lifetime errors. (Culprit Vec::remove's return type)`. Looks like a legitimate error in the crate to bypass borrowck: a move out of a struct with a destructor. [Repro because it's cute](https://play.rust-lang.org/?gist=36b94633fca7e490ba8c03f4fa94cbbd&version=nightly&mode=debug&edition=2015).
- [shred-0.7.0](https://crates.io/crates/shred/0.7.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/shred-0.7.0/log.txt)
-> Previously triaged to [issue 53121](https://github.com/rust-lang/rust/issues/53121).
- [spinresearch.rustysecrets.38f98ff87eb42c55056c89578f89a0ef97f32c20](https://github.com/SpinResearch/RustySecrets/tree/38f98ff87eb42c55056c89578f89a0ef97f32c20): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/gh/SpinResearch.RustySecrets/log.txt)
-> A pretty minimal version of the `sprs-0.6.2` bug, with just indexing and operator overloading. [Repro](https://play.rust-lang.org/?gist=b6e2b7ba1f746b2a91f237cbe2892f74&version=nightly&mode=debug&edition=2015). Probably the most minimal of the 7 cases we see in this crater run.
- [sprs-0.6.2](https://crates.io/crates/sprs/0.6.2): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/sprs-0.6.2/log.txt)
- Looks like a bug, maybe needs to be filed if not already tracked. [Repro](https://play.rust-lang.org/?gist=d3f85038dbef022bf855971cd84a36f5&version=nightly&mode=debug&edition=2015).
- I believe this is [#47349](https://github.com/rust-lang/rust/issues/47349), and hence a "WONTFIX". The TL;DR is that we are correctly checking `+=` now. -- nmatsakis
- syntex_syntax-0.36.0: [log from serde_item-0.2.0](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/serde_item-0.2.0/log.txt)
-> Same errors as `syntex_syntax-0.39.0`.
- syntex_syntax-0.39.0: [log from cucumber-0.3.1](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/cucumber-0.3.1/log.txt)
-> This feels like a bug in AST borrowck/the crate, that is "fixed by NLL", [reduced repro](https://play.rust-lang.org/?gist=2d4da1787e06a75def402cfe1f9e544e&version=nightly&mode=debug&edition=2015).
This repro is not minimal as I found interesting to show that going through the `parse_sess` reference in `cx.parse_sess.err_count` is what "confuses" AST borrowck into accepting the code: if the method call was on `cx` directly, AST borrowck would catch it.
#### Regressions starting with `U`
- url-1.1.1
-> Same errors as `url-1.7.0`.
- url-1.2.3
-> Same errors as `url-1.7.0`.
- url-1.2.4
-> Same errors as `url-1.7.0`.
- url-1.4.0
-> Same errors as `url-1.7.0`.
- url-1.4.1
-> Same errors as `url-1.7.0`.
- url-1.5.1
-> Same errors as `url-1.7.0`.
- url-1.6.0
-> Same errors as `url-1.7.0`.
- url-1.7.0
-> [Previously triaged](https://hackmd.io/VCYh_KdgQkO2O_45jWAxaw?both#Regressed-because-of-dependency-url-170) as: legitimate error in the crate, a move out of a struct with a destructor, fixed in `url-1.7.1`.
#### Regressions starting with `V`
- [vek-0.9.4](https://crates.io/crates/vek/0.9.4): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/vek-0.9.4/log.txt)
-> Feels like a very similar bug to `sprs-0.6.2`: some generic code with assignment and indexing. Hard to minimize as it's in a big macro.
#### Regressions starting with `Y`
- [yara-0.1.0](https://crates.io/crates/yara/0.1.0): [log](https://crater-reports.s3.amazonaws.com/pr-53426/a5d98b025f62ace80fe9d2a15781f900fc42515e-alt/reg/yara-0.1.0/log.txt)
-> Previously triaged as: legitimate error in the crate, a move out of a struct with a destructor.