[INFO] cloning repository https://github.com/SixArm/deduplicate-files [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SixArm/deduplicate-files" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSixArm%2Fdeduplicate-files", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSixArm%2Fdeduplicate-files'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 46f36c35e0fe9f24c8fe475fa4871c23740b3484 [INFO] checking SixArm/deduplicate-files/46f36c35e0fe9f24c8fe475fa4871c23740b3484 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSixArm%2Fdeduplicate-files" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/SixArm/deduplicate-files on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/SixArm/deduplicate-files [INFO] finished tweaking git repo https://github.com/SixArm/deduplicate-files [INFO] tweaked toml for git repo https://github.com/SixArm/deduplicate-files written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/SixArm/deduplicate-files 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded assure v1.11.0 [INFO] [stderr] Downloaded assertables v3.2.2 [INFO] [stderr] Downloaded sixarm_collections v1.1.1 [INFO] [stderr] Downloaded sixarm_assert v1.1.1 [INFO] [stderr] Downloaded clap v3.0.0-rc.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 367d768a8344ec57d416cf87decdee20498699d8de212855edbca2d525a88ef4 [INFO] running `Command { std: "docker" "start" "-a" "367d768a8344ec57d416cf87decdee20498699d8de212855edbca2d525a88ef4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "367d768a8344ec57d416cf87decdee20498699d8de212855edbca2d525a88ef4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "367d768a8344ec57d416cf87decdee20498699d8de212855edbca2d525a88ef4", kill_on_drop: false }` [INFO] [stdout] 367d768a8344ec57d416cf87decdee20498699d8de212855edbca2d525a88ef4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4d42f2c85190cee05e784ed352f33b94eaf15b8304154daeb23a9eff2e69df49 [INFO] running `Command { std: "docker" "start" "-a" "4d42f2c85190cee05e784ed352f33b94eaf15b8304154daeb23a9eff2e69df49", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling libc v0.2.111 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking sixarm_assert v1.1.1 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking sixarm_collections v1.1.1 [INFO] [stderr] Checking assert_matches v1.5.0 [INFO] [stderr] Checking assure v1.11.0 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Checking custom_error v1.9.2 [INFO] [stderr] Checking assertables v3.2.2 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking terminal_size v0.1.17 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking textwrap v0.14.2 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking clap v3.0.0-rc.4 [INFO] [stderr] Checking deduplicate-directories v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0583]: file not found for module `assure` [INFO] [stdout] --> src/main.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod assure; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `assure`, create file "src/assure.rs" or "src/assure/mod.rs" [INFO] [stdout] = note: if there is a `mod assure` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `util` [INFO] [stdout] --> src/main.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | mod util; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `util`, create file "src/util.rs" or "src/util/mod.rs" [INFO] [stdout] = note: if there is a `mod util` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `assure` [INFO] [stdout] --> src/main.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | mod assure; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `assure`, create file "src/assure.rs" or "src/assure/mod.rs" [INFO] [stdout] = note: if there is a `mod assure` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `util` [INFO] [stdout] --> src/main.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | mod util; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `util`, create file "src/util.rs" or "src/util/mod.rs" [INFO] [stdout] = note: if there is a `mod util` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: 2 positional arguments in format string, but there is 1 argument [INFO] [stdout] --> src/main.rs:50:51 [INFO] [stdout] | [INFO] [stdout] 50 | if args.verbose > 0 { println!("on_clone path:{:?} path:{:?}", path.as_ref())} [INFO] [stdout] | ^^^^ ^^^^ ------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: 2 positional arguments in format string, but there is 1 argument [INFO] [stdout] --> src/main.rs:50:51 [INFO] [stdout] | [INFO] [stdout] 50 | if args.verbose > 0 { println!("on_clone path:{:?} path:{:?}", path.as_ref())} [INFO] [stdout] | ^^^^ ^^^^ ------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Args` is defined multiple times [INFO] [stdout] --> src/clap.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::args::Args; [INFO] [stdout] | ----------------- previous import of the type `Args` here [INFO] [stdout] ... [INFO] [stdout] 16 | use crate::args::Args; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ `Args` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `Args` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Args` is defined multiple times [INFO] [stdout] --> src/clap.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::args::Args; [INFO] [stdout] | ----------------- previous import of the type `Args` here [INFO] [stdout] ... [INFO] [stdout] 16 | use crate::args::Args; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ `Args` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `Args` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `clap::ArgAction` [INFO] [stdout] --> src/clap.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | use clap::{Arg, ArgAction}; [INFO] [stdout] | ^^^^^^^^^ no `ArgAction` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `util::file_bytes_eq` [INFO] [stdout] --> src/main.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use util::{file_bytes_eq}; [INFO] [stdout] | ^^^^^^^^^^^^^ no `file_bytes_eq` in `util` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `command` in `clap` [INFO] [stdout] --> src/clap.rs:20:25 [INFO] [stdout] | [INFO] [stdout] 20 | let matches = clap::command!() [INFO] [stdout] | ^^^^^^^ could not find `command` in `clap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `clap::ArgAction` [INFO] [stdout] --> src/clap.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | use clap::{Arg, ArgAction}; [INFO] [stdout] | ^^^^^^^^^ no `ArgAction` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `util::file_bytes_eq` [INFO] [stdout] --> src/main.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use util::{file_bytes_eq}; [INFO] [stdout] | ^^^^^^^^^^^^^ no `file_bytes_eq` in `util` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `command` in `clap` [INFO] [stdout] --> src/clap.rs:20:25 [INFO] [stdout] | [INFO] [stdout] 20 | let matches = clap::command!() [INFO] [stdout] | ^^^^^^^ could not find `command` in `clap` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Values` [INFO] [stdout] --> src/clap.rs:97:27 [INFO] [stdout] | [INFO] [stdout] 97 | .unwrap_or_else(||Values::default()) [INFO] [stdout] | ^^^^^^ use of undeclared type `Values` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 12 + use std::collections::btree_map::Values; [INFO] [stdout] | [INFO] [stdout] 12 + use std::collections::hash_map::Values; [INFO] [stdout] | [INFO] [stdout] 12 + use clap::Values; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found built-in attribute `path` [INFO] [stdout] --> src/main.rs:50:68 [INFO] [stdout] | [INFO] [stdout] 50 | if args.verbose > 0 { println!("on_clone path:{:?} path:{:?}", path.as_ref())} [INFO] [stdout] | ^^^^ not a value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `args` in module `clap` [INFO] [stdout] --> src/main.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let args = clap::args(); [INFO] [stdout] | ^^^^ not found in `clap` [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 + use std::env::args; [INFO] [stdout] | [INFO] [stdout] help: if you import `args`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 84 - let args = clap::args(); [INFO] [stdout] 84 + let args = args(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::args::Args` [INFO] [stdout] --> src/clap.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::args::Args; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Values` [INFO] [stdout] --> src/clap.rs:97:27 [INFO] [stdout] | [INFO] [stdout] 97 | .unwrap_or_else(||Values::default()) [INFO] [stdout] | ^^^^^^ use of undeclared type `Values` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 12 + use std::collections::btree_map::Values; [INFO] [stdout] | [INFO] [stdout] 12 + use std::collections::hash_map::Values; [INFO] [stdout] | [INFO] [stdout] 12 + use clap::Values; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found built-in attribute `path` [INFO] [stdout] --> src/main.rs:50:68 [INFO] [stdout] | [INFO] [stdout] 50 | if args.verbose > 0 { println!("on_clone path:{:?} path:{:?}", path.as_ref())} [INFO] [stdout] | ^^^^ not a value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `args` in module `clap` [INFO] [stdout] --> src/main.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let args = clap::args(); [INFO] [stdout] | ^^^^ not found in `clap` [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 + use std::env::args; [INFO] [stdout] | [INFO] [stdout] help: if you import `args`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 84 - let args = clap::args(); [INFO] [stdout] 84 + let args = args(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::args::Args` [INFO] [stdout] --> src/clap.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::args::Args; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `action` found for struct `Arg` in the current scope [INFO] [stdout] --> src/clap.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 25 | .arg(Arg::new("verbose") [INFO] [stdout] | __________- [INFO] [stdout] 26 | | .help("Set the verbosity level") [INFO] [stdout] 27 | | .short('v') [INFO] [stdout] 28 | | .long("verbose") [INFO] [stdout] 29 | | .action(ArgAction::Count)) [INFO] [stdout] | | -^^^^^^ method not found in `Arg<'_>` [INFO] [stdout] | |_________| [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `action` found for struct `Arg` in the current scope [INFO] [stdout] --> src/clap.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 25 | .arg(Arg::new("verbose") [INFO] [stdout] | __________- [INFO] [stdout] 26 | | .help("Set the verbosity level") [INFO] [stdout] 27 | | .short('v') [INFO] [stdout] 28 | | .long("verbose") [INFO] [stdout] 29 | | .action(ArgAction::Count)) [INFO] [stdout] | | -^^^^^^ method not found in `Arg<'_>` [INFO] [stdout] | |_________| [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `insert_path` found for mutable reference `&mut HashMap>` in the current scope [INFO] [stdout] --> src/main.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | tracker.insert_path(path.as_ref().to_path_buf()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_insert_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 46 | tracker.sub_insert_path(path.as_ref().to_path_buf()); [INFO] [stdout] | ~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | for len in b_tracker.map.keys() { [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | if !a_tracker.map.contains_key(len) { continue } [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:61:48 [INFO] [stdout] | [INFO] [stdout] 61 | let a_paths: &SetOfPathBuf = a_tracker.map.get(len).unwrap(); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:62:48 [INFO] [stdout] | [INFO] [stdout] 62 | let b_paths: &SetOfPathBuf = b_tracker.map.get(len).unwrap(); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `on_duplicate_file` in this scope [INFO] [stdout] --> src/main.rs:71:29 [INFO] [stdout] | [INFO] [stdout] 71 | ... on_duplicate_file(a_path, b_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `insert_path` found for mutable reference `&mut HashMap>` in the current scope [INFO] [stdout] --> src/main.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | tracker.insert_path(path.as_ref().to_path_buf()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_insert_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 46 | tracker.sub_insert_path(path.as_ref().to_path_buf()); [INFO] [stdout] | ~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | for len in b_tracker.map.keys() { [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | if !a_tracker.map.contains_key(len) { continue } [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:61:48 [INFO] [stdout] | [INFO] [stdout] 61 | let a_paths: &SetOfPathBuf = a_tracker.map.get(len).unwrap(); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `map` on type `HashMap>` [INFO] [stdout] --> src/main.rs:62:48 [INFO] [stdout] | [INFO] [stdout] 62 | let b_paths: &SetOfPathBuf = b_tracker.map.get(len).unwrap(); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `on_duplicate_file` in this scope [INFO] [stdout] --> src/main.rs:71:29 [INFO] [stdout] | [INFO] [stdout] 71 | ... on_duplicate_file(a_path, b_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `insert_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | tracker.insert_path(path.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_insert_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 102 | tracker.sub_insert_path(path.to_owned()); [INFO] [stdout] | ~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `insert_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | tracker.insert_path(path.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_insert_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 102 | tracker.sub_insert_path(path.to_owned()); [INFO] [stdout] | ~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `delete`, `find_cloned`, `find_clones` and 8 other fields in initializer of `args::Args` [INFO] [stdout] --> src/main.rs:122:20 [INFO] [stdout] | [INFO] [stdout] 122 | let args = Args {}; [INFO] [stdout] | ^^^^ missing `delete`, `find_cloned`, `find_clones` and 8 other fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `args` [INFO] [stdout] --> src/main.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn on_path>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ---- move occurs because `args` has type `args::Args`, which does not implement the `Copy` trait [INFO] [stdout] 31 | if args.verbose > 0 { println!("on_path path:{:?}", path.as_ref())} [INFO] [stdout] 32 | / for entry in WalkDir::new(path.as_ref()) [INFO] [stdout] 33 | | .into_iter() [INFO] [stdout] 34 | | .filter_map(|e| e.ok()) [INFO] [stdout] 35 | | .filter(|e| e.file_type().is_file()) { [INFO] [stdout] | |________________________________________- inside of this loop [INFO] [stdout] 36 | on_file(args, tracker, entry.path()); [INFO] [stdout] | ^^^^ value moved here, in previous iteration of loop [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `on_file` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/main.rs:41:38 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn on_file>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ------- in this function ^^^^ this parameter takes ownership of the value [INFO] [stdout] note: if `args::Args` implemented `Clone`, you could clone the value [INFO] [stdout] --> src/args.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Args { [INFO] [stdout] | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | on_file(args, tracker, entry.path()); [INFO] [stdout] | ---- you could clone this value [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 32 ~ let mut value = on_file(args, tracker, entry.path()); [INFO] [stdout] 33 ~ for entry in WalkDir::new(path.as_ref()) [INFO] [stdout] 34 | .into_iter() [INFO] [stdout] 35 | .filter_map(|e| e.ok()) [INFO] [stdout] 36 | .filter(|e| e.file_type().is_file()) { [INFO] [stdout] 37 ~ value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `contains_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | assert!(tracker.contains_path(&path_buf_alpha)); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_contains_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 129 | assert!(tracker.sub_contains_path(&path_buf_alpha)); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0252, E0382, E0423, E0425, E0432, E0433, E0583, E0599, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0252`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `contains_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:130:25 [INFO] [stdout] | [INFO] [stdout] 130 | assert!(tracker.contains_path(&path_buf_bravo)); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_contains_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 130 | assert!(tracker.sub_contains_path(&path_buf_bravo)); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `contains_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:131:25 [INFO] [stdout] | [INFO] [stdout] 131 | assert!(tracker.contains_path(&path_buf_charlie)); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_contains_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 131 | assert!(tracker.sub_contains_path(&path_buf_charlie)); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `delete`, `find_cloned`, `find_clones` and 8 other fields in initializer of `args::Args` [INFO] [stdout] --> src/main.rs:137:20 [INFO] [stdout] | [INFO] [stdout] 137 | let args = Args {}; [INFO] [stdout] | ^^^^ missing `delete`, `find_cloned`, `find_clones` and 8 other fields [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `deduplicate-directories` (bin "deduplicate-directories") due to 20 previous errors; 1 warning emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: no method named `contains_path` found for struct `HashMap` in the current scope [INFO] [stdout] --> src/main.rs:141:25 [INFO] [stdout] | [INFO] [stdout] 141 | assert!(tracker.contains_path(&path_buf)); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `sub_contains_path` with a similar name [INFO] [stdout] | [INFO] [stdout] 141 | assert!(tracker.sub_contains_path(&path_buf)); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/main.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | on_path(&mut a_tracker, a_path_buf); [INFO] [stdout] | ^^^^^^^ -------------- argument #1 of type `args::Args` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/main.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn on_path>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ^^^^^^^ ---------- --------------------- ------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 157 | on_path(/* args::Args */, &mut a_tracker, a_path_buf); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/main.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | on_path(&mut b_tracker, b_path_buf); [INFO] [stdout] | ^^^^^^^ -------------- argument #1 of type `args::Args` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/main.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn on_path>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ^^^^^^^ ---------- --------------------- ------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 158 | on_path(/* args::Args */, &mut b_tracker, b_path_buf); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `args` [INFO] [stdout] --> src/main.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn on_path>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ---- move occurs because `args` has type `args::Args`, which does not implement the `Copy` trait [INFO] [stdout] 31 | if args.verbose > 0 { println!("on_path path:{:?}", path.as_ref())} [INFO] [stdout] 32 | / for entry in WalkDir::new(path.as_ref()) [INFO] [stdout] 33 | | .into_iter() [INFO] [stdout] 34 | | .filter_map(|e| e.ok()) [INFO] [stdout] 35 | | .filter(|e| e.file_type().is_file()) { [INFO] [stdout] | |________________________________________- inside of this loop [INFO] [stdout] 36 | on_file(args, tracker, entry.path()); [INFO] [stdout] | ^^^^ value moved here, in previous iteration of loop [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in function `on_file` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/main.rs:41:38 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn on_file>(args: Args, tracker: &mut Tracker, path: T) -> () { [INFO] [stdout] | ------- in this function ^^^^ this parameter takes ownership of the value [INFO] [stdout] note: if `args::Args` implemented `Clone`, you could clone the value [INFO] [stdout] --> src/args.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Args { [INFO] [stdout] | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | on_file(args, tracker, entry.path()); [INFO] [stdout] | ---- you could clone this value [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 32 ~ let mut value = on_file(args, tracker, entry.path()); [INFO] [stdout] 33 ~ for entry in WalkDir::new(path.as_ref()) [INFO] [stdout] 34 | .into_iter() [INFO] [stdout] 35 | .filter_map(|e| e.ok()) [INFO] [stdout] 36 | .filter(|e| e.file_type().is_file()) { [INFO] [stdout] 37 ~ value; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 27 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0063, E0252, E0382, E0423, E0425, E0432, E0433, E0583... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `deduplicate-directories` (bin "deduplicate-directories" test) due to 28 previous errors; 1 warning emitted [INFO] running `Command { std: "docker" "inspect" "4d42f2c85190cee05e784ed352f33b94eaf15b8304154daeb23a9eff2e69df49", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4d42f2c85190cee05e784ed352f33b94eaf15b8304154daeb23a9eff2e69df49", kill_on_drop: false }` [INFO] [stdout] 4d42f2c85190cee05e784ed352f33b94eaf15b8304154daeb23a9eff2e69df49