[INFO] cloning repository https://github.com/shybyte/exercises-in-programming-style-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shybyte/exercises-in-programming-style-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshybyte%2Fexercises-in-programming-style-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshybyte%2Fexercises-in-programming-style-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] eeb1242d7416b4a4b163f9be2fdb4c19984f436f [INFO] checking shybyte/exercises-in-programming-style-rust against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshybyte%2Fexercises-in-programming-style-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/shybyte/exercises-in-programming-style-rust on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/shybyte/exercises-in-programming-style-rust [INFO] finished tweaking git repo https://github.com/shybyte/exercises-in-programming-style-rust [INFO] tweaked toml for git repo https://github.com/shybyte/exercises-in-programming-style-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/shybyte/exercises-in-programming-style-rust 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 997c7f98c02ee616b666174fcec94deeb478374c93b8d3528370742b7199fd6d [INFO] running `Command { std: "docker" "start" "-a" "997c7f98c02ee616b666174fcec94deeb478374c93b8d3528370742b7199fd6d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "997c7f98c02ee616b666174fcec94deeb478374c93b8d3528370742b7199fd6d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "997c7f98c02ee616b666174fcec94deeb478374c93b8d3528370742b7199fd6d", kill_on_drop: false }` [INFO] [stdout] 997c7f98c02ee616b666174fcec94deeb478374c93b8d3528370742b7199fd6d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a51c4f98adb932f208d3e3fded59e7f44786ae3ebe77db026a1d1abe9c8617b1 [INFO] running `Command { std: "docker" "start" "-a" "a51c4f98adb932f208d3e3fded59e7f44786ae3ebe77db026a1d1abe9c8617b1", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Checking exercises_in_programming_style_rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / /// Takes a path to a file and assigns the entire [INFO] [stdout] 17 | | /// contents of the file to the global variable data [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] 18 | / let read_file = |filename: &str| { [INFO] [stdout] 19 | | let mut text = String::new(); [INFO] [stdout] 20 | | File::open(filename).unwrap().read_to_string(&mut text).unwrap(); [INFO] [stdout] 21 | | data.borrow_mut().append(&mut text.chars().collect()); [INFO] [stdout] 22 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | /// Replaces all nonalphanumeric chars in data with white space [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | / let filter_chars_and_normalize = || { [INFO] [stdout] 27 | | for c in data.borrow_mut().iter_mut() { [INFO] [stdout] 28 | | if !c.is_alphanumeric() { [INFO] [stdout] 29 | | *c = ' '; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | /// Scans data for words, filling the global variable words [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | / let scan = || { [INFO] [stdout] 38 | | let data_str: String = data.borrow().iter().collect(); [INFO] [stdout] 39 | | words.borrow_mut().append(&mut data_str.split(' ').map(|s| s.to_string()).filter(|s| !s.is_empty()).collect()); [INFO] [stdout] 40 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | /// Scans data for words, filling the global variable words [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 43 | / let remove_stop_words = || { [INFO] [stdout] 44 | | let mut stop_words: HashSet = BufReader::new(File::open("test-data/stop_words.txt").unwrap()) [INFO] [stdout] 45 | | .split(b',').map(|b| String::from_utf8_lossy(&b.unwrap()).into()).collect(); [INFO] [stdout] 46 | | for ascii_lowercase in b'a'..b'z' { stop_words.insert((ascii_lowercase as char).to_string()); } [INFO] [stdout] ... | [INFO] [stdout] 58 | | } [INFO] [stdout] 59 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | /// Creates a list of pairs associating words with frequencies [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 62 | / let frequencies = || { [INFO] [stdout] 63 | | let mut word_freqs_mut = word_freqs.borrow_mut(); [INFO] [stdout] 64 | | for w in words.borrow().iter() { [INFO] [stdout] 65 | | if let Some(index) = word_freqs_mut.iter().position(|pair| &pair.0 == w) { [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | /// Sorts word_freqs by frequency [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | / let sort = || { [INFO] [stdout] 75 | | word_freqs.borrow_mut().sort_by_key(|p| 0 - p.1); [INFO] [stdout] 76 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / /// Takes a path to a file and assigns the entire [INFO] [stdout] 17 | | /// contents of the file to the global variable data [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] 18 | / let read_file = |filename: &str| { [INFO] [stdout] 19 | | let mut text = String::new(); [INFO] [stdout] 20 | | File::open(filename).unwrap().read_to_string(&mut text).unwrap(); [INFO] [stdout] 21 | | data.borrow_mut().append(&mut text.chars().collect()); [INFO] [stdout] 22 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | /// Replaces all nonalphanumeric chars in data with white space [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | / let filter_chars_and_normalize = || { [INFO] [stdout] 27 | | for c in data.borrow_mut().iter_mut() { [INFO] [stdout] 28 | | if !c.is_alphanumeric() { [INFO] [stdout] 29 | | *c = ' '; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | /// Scans data for words, filling the global variable words [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | / let scan = || { [INFO] [stdout] 38 | | let data_str: String = data.borrow().iter().collect(); [INFO] [stdout] 39 | | words.borrow_mut().append(&mut data_str.split(' ').map(|s| s.to_string()).filter(|s| !s.is_empty()).collect()); [INFO] [stdout] 40 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | /// Scans data for words, filling the global variable words [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 43 | / let remove_stop_words = || { [INFO] [stdout] 44 | | let mut stop_words: HashSet = BufReader::new(File::open("test-data/stop_words.txt").unwrap()) [INFO] [stdout] 45 | | .split(b',').map(|b| String::from_utf8_lossy(&b.unwrap()).into()).collect(); [INFO] [stdout] 46 | | for ascii_lowercase in b'a'..b'z' { stop_words.insert((ascii_lowercase as char).to_string()); } [INFO] [stdout] ... | [INFO] [stdout] 58 | | } [INFO] [stdout] 59 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | /// Creates a list of pairs associating words with frequencies [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 62 | / let frequencies = || { [INFO] [stdout] 63 | | let mut word_freqs_mut = word_freqs.borrow_mut(); [INFO] [stdout] 64 | | for w in words.borrow().iter() { [INFO] [stdout] 65 | | if let Some(index) = word_freqs_mut.iter().position(|pair| &pair.0 == w) { [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/04-cookbook.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | /// Sorts word_freqs by frequency [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 74 | / let sort = || { [INFO] [stdout] 75 | | word_freqs.borrow_mut().sort_by_key(|p| 0 - p.1); [INFO] [stdout] 76 | | }; [INFO] [stdout] | |______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/bin/10-things.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn info(object: &T) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `TFExercise` is never used [INFO] [stdout] --> src/bin/10-things.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | trait TFExercise: Debug { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/bin/10-things.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn info(object: &T) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `TFExercise` is never used [INFO] [stdout] --> src/bin/10-things.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | trait TFExercise: Debug { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.19s [INFO] running `Command { std: "docker" "inspect" "a51c4f98adb932f208d3e3fded59e7f44786ae3ebe77db026a1d1abe9c8617b1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a51c4f98adb932f208d3e3fded59e7f44786ae3ebe77db026a1d1abe9c8617b1", kill_on_drop: false }` [INFO] [stdout] a51c4f98adb932f208d3e3fded59e7f44786ae3ebe77db026a1d1abe9c8617b1