budziq / rust-skeptic

Test your Rust Markdown documentation via Cargo
Apache License 2.0
285 stars 43 forks source link

E0464 in nightly #120

Closed AndyGauge closed 3 years ago

AndyGauge commented 4 years ago

The rust cookbook started seeing E0464 on nightly. Has anyone else seen this?

https://github.com/rust-lang-nursery/rust-cookbook/issues/590

AndyGauge commented 4 years ago

Now that we've updated to 2018 edition, nightly fails all of our tests. I'm trying to get more information, but what I can tell is this:

"rustc" "/tmp/rust-skeptic.k9jtfsC2cudt/test.rs" "--verbose" "--crate-type=bin" "--edition=2018" "-L" "/home/travis/build/rust-lang-nursery/rust-cookbook/target/debug" "-L" "/home/travis/build/rust-lang-nursery/rust-cookbook/target/debug/deps" "--target" "x86_64-unknown-linux-gnu" "-o" "/tmp/rust-skeptic.k9jtfsC2cudt/out.exe"', /home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/skeptic-0.13.4/lib.rs:855:13

used to have a ton of --extern /path/to/crate_name-hash.rlib that are now suddenly missing.

AndyGauge commented 4 years ago

Turns out the minimized example https://github.com/AndyGauge/Skeptic-issue-111 also experiences this problem.

AndyGauge commented 4 years ago
running 1 test error[E0464]: multiple matching crates for percent_encoding --> /var/folders/89/62kc3cz5615566tm8t4kzgb00000gp/T/rust-skeptic.bG1bjPaq2TG5/test.rs:2:1 2 extern crate percent_encoding; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

= note: candidates: crate percent_encoding: /Users/andy/git/Skeptic-issue-111/target/debug/deps/libpercent_encoding-ffbafd40a9d3bbe4.rlib crate percent_encoding: /Users/andy/git/Skeptic-issue-111/target/debug/deps/libpercent_encoding-2ae3b6f2cfc25b66.rlib

error[E0463]: can't find crate for percent_encoding --> /var/folders/89/62kc3cz5615566tm8t4kzgb00000gp/T/rust-skeptic.bG1bjPaq2TG5/test.rs:2:1 | 2 | extern crate percent_encoding; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try rustc --explain E0463. test readme_line_1 ... FAILED

failures:

---- readme_line_1 stdout ---- /Users/andy/git/Skeptic-issue-111/target/debug thread 'readme_line_1' panicked at 'Command failed: "rustc" "/var/folders/89/62kc3cz5615566tm8t4kzgb00000gp/T/rust-skeptic.bG1bjPaq2TG5/test.rs" "--verbose" "--crate-type=bin" "--edition=2018" "-L" "/Users/andy/git/Skeptic-issue-111/target/debug" "-L" "/Users/andy/git/Skeptic-issue-111/target/debug/deps" "--target" "x86_64-apple-darwin" "-o" "/var/folders/89/62kc3cz5615566tm8t4kzgb00000gp/T/rust-skeptic.bG1bjPaq2TG5/out.exe"', /Users/andy/git/rust-skeptic/src/skeptic/lib.rs:875:13 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

failures: readme_line_1

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--test skeptic'

AndyGauge commented 4 years ago

OK, so I found a big difference in cargo between the two versions that I believe is causing this. The json file found within the .fingerprint directory has been renamed in nightly. In nightly the file looks like this: lib-cratename.json In stable: lib-cratename-hash.json