[INFO] fetching crate reups 0.3.0...
[INFO] testing reups-0.3.0 against 1.95.0 for beta-1.96-2
[INFO] extracting crate reups 0.3.0 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate reups 0.3.0
[INFO] finished tweaking crates.io crate reups 0.3.0
[INFO] tweaked toml for crates.io crate reups 0.3.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate reups 0.3.0 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 59 packages to latest compatible versions
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.6.1)
[INFO] [stderr]       Adding dirs v1.0.5 (available: v6.0.0)
[INFO] [stderr]       Adding petgraph v0.4.13 (available: v0.8.3)
[INFO] [stderr]       Adding preferences v1.1.0 (available: v2.0.0)
[INFO] [stderr]       Adding regex v0.2.11 (available: v1.12.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde v0.9.15
[INFO] [stderr]   Downloaded ole32-sys v0.2.0
[INFO] [stderr]   Downloaded shell32-sys v0.1.2
[INFO] [stderr]   Downloaded xdg v2.5.2
[INFO] [stderr]   Downloaded itoa v0.3.4
[INFO] [stderr]   Downloaded fixedbitset v0.1.9
[INFO] [stderr]   Downloaded serde_json v0.9.10
[INFO] [stderr]   Downloaded ordermap v0.3.5
[INFO] [stderr]   Downloaded preferences v1.1.0
[INFO] [stderr]   Downloaded app_dirs v1.2.1
[INFO] [stderr]   Downloaded petgraph v0.4.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c691b0f383493867c52275a0e8657bd4db1bf43f7a0607465301905f0c21fbdd
[INFO] running `Command { std: "docker" "start" "-a" "c691b0f383493867c52275a0e8657bd4db1bf43f7a0607465301905f0c21fbdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c691b0f383493867c52275a0e8657bd4db1bf43f7a0607465301905f0c21fbdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c691b0f383493867c52275a0e8657bd4db1bf43f7a0607465301905f0c21fbdd", kill_on_drop: false }`
[INFO] [stdout] c691b0f383493867c52275a0e8657bd4db1bf43f7a0607465301905f0c21fbdd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff71db3224cdf9c16161467c0598a4805fde999556f6224c3754bc9c8c3f8326
[INFO] running `Command { std: "docker" "start" "-a" "ff71db3224cdf9c16161467c0598a4805fde999556f6224c3754bc9c8c3f8326", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling xdg v2.5.2
[INFO] [stderr]    Compiling itoa v0.3.4
[INFO] [stderr]    Compiling serde v0.9.15
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling ucd-util v0.1.10
[INFO] [stderr]    Compiling regex-syntax v0.5.6
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling thread_local v0.3.6
[INFO] [stderr]    Compiling app_dirs v1.2.1
[INFO] [stderr]    Compiling aho-corasick v0.6.10
[INFO] [stderr]    Compiling ordermap v0.3.5
[INFO] [stderr]    Compiling fixedbitset v0.1.9
[INFO] [stderr]    Compiling utf8-ranges v1.0.5
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling dirs v1.0.5
[INFO] [stderr]    Compiling petgraph v0.4.13
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling serde_json v0.9.10
[INFO] [stderr]    Compiling preferences v1.1.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling reups v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clap`
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use clap;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use fnv;
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static`
[INFO] [stdout]   --> src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/lib.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, error, info, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `preferences`
[INFO] [stdout]   --> src/lib.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use preferences;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex`
[INFO] [stdout]   --> src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use regex;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/db/table.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | / /**!
[INFO] [stdout] 15 | |  A Table object is the in memory representation of a products table file.
[INFO] [stdout] 16 | | */
[INFO] [stdout]    | |__^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:142:43
[INFO] [stdout]     |
[INFO] [stdout] 142 |         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 142 -         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout] 142 +         println!("{}", self.output_string.trim_end_matches("\n\n"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:205:34
[INFO] [stdout]     |
[INFO] [stdout] 205 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 205 -                                 .trim_right_matches(", ")
[INFO] [stdout] 205 +                                 .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:232:30
[INFO] [stdout]     |
[INFO] [stdout] 232 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 232 -                             .trim_right_matches(", ")
[INFO] [stdout] 232 +                             .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:306:57
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 if db.tag_to_product_info.contains_key(t.clone()) {
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:307:63
[INFO] [stdout]     |
[INFO] [stdout] 307 |                     let ref tag_map = db.tag_to_product_info[t.clone()];
[INFO] [stdout]     |                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/db/graph.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph {
[INFO] [stdout]    |                     --        ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph<'a> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/setup.rs:394:73
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 let mut largest_version = versions.iter().max().unwrap().clone().clone();
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.25s
[INFO] running `Command { std: "docker" "inspect" "ff71db3224cdf9c16161467c0598a4805fde999556f6224c3754bc9c8c3f8326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff71db3224cdf9c16161467c0598a4805fde999556f6224c3754bc9c8c3f8326", kill_on_drop: false }`
[INFO] [stdout] ff71db3224cdf9c16161467c0598a4805fde999556f6224c3754bc9c8c3f8326
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3fb7b15a05248ea3ffaed1e7e28ece6526e02dc32c1f4ac52bcc50f819444540
[INFO] running `Command { std: "docker" "start" "-a" "3fb7b15a05248ea3ffaed1e7e28ece6526e02dc32c1f4ac52bcc50f819444540", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `clap`
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use clap;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use fnv;
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static`
[INFO] [stdout]   --> src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/lib.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, error, info, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `preferences`
[INFO] [stdout]   --> src/lib.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use preferences;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex`
[INFO] [stdout]   --> src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use regex;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/db/table.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | / /**!
[INFO] [stdout] 15 | |  A Table object is the in memory representation of a products table file.
[INFO] [stdout] 16 | | */
[INFO] [stdout]    | |__^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:142:43
[INFO] [stdout]     |
[INFO] [stdout] 142 |         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 142 -         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout] 142 +         println!("{}", self.output_string.trim_end_matches("\n\n"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:205:34
[INFO] [stdout]     |
[INFO] [stdout] 205 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 205 -                                 .trim_right_matches(", ")
[INFO] [stdout] 205 +                                 .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:232:30
[INFO] [stdout]     |
[INFO] [stdout] 232 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 232 -                             .trim_right_matches(", ")
[INFO] [stdout] 232 +                             .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:306:57
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 if db.tag_to_product_info.contains_key(t.clone()) {
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:307:63
[INFO] [stdout]     |
[INFO] [stdout] 307 |                     let ref tag_map = db.tag_to_product_info[t.clone()];
[INFO] [stdout]     |                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/db/graph.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph {
[INFO] [stdout]    |                     --        ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph<'a> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/setup.rs:394:73
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 let mut largest_version = versions.iter().max().unwrap().clone().clone();
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling reups v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clap`
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use clap;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use fnv;
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static`
[INFO] [stdout]   --> src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/lib.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, error, info, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `preferences`
[INFO] [stdout]   --> src/lib.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use preferences;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex`
[INFO] [stdout]   --> src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use regex;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/db/table.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | / /**!
[INFO] [stdout] 15 | |  A Table object is the in memory representation of a products table file.
[INFO] [stdout] 16 | | */
[INFO] [stdout]    | |__^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:142:43
[INFO] [stdout]     |
[INFO] [stdout] 142 |         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 142 -         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stdout] 142 +         println!("{}", self.output_string.trim_end_matches("\n\n"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:205:34
[INFO] [stdout]     |
[INFO] [stdout] 205 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 205 -                                 .trim_right_matches(", ")
[INFO] [stdout] 205 +                                 .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/list.rs:232:30
[INFO] [stdout]     |
[INFO] [stdout] 232 | ...                   .trim_right_matches(", ")
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 232 -                             .trim_right_matches(", ")
[INFO] [stdout] 232 +                             .trim_end_matches(", ")
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:306:57
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 if db.tag_to_product_info.contains_key(t.clone()) {
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/db/mod.rs:307:63
[INFO] [stdout]     |
[INFO] [stdout] 307 |                     let ref tag_map = db.tag_to_product_info[t.clone()];
[INFO] [stdout]     |                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/db/graph.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph {
[INFO] [stdout]    |                     --        ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn new(db: &'a DB) -> Graph<'a> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> src/setup.rs:394:73
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 let mut largest_version = versions.iter().max().unwrap().clone().clone();
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.81s
[INFO] running `Command { std: "docker" "inspect" "3fb7b15a05248ea3ffaed1e7e28ece6526e02dc32c1f4ac52bcc50f819444540", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3fb7b15a05248ea3ffaed1e7e28ece6526e02dc32c1f4ac52bcc50f819444540", kill_on_drop: false }`
[INFO] [stdout] 3fb7b15a05248ea3ffaed1e7e28ece6526e02dc32c1f4ac52bcc50f819444540
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 12157cef461e31fdb8bffc0cfcb96e3b21cea477bd60423531ab4e79723bd06b
[INFO] running `Command { std: "docker" "start" "-a" "12157cef461e31fdb8bffc0cfcb96e3b21cea477bd60423531ab4e79723bd06b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `clap`
[INFO] [stdout] 
[INFO] [stderr]   --> src/lib.rs:12:5
[INFO] [stdout] running 0 tests
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr] 12 | use clap;
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    |     ^^^^
[INFO] [stdout] 
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] running 0 tests
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused import: `dirs`
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]   --> src/lib.rs:13:5
[INFO] [stdout] 
[INFO] [stderr]    |
[INFO] [stderr] 13 | use dirs;
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fnv`
[INFO] [stderr]   --> src/lib.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use fnv;
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `lazy_static`
[INFO] [stderr]   --> src/lib.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use lazy_static;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]   --> src/lib.rs:19:18
[INFO] [stderr]    |
[INFO] [stderr] 19 | use log::{debug, error, info, warn};
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `preferences`
[INFO] [stderr]   --> src/lib.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use preferences;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `regex`
[INFO] [stderr]   --> src/lib.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use regex;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/db/table.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | / /**!
[INFO] [stderr] 15 | |  A Table object is the in memory representation of a products table file.
[INFO] [stderr] 16 | | */
[INFO] [stderr]    | |__^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]    --> src/list.rs:142:43
[INFO] [stderr]     |
[INFO] [stderr] 142 |         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 142 -         println!("{}", self.output_string.trim_right_matches("\n\n"));
[INFO] [stderr] 142 +         println!("{}", self.output_string.trim_end_matches("\n\n"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]    --> src/list.rs:205:34
[INFO] [stderr]     |
[INFO] [stderr] 205 | ...                   .trim_right_matches(", ")
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 205 -                                 .trim_right_matches(", ")
[INFO] [stderr] 205 +                                 .trim_end_matches(", ")
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]    --> src/list.rs:232:30
[INFO] [stderr]     |
[INFO] [stderr] 232 | ...                   .trim_right_matches(", ")
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 232 -                             .trim_right_matches(", ")
[INFO] [stderr] 232 +                             .trim_end_matches(", ")
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stderr]    --> src/db/mod.rs:306:57
[INFO] [stderr]     |
[INFO] [stderr] 306 |                 if db.tag_to_product_info.contains_key(t.clone()) {
[INFO] [stderr]     |                                                         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stderr]    --> src/db/mod.rs:307:63
[INFO] [stderr]     |
[INFO] [stderr] 307 |                     let ref tag_map = db.tag_to_product_info[t.clone()];
[INFO] [stderr]     |                                                               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/db/graph.rs:52:31
[INFO] [stderr]    |
[INFO] [stderr] 52 |     pub fn new(db: &'a DB) -> Graph {
[INFO] [stderr]    |                     --        ^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 52 |     pub fn new(db: &'a DB) -> Graph<'a> {
[INFO] [stderr]    |                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stderr]    --> src/setup.rs:394:73
[INFO] [stderr]     |
[INFO] [stderr] 394 |                 let mut largest_version = versions.iter().max().unwrap().clone().clone();
[INFO] [stderr]     |                                                                         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `reups` (lib) generated 15 warnings (run `cargo fix --lib -p reups` to apply 11 suggestions)
[INFO] [stderr] warning: `reups` (lib test) generated 15 warnings (15 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reups_lib-9e738bac7958091e)
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reups-67c2b14e5495cb99)
[INFO] [stderr]    Doc-tests reups_lib
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "12157cef461e31fdb8bffc0cfcb96e3b21cea477bd60423531ab4e79723bd06b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12157cef461e31fdb8bffc0cfcb96e3b21cea477bd60423531ab4e79723bd06b", kill_on_drop: false }`
[INFO] [stdout] 12157cef461e31fdb8bffc0cfcb96e3b21cea477bd60423531ab4e79723bd06b
