[INFO] cloning repository https://github.com/vintersnow/edit_distance.rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vintersnow/edit_distance.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvintersnow%2Fedit_distance.rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvintersnow%2Fedit_distance.rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4a2914343119708430980c38346a214fdfe9d155
[INFO] checking vintersnow/edit_distance.rs against master#8a65ee08296b36342bf7c3cdc15312ccbc357227 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvintersnow%2Fedit_distance.rs" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vintersnow/edit_distance.rs on toolchain 8a65ee08296b36342bf7c3cdc15312ccbc357227
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vintersnow/edit_distance.rs
[INFO] finished tweaking git repo https://github.com/vintersnow/edit_distance.rs
[INFO] tweaked toml for git repo https://github.com/vintersnow/edit_distance.rs written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/vintersnow/edit_distance.rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 553fdea9d080deb965736b4edab67e1c970c2b1b897f7556beecfc822d664852
[INFO] running `Command { std: "docker" "start" "-a" "553fdea9d080deb965736b4edab67e1c970c2b1b897f7556beecfc822d664852", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "553fdea9d080deb965736b4edab67e1c970c2b1b897f7556beecfc822d664852", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "553fdea9d080deb965736b4edab67e1c970c2b1b897f7556beecfc822d664852", kill_on_drop: false }`
[INFO] [stdout] 553fdea9d080deb965736b4edab67e1c970c2b1b897f7556beecfc822d664852
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b8a6473906e068a334f89d6b04b694e1a9ca0e161dca3710d35c2b4808ecb636
[INFO] running `Command { std: "docker" "start" "-a" "b8a6473906e068a334f89d6b04b694e1a9ca0e161dca3710d35c2b4808ecb636", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking getopts v0.2.17
[INFO] [stderr]     Checking edit_distance v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut v: Vec<u32> = vec![0; s2.len()];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut v: Vec<u32> = vec![0; s2.len()];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input`, `insert`, `delete`, and `change` are never read
[INFO] [stdout]   --> src/main.rs:19:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Args {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 19 |   input: Vec<String>,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 20 |   insert: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 21 |   delete: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 22 |   change: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Args` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:112:61
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 0 => {s2_idx+=1; ("+", (" ", self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:113:56
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 1 => {s1_idx+=1; ("-", (self.s1[s1_idx].clone(), " "))},
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input`, `insert`, `delete`, and `change` are never read
[INFO] [stdout]   --> src/main.rs:19:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Args {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 19 |   input: Vec<String>,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 20 |   insert: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 21 |   delete: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 22 |   change: u32,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Args` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:112:61
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 0 => {s2_idx+=1; ("+", (" ", self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:113:56
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 1 => {s1_idx+=1; ("-", (self.s1[s1_idx].clone(), " "))},
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:114:67
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 2 => {s1_idx+=1; s2_idx+=1; ("#", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:114:92
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 2 => {s1_idx+=1; s2_idx+=1; ("#", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:115:67
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 _ => {s1_idx+=1; s2_idx+=1; ("=", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:115:92
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 _ => {s1_idx+=1; s2_idx+=1; ("=", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/main.rs:152:32
[INFO] [stdout]     |
[INFO] [stdout] 152 |     .unwrap_or_else(|f| panic!(f.to_string()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 152 |     .unwrap_or_else(|f| panic!("{}", f.to_string()));
[INFO] [stdout]     |                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:114:67
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 2 => {s1_idx+=1; s2_idx+=1; ("#", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:114:92
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 2 => {s1_idx+=1; s2_idx+=1; ("#", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:115:67
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 _ => {s1_idx+=1; s2_idx+=1; ("=", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:115:92
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 _ => {s1_idx+=1; s2_idx+=1; ("=", (self.s1[s1_idx].clone(), self.s2[s2_idx].clone()))},
[INFO] [stdout]     |                                                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/main.rs:152:32
[INFO] [stdout]     |
[INFO] [stdout] 152 |     .unwrap_or_else(|f| panic!(f.to_string()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 152 |     .unwrap_or_else(|f| panic!("{}", f.to_string()));
[INFO] [stdout]     |                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] running `Command { std: "docker" "inspect" "b8a6473906e068a334f89d6b04b694e1a9ca0e161dca3710d35c2b4808ecb636", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8a6473906e068a334f89d6b04b694e1a9ca0e161dca3710d35c2b4808ecb636", kill_on_drop: false }`
[INFO] [stdout] b8a6473906e068a334f89d6b04b694e1a9ca0e161dca3710d35c2b4808ecb636
