[INFO] fetching crate cum-build 0.3.0...
[INFO] testing cum-build-0.3.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate cum-build 0.3.0 into /workspace/builds/worker-0-tc1/source
[INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate cum-build 0.3.0
[INFO] finished tweaking crates.io crate cum-build 0.3.0
[INFO] tweaked toml for crates.io crate cum-build 0.3.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate cum-build 0.3.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cum-build 0.3.0 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded map-macro v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7423b83ac27ad07581f2b077d25e6ca3d923e4354fbe0201218f1edecd50f2a1
[INFO] running `Command { std: "docker" "start" "-a" "7423b83ac27ad07581f2b077d25e6ca3d923e4354fbe0201218f1edecd50f2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7423b83ac27ad07581f2b077d25e6ca3d923e4354fbe0201218f1edecd50f2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7423b83ac27ad07581f2b077d25e6ca3d923e4354fbe0201218f1edecd50f2a1", kill_on_drop: false }`
[INFO] [stdout] 7423b83ac27ad07581f2b077d25e6ca3d923e4354fbe0201218f1edecd50f2a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3a6b0dc62edb1a20c74e0f10a4b0a3f7f38a920fba3e80affea09ac55ea1b9b2
[INFO] running `Command { std: "docker" "start" "-a" "3a6b0dc62edb1a20c74e0f10a4b0a3f7f38a920fba3e80affea09ac55ea1b9b2", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling winnow v0.7.1
[INFO] [stderr]    Compiling notify-types v2.0.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling map-macro v0.3.0
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]    Compiling inotify v0.11.0
[INFO] [stderr]    Compiling notify v8.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling toml_edit v0.22.23
[INFO] [stderr]    Compiling toml v0.8.20
[INFO] [stderr]    Compiling cum-build v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/utils.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[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: `std::io::Write`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/utils.rs:844:18
[INFO] [stdout]     |
[INFO] [stdout] 844 |     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout]     |                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 844 -     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout] 844 +     let binary = format!("{}/{}", cwd(), name) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/sperm.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[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: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::Table`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use toml::Table;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `walkdir::WalkDir`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use walkdir::WalkDir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/utils.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/utils.rs:844:18
[INFO] [stdout]     |
[INFO] [stdout] 844 |     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout]     |                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 844 -     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout] 844 +     let binary = format!("{}/{}", cwd(), name) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use types::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/utils.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 let code = output.status.code().unwrap();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:299:43
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 299 -                         EventKind::Create(file) => {
[INFO] [stdout] 299 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:306:43
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 306 -                         EventKind::Remove(file) => {
[INFO] [stdout] 306 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/utils.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let handle = thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:575:58
[INFO] [stdout]     |
[INFO] [stdout] 575 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:561:58
[INFO] [stdout]     |
[INFO] [stdout] 561 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:454:12
[INFO] [stdout]     |
[INFO] [stdout] 454 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/utils.rs:733:5
[INFO] [stdout]     |
[INFO] [stdout] 733 |     output: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `libs_post`
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libs_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:924:9
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let mut cmds = compile_objects(
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linker`
[INFO] [stdout]    --> src/utils.rs:884:9
[INFO] [stdout]     |
[INFO] [stdout] 884 |     let linker = &bins.linker;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_linker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/utils.rs:923:9
[INFO] [stdout]     |
[INFO] [stdout] 923 |     let start = now();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> src/utils.rs:957:9
[INFO] [stdout]     |
[INFO] [stdout] 957 |     let stop = now();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]     --> src/utils.rs:1093:30
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]     --> src/utils.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     bins: &BuildBinaries,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sperm.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/sperm.rs:44:43
[INFO] [stdout]    |
[INFO] [stdout] 44 |                         EventKind::Create(file) => {
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]    |
[INFO] [stdout] 44 -                         EventKind::Create(file) => {
[INFO] [stdout] 44 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 44 |                         EventKind::Create(_file) => {
[INFO] [stdout]    |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/sperm.rs:49:43
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         EventKind::Remove(file) => {
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]    |
[INFO] [stdout] 49 -                         EventKind::Remove(file) => {
[INFO] [stdout] 49 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         EventKind::Remove(_file) => {
[INFO] [stdout]    |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/sperm.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let walkroot = {
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/sperm.rs:83:20
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 Ok(msg) => {}
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/sperm.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 Err(msg) => match args[0] {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `OopsieWoopsie` is never used
[INFO] [stdout]   --> src/utils.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub type OopsieWoopsie = std::result::Result<(), UhOh>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UhOh` is never used
[INFO] [stdout]   --> src/utils.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum UhOh {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_n_headers` is never used
[INFO] [stdout]    --> src/utils.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn source_n_headers(path: &str) -> (Sources, Headers) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sources` is never used
[INFO] [stdout]    --> src/utils.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn find_sources(path: &str) -> Sources {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Headers` is never used
[INFO] [stdout]    --> src/utils.rs:251:10
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub type Headers = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Sources` is never used
[INFO] [stdout]    --> src/utils.rs:252:10
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub type Sources = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Dependencies` is never used
[INFO] [stdout]    --> src/utils.rs:253:10
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub type Dependencies = Vec<BuildDependency>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Libraries` is never used
[INFO] [stdout]    --> src/utils.rs:254:10
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub type Libraries = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Changes` is never used
[INFO] [stdout]    --> src/utils.rs:255:10
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub type Changes = Arc<Mutex<HashSet<String>>>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_headers` is never used
[INFO] [stdout]    --> src/utils.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn find_headers(path: &str) -> Headers {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_changes` is never used
[INFO] [stdout]    --> src/utils.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn watch_changes(path: &str, extension: String) -> Changes {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Platform` is never used
[INFO] [stdout]    --> src/utils.rs:322:10
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub enum Platform {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_dependencies` is never used
[INFO] [stdout]    --> src/utils.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub fn build_dependencies(path: &str, cmd: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_toml` is never used
[INFO] [stdout]    --> src/utils.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn parse_toml(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]    --> src/utils.rs:642:8
[INFO] [stdout]     |
[INFO] [stdout] 642 | pub fn compile(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile_objects` is never used
[INFO] [stdout]    --> src/utils.rs:729:8
[INFO] [stdout]     |
[INFO] [stdout] 729 | pub fn compile_objects(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_lib_args` is never used
[INFO] [stdout]    --> src/utils.rs:826:4
[INFO] [stdout]     |
[INFO] [stdout] 826 | fn generate_lib_args(path: &str) -> (String, String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `link_binaries` is never used
[INFO] [stdout]    --> src/utils.rs:837:8
[INFO] [stdout]     |
[INFO] [stdout] 837 | pub fn link_binaries(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_shared` is never used
[INFO] [stdout]    --> src/utils.rs:875:8
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn build_shared(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build` is never used
[INFO] [stdout]    --> src/utils.rs:938:8
[INFO] [stdout]     |
[INFO] [stdout] 938 | pub fn build(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `link` is never used
[INFO] [stdout]    --> src/utils.rs:963:8
[INFO] [stdout]     |
[INFO] [stdout] 963 | pub fn link(
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now` is never used
[INFO] [stdout]     --> src/utils.rs:1037:8
[INFO] [stdout]      |
[INFO] [stdout] 1037 | pub fn now() -> i64 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `since` is never used
[INFO] [stdout]     --> src/utils.rs:1045:8
[INFO] [stdout]      |
[INFO] [stdout] 1045 | pub fn since(timestamp1: u64, timestamp2: u64) -> u64 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relative_paths` is never used
[INFO] [stdout]     --> src/utils.rs:1068:8
[INFO] [stdout]      |
[INFO] [stdout] 1068 | pub fn generate_relative_paths(root: &str, suffix: &str) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_isystem_args` is never used
[INFO] [stdout]     --> src/utils.rs:1093:8
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cd` is never used
[INFO] [stdout]     --> src/utils.rs:1111:8
[INFO] [stdout]      |
[INFO] [stdout] 1111 | pub fn cd(relative: &str) {
[INFO] [stdout]      |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]     --> src/utils.rs:1125:8
[INFO] [stdout]      |
[INFO] [stdout] 1125 | pub fn exists(absolute: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `options` is never used
[INFO] [stdout]     --> src/utils.rs:1133:8
[INFO] [stdout]      |
[INFO] [stdout] 1133 | pub fn options(
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_info` is never used
[INFO] [stdout]     --> src/utils.rs:1181:8
[INFO] [stdout]      |
[INFO] [stdout] 1181 | pub fn print_info(bins: &BuildBinaries, out: &BuildDirs) {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Commands` is never constructed
[INFO] [stdout]   --> src/utils.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub struct Commands(pub Vec<Command>);
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Command` is never constructed
[INFO] [stdout]   --> src/utils.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub struct Command {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildArgs` is never constructed
[INFO] [stdout]   --> src/utils.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub struct BuildArgs {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildDependency` is never constructed
[INFO] [stdout]   --> src/utils.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub struct BuildDependency {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildBinaries` is never constructed
[INFO] [stdout]   --> src/utils.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct BuildBinaries {
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildDirs` is never constructed
[INFO] [stdout]   --> src/utils.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub struct BuildDirs {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildTarget` is never constructed
[INFO] [stdout]   --> src/utils.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct BuildTarget {
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/utils.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 let code = output.status.code().unwrap();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:299:43
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 299 -                         EventKind::Create(file) => {
[INFO] [stdout] 299 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:306:43
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 306 -                         EventKind::Remove(file) => {
[INFO] [stdout] 306 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/utils.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let handle = thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:575:58
[INFO] [stdout]     |
[INFO] [stdout] 575 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:561:58
[INFO] [stdout]     |
[INFO] [stdout] 561 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:454:12
[INFO] [stdout]     |
[INFO] [stdout] 454 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/utils.rs:733:5
[INFO] [stdout]     |
[INFO] [stdout] 733 |     output: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `libs_post`
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libs_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:924:9
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let mut cmds = compile_objects(
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linker`
[INFO] [stdout]    --> src/utils.rs:884:9
[INFO] [stdout]     |
[INFO] [stdout] 884 |     let linker = &bins.linker;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_linker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/utils.rs:923:9
[INFO] [stdout]     |
[INFO] [stdout] 923 |     let start = now();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> src/utils.rs:957:9
[INFO] [stdout]     |
[INFO] [stdout] 957 |     let stop = now();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]     --> src/utils.rs:1093:30
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]     --> src/utils.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     bins: &BuildBinaries,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:43
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                           ----^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]   --> src/main.rs:31:37
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]   --> src/main.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/main.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let output = folders.output;
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:57:22
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", true);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `OopsieWoopsie` is never used
[INFO] [stdout]   --> src/utils.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub type OopsieWoopsie = std::result::Result<(), UhOh>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UhOh` is never used
[INFO] [stdout]   --> src/utils.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum UhOh {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sources` is never used
[INFO] [stdout]    --> src/utils.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn find_sources(path: &str) -> Sources {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Changes` is never used
[INFO] [stdout]    --> src/utils.rs:255:10
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub type Changes = Arc<Mutex<HashSet<String>>>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_headers` is never used
[INFO] [stdout]    --> src/utils.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn find_headers(path: &str) -> Headers {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_changes` is never used
[INFO] [stdout]    --> src/utils.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn watch_changes(path: &str, extension: String) -> Changes {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Platform` is never used
[INFO] [stdout]    --> src/utils.rs:322:10
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub enum Platform {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_dep_cfg` is never used
[INFO] [stdout]    --> src/utils.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn gen_dep_cfg(root: &str, objs: Vec<String>, libs: Vec<String>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]     --> src/utils.rs:1125:8
[INFO] [stdout]      |
[INFO] [stdout] 1125 | pub fn exists(absolute: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interceptor` is never read
[INFO] [stdout]   --> src/utils.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct BuildBinaries {
[INFO] [stdout]    |                ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 54 |         pub interceptor: String,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BuildBinaries` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `deps` is never read
[INFO] [stdout]   --> src/utils.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct BuildTarget {
[INFO] [stdout]    |                ----------- field in this struct
[INFO] [stdout] 64 |         pub deps: Vec<String>,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BuildTarget` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     execute_string(&clean, true, true);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     let _ = execute_string(&clean, true, true);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.51s
[INFO] running `Command { std: "docker" "inspect" "3a6b0dc62edb1a20c74e0f10a4b0a3f7f38a920fba3e80affea09ac55ea1b9b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a6b0dc62edb1a20c74e0f10a4b0a3f7f38a920fba3e80affea09ac55ea1b9b2", kill_on_drop: false }`
[INFO] [stdout] 3a6b0dc62edb1a20c74e0f10a4b0a3f7f38a920fba3e80affea09ac55ea1b9b2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de0e5a2386d24529ca75859874bbc154ee6d3ab9f9013a7cec134a8fce1c9c18
[INFO] running `Command { std: "docker" "start" "-a" "de0e5a2386d24529ca75859874bbc154ee6d3ab9f9013a7cec134a8fce1c9c18", kill_on_drop: false }`
[INFO] [stderr]    Compiling cum-build v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[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: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::Table`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use toml::Table;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `walkdir::WalkDir`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use walkdir::WalkDir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/utils.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/utils.rs:844:18
[INFO] [stdout]     |
[INFO] [stdout] 844 |     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout]     |                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 844 -     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout] 844 +     let binary = format!("{}/{}", cwd(), name) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use types::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/utils.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 let code = output.status.code().unwrap();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/utils.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[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: `std::io::Write`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/utils.rs:844:18
[INFO] [stdout]     |
[INFO] [stdout] 844 |     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout]     |                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 844 -     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stdout] 844 +     let binary = format!("{}/{}", cwd(), name) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `recommended_watcher`
[INFO] [stdout]  --> src/sperm.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:299:43
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 299 -                         EventKind::Create(file) => {
[INFO] [stdout] 299 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:306:43
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 306 -                         EventKind::Remove(file) => {
[INFO] [stdout] 306 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/utils.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let handle = thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:575:58
[INFO] [stdout]     |
[INFO] [stdout] 575 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:561:58
[INFO] [stdout]     |
[INFO] [stdout] 561 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:454:12
[INFO] [stdout]     |
[INFO] [stdout] 454 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/utils.rs:733:5
[INFO] [stdout]     |
[INFO] [stdout] 733 |     output: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `libs_post`
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libs_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:924:9
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let mut cmds = compile_objects(
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linker`
[INFO] [stdout]    --> src/utils.rs:884:9
[INFO] [stdout]     |
[INFO] [stdout] 884 |     let linker = &bins.linker;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_linker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/utils.rs:923:9
[INFO] [stdout]     |
[INFO] [stdout] 923 |     let start = now();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> src/utils.rs:957:9
[INFO] [stdout]     |
[INFO] [stdout] 957 |     let stop = now();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]     --> src/utils.rs:1093:30
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]     --> src/utils.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     bins: &BuildBinaries,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:43
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                           ----^^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]   --> src/main.rs:31:37
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]   --> src/main.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targets`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/main.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let output = folders.output;
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:57:22
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/main.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 let walkroot = {
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/main.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", true);
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `OopsieWoopsie` is never used
[INFO] [stdout]   --> src/utils.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub type OopsieWoopsie = std::result::Result<(), UhOh>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UhOh` is never used
[INFO] [stdout]   --> src/utils.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum UhOh {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sources` is never used
[INFO] [stdout]    --> src/utils.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn find_sources(path: &str) -> Sources {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Changes` is never used
[INFO] [stdout]    --> src/utils.rs:255:10
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub type Changes = Arc<Mutex<HashSet<String>>>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_headers` is never used
[INFO] [stdout]    --> src/utils.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn find_headers(path: &str) -> Headers {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_changes` is never used
[INFO] [stdout]    --> src/utils.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn watch_changes(path: &str, extension: String) -> Changes {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Platform` is never used
[INFO] [stdout]    --> src/utils.rs:322:10
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub enum Platform {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_dep_cfg` is never used
[INFO] [stdout]    --> src/utils.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn gen_dep_cfg(root: &str, objs: Vec<String>, libs: Vec<String>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]     --> src/utils.rs:1125:8
[INFO] [stdout]      |
[INFO] [stdout] 1125 | pub fn exists(absolute: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interceptor` is never read
[INFO] [stdout]   --> src/utils.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct BuildBinaries {
[INFO] [stdout]    |                ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 54 |         pub interceptor: String,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BuildBinaries` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `deps` is never read
[INFO] [stdout]   --> src/utils.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct BuildTarget {
[INFO] [stdout]    |                ----------- field in this struct
[INFO] [stdout] 64 |         pub deps: Vec<String>,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BuildTarget` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     execute_string(&clean, true, true);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     let _ = execute_string(&clean, true, true);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/utils.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 let code = output.status.code().unwrap();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:299:43
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 299 -                         EventKind::Create(file) => {
[INFO] [stdout] 299 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         EventKind::Create(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/utils.rs:306:43
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(file) => {
[INFO] [stdout]     |                                           ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]     |
[INFO] [stdout] 306 -                         EventKind::Remove(file) => {
[INFO] [stdout] 306 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 306 |                         EventKind::Remove(_file) => {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/utils.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let handle = thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:575:58
[INFO] [stdout]     |
[INFO] [stdout] 575 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:561:58
[INFO] [stdout]     |
[INFO] [stdout] 561 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/utils.rs:454:12
[INFO] [stdout]     |
[INFO] [stdout] 454 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/utils.rs:733:5
[INFO] [stdout]     |
[INFO] [stdout] 733 |     output: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `libs_post`
[INFO] [stdout]    --> src/utils.rs:846:24
[INFO] [stdout]     |
[INFO] [stdout] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libs_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:924:9
[INFO] [stdout]     |
[INFO] [stdout] 924 |     let mut cmds = compile_objects(
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `linker`
[INFO] [stdout]    --> src/utils.rs:884:9
[INFO] [stdout]     |
[INFO] [stdout] 884 |     let linker = &bins.linker;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_linker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/utils.rs:923:9
[INFO] [stdout]     |
[INFO] [stdout] 923 |     let start = now();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]    --> src/utils.rs:957:9
[INFO] [stdout]     |
[INFO] [stdout] 957 |     let stop = now();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]     --> src/utils.rs:1093:30
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bins`
[INFO] [stdout]     --> src/utils.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     bins: &BuildBinaries,
[INFO] [stdout]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sperm.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/sperm.rs:44:43
[INFO] [stdout]    |
[INFO] [stdout] 44 |                         EventKind::Create(file) => {
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]    |
[INFO] [stdout] 44 -                         EventKind::Create(file) => {
[INFO] [stdout] 44 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 44 |                         EventKind::Create(_file) => {
[INFO] [stdout]    |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/sperm.rs:49:43
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         EventKind::Remove(file) => {
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stdout]    |
[INFO] [stdout] 49 -                         EventKind::Remove(file) => {
[INFO] [stdout] 49 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         EventKind::Remove(_file) => {
[INFO] [stdout]    |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `walkroot`
[INFO] [stdout]   --> src/sperm.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let walkroot = {
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/sperm.rs:83:20
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 Ok(msg) => {}
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/sperm.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 Err(msg) => match args[0] {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `OopsieWoopsie` is never used
[INFO] [stdout]   --> src/utils.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub type OopsieWoopsie = std::result::Result<(), UhOh>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UhOh` is never used
[INFO] [stdout]   --> src/utils.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum UhOh {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_n_headers` is never used
[INFO] [stdout]    --> src/utils.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn source_n_headers(path: &str) -> (Sources, Headers) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sources` is never used
[INFO] [stdout]    --> src/utils.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn find_sources(path: &str) -> Sources {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Headers` is never used
[INFO] [stdout]    --> src/utils.rs:251:10
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub type Headers = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Sources` is never used
[INFO] [stdout]    --> src/utils.rs:252:10
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub type Sources = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Dependencies` is never used
[INFO] [stdout]    --> src/utils.rs:253:10
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub type Dependencies = Vec<BuildDependency>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Libraries` is never used
[INFO] [stdout]    --> src/utils.rs:254:10
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub type Libraries = Vec<String>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Changes` is never used
[INFO] [stdout]    --> src/utils.rs:255:10
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub type Changes = Arc<Mutex<HashSet<String>>>;
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_headers` is never used
[INFO] [stdout]    --> src/utils.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn find_headers(path: &str) -> Headers {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_changes` is never used
[INFO] [stdout]    --> src/utils.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn watch_changes(path: &str, extension: String) -> Changes {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Platform` is never used
[INFO] [stdout]    --> src/utils.rs:322:10
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub enum Platform {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_dependencies` is never used
[INFO] [stdout]    --> src/utils.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub fn build_dependencies(path: &str, cmd: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_toml` is never used
[INFO] [stdout]    --> src/utils.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn parse_toml(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]    --> src/utils.rs:642:8
[INFO] [stdout]     |
[INFO] [stdout] 642 | pub fn compile(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile_objects` is never used
[INFO] [stdout]    --> src/utils.rs:729:8
[INFO] [stdout]     |
[INFO] [stdout] 729 | pub fn compile_objects(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_lib_args` is never used
[INFO] [stdout]    --> src/utils.rs:826:4
[INFO] [stdout]     |
[INFO] [stdout] 826 | fn generate_lib_args(path: &str) -> (String, String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `link_binaries` is never used
[INFO] [stdout]    --> src/utils.rs:837:8
[INFO] [stdout]     |
[INFO] [stdout] 837 | pub fn link_binaries(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_shared` is never used
[INFO] [stdout]    --> src/utils.rs:875:8
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn build_shared(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build` is never used
[INFO] [stdout]    --> src/utils.rs:938:8
[INFO] [stdout]     |
[INFO] [stdout] 938 | pub fn build(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `link` is never used
[INFO] [stdout]    --> src/utils.rs:963:8
[INFO] [stdout]     |
[INFO] [stdout] 963 | pub fn link(
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now` is never used
[INFO] [stdout]     --> src/utils.rs:1037:8
[INFO] [stdout]      |
[INFO] [stdout] 1037 | pub fn now() -> i64 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `since` is never used
[INFO] [stdout]     --> src/utils.rs:1045:8
[INFO] [stdout]      |
[INFO] [stdout] 1045 | pub fn since(timestamp1: u64, timestamp2: u64) -> u64 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relative_paths` is never used
[INFO] [stdout]     --> src/utils.rs:1068:8
[INFO] [stdout]      |
[INFO] [stdout] 1068 | pub fn generate_relative_paths(root: &str, suffix: &str) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_isystem_args` is never used
[INFO] [stdout]     --> src/utils.rs:1093:8
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cd` is never used
[INFO] [stdout]     --> src/utils.rs:1111:8
[INFO] [stdout]      |
[INFO] [stdout] 1111 | pub fn cd(relative: &str) {
[INFO] [stdout]      |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]     --> src/utils.rs:1125:8
[INFO] [stdout]      |
[INFO] [stdout] 1125 | pub fn exists(absolute: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `options` is never used
[INFO] [stdout]     --> src/utils.rs:1133:8
[INFO] [stdout]      |
[INFO] [stdout] 1133 | pub fn options(
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_info` is never used
[INFO] [stdout]     --> src/utils.rs:1181:8
[INFO] [stdout]      |
[INFO] [stdout] 1181 | pub fn print_info(bins: &BuildBinaries, out: &BuildDirs) {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Commands` is never constructed
[INFO] [stdout]   --> src/utils.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub struct Commands(pub Vec<Command>);
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Command` is never constructed
[INFO] [stdout]   --> src/utils.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub struct Command {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildArgs` is never constructed
[INFO] [stdout]   --> src/utils.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub struct BuildArgs {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildDependency` is never constructed
[INFO] [stdout]   --> src/utils.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub struct BuildDependency {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildBinaries` is never constructed
[INFO] [stdout]   --> src/utils.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct BuildBinaries {
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildDirs` is never constructed
[INFO] [stdout]   --> src/utils.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub struct BuildDirs {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildTarget` is never constructed
[INFO] [stdout]   --> src/utils.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct BuildTarget {
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "de0e5a2386d24529ca75859874bbc154ee6d3ab9f9013a7cec134a8fce1c9c18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de0e5a2386d24529ca75859874bbc154ee6d3ab9f9013a7cec134a8fce1c9c18", kill_on_drop: false }`
[INFO] [stdout] de0e5a2386d24529ca75859874bbc154ee6d3ab9f9013a7cec134a8fce1c9c18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 656abc9e4fc60a2d12ddd15e5ae9893e960335fd31ee0ce49078bf866f71d456
[INFO] running `Command { std: "docker" "start" "-a" "656abc9e4fc60a2d12ddd15e5ae9893e960335fd31ee0ce49078bf866f71d456", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `recommended_watcher`
[INFO] [stderr]  --> src/utils.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> src/utils.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/utils.rs:844:18
[INFO] [stderr]     |
[INFO] [stderr] 844 |     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stderr]     |                  ^                             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 844 -     let binary = (format!("{}/{}", cwd(), name));
[INFO] [stderr] 844 +     let binary = format!("{}/{}", cwd(), name) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `recommended_watcher`
[INFO] [stderr]  --> src/sperm.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `code`
[INFO] [stderr]    --> src/utils.rs:121:21
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 let code = output.status.code().unwrap();
[INFO] [stderr]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/utils.rs:277:9
[INFO] [stderr]     |
[INFO] [stderr] 277 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]    --> src/utils.rs:299:43
[INFO] [stderr]     |
[INFO] [stderr] 299 |                         EventKind::Create(file) => {
[INFO] [stderr]     |                                           ^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stderr]     |
[INFO] [stderr] 299 -                         EventKind::Create(file) => {
[INFO] [stderr] 299 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 299 |                         EventKind::Create(_file) => {
[INFO] [stderr]     |                                           +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]    --> src/utils.rs:306:43
[INFO] [stderr]     |
[INFO] [stderr] 306 |                         EventKind::Remove(file) => {
[INFO] [stderr]     |                                           ^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stderr]     |
[INFO] [stderr] 306 -                         EventKind::Remove(file) => {
[INFO] [stderr] 306 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 306 |                         EventKind::Remove(_file) => {
[INFO] [stderr]     |                                           +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `handle`
[INFO] [stderr]    --> src/utils.rs:292:9
[INFO] [stderr]     |
[INFO] [stderr] 292 |     let handle = thread::spawn(move || {
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/utils.rs:575:58
[INFO] [stderr]     |
[INFO] [stderr] 575 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stderr]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/utils.rs:561:58
[INFO] [stderr]     |
[INFO] [stderr] 561 | ...                   .fold(Vec::new(), |mut acc, (x, y)| {
[INFO] [stderr]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `status`
[INFO] [stderr]    --> src/utils.rs:450:12
[INFO] [stderr]     |
[INFO] [stderr] 450 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `status`
[INFO] [stderr]    --> src/utils.rs:454:12
[INFO] [stderr]     |
[INFO] [stderr] 454 |         Ok(status) => { /*println!("{:?}", stdout)*/ }
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `output`
[INFO] [stderr]    --> src/utils.rs:733:5
[INFO] [stderr]     |
[INFO] [stderr] 733 |     output: &str,
[INFO] [stderr]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/utils.rs:846:24
[INFO] [stderr]     |
[INFO] [stderr] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stderr]     |                        ----^^^^^^^^^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `libs_post`
[INFO] [stderr]    --> src/utils.rs:846:24
[INFO] [stderr]     |
[INFO] [stderr] 846 |     let (mut libs_pre, mut libs_post): (Vec<String>, Vec<String>) =
[INFO] [stderr]     |                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_libs_post`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/utils.rs:924:9
[INFO] [stderr]     |
[INFO] [stderr] 924 |     let mut cmds = compile_objects(
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `linker`
[INFO] [stderr]    --> src/utils.rs:884:9
[INFO] [stderr]     |
[INFO] [stderr] 884 |     let linker = &bins.linker;
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_linker`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]    --> src/utils.rs:923:9
[INFO] [stderr]     |
[INFO] [stderr] 923 |     let start = now();
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stop`
[INFO] [stderr]    --> src/utils.rs:957:9
[INFO] [stderr]     |
[INFO] [stderr] 957 |     let stop = now();
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dir`
[INFO] [stderr]     --> src/utils.rs:1093:30
[INFO] [stderr]      |
[INFO] [stderr] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stderr]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bins`
[INFO] [stderr]     --> src/utils.rs:1137:5
[INFO] [stderr]      |
[INFO] [stderr] 1137 |     bins: &BuildBinaries,
[INFO] [stderr]      |     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sperm.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let mut changes: Arc<Mutex<HashSet<String>>> = Arc::new(Mutex::new(HashSet::new()));
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]   --> src/sperm.rs:44:43
[INFO] [stderr]    |
[INFO] [stderr] 44 |                         EventKind::Create(file) => {
[INFO] [stderr]    |                                           ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stderr]    |
[INFO] [stderr] 44 -                         EventKind::Create(file) => {
[INFO] [stderr] 44 +                         EventKind::Create(notify::event::CreateKind::File) => {
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 44 |                         EventKind::Create(_file) => {
[INFO] [stderr]    |                                           +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]   --> src/sperm.rs:49:43
[INFO] [stderr]    |
[INFO] [stderr] 49 |                         EventKind::Remove(file) => {
[INFO] [stderr]    |                                           ^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `File`
[INFO] [stderr]    |
[INFO] [stderr] 49 -                         EventKind::Remove(file) => {
[INFO] [stderr] 49 +                         EventKind::Remove(notify::event::RemoveKind::File) => {
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 49 |                         EventKind::Remove(_file) => {
[INFO] [stderr]    |                                           +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `walkroot`
[INFO] [stderr]   --> src/sperm.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let walkroot = {
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]   --> src/sperm.rs:83:20
[INFO] [stderr]    |
[INFO] [stderr] 83 |                 Ok(msg) => {}
[INFO] [stderr]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]   --> src/sperm.rs:84:21
[INFO] [stderr]    |
[INFO] [stderr] 84 |                 Err(msg) => match args[0] {
[INFO] [stderr]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `OopsieWoopsie` is never used
[INFO] [stderr]   --> src/utils.rs:72:10
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub type OopsieWoopsie = std::result::Result<(), UhOh>;
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UhOh` is never used
[INFO] [stderr]   --> src/utils.rs:73:10
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub enum UhOh {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `source_n_headers` is never used
[INFO] [stderr]    --> src/utils.rs:198:8
[INFO] [stderr]     |
[INFO] [stderr] 198 | pub fn source_n_headers(path: &str) -> (Sources, Headers) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_sources` is never used
[INFO] [stderr]    --> src/utils.rs:233:8
[INFO] [stderr]     |
[INFO] [stderr] 233 | pub fn find_sources(path: &str) -> Sources {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Headers` is never used
[INFO] [stderr]    --> src/utils.rs:251:10
[INFO] [stderr]     |
[INFO] [stderr] 251 | pub type Headers = Vec<String>;
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Sources` is never used
[INFO] [stderr]    --> src/utils.rs:252:10
[INFO] [stderr]     |
[INFO] [stderr] 252 | pub type Sources = Vec<String>;
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Dependencies` is never used
[INFO] [stderr]    --> src/utils.rs:253:10
[INFO] [stderr]     |
[INFO] [stderr] 253 | pub type Dependencies = Vec<BuildDependency>;
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Libraries` is never used
[INFO] [stderr]    --> src/utils.rs:254:10
[INFO] [stderr]     |
[INFO] [stderr] 254 | pub type Libraries = Vec<String>;
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Changes` is never used
[INFO] [stderr]    --> src/utils.rs:255:10
[INFO] [stderr]     |
[INFO] [stderr] 255 | pub type Changes = Arc<Mutex<HashSet<String>>>;
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_headers` is never used
[INFO] [stderr]    --> src/utils.rs:257:8
[INFO] [stderr]     |
[INFO] [stderr] 257 | pub fn find_headers(path: &str) -> Headers {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `watch_changes` is never used
[INFO] [stderr]    --> src/utils.rs:271:8
[INFO] [stderr]     |
[INFO] [stderr] 271 | pub fn watch_changes(path: &str, extension: String) -> Changes {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Platform` is never used
[INFO] [stderr]    --> src/utils.rs:322:10
[INFO] [stderr]     |
[INFO] [stderr] 322 | pub enum Platform {
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_dependencies` is never used
[INFO] [stderr]    --> src/utils.rs:364:8
[INFO] [stderr]     |
[INFO] [stderr] 364 | pub fn build_dependencies(path: &str, cmd: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_toml` is never used
[INFO] [stderr]    --> src/utils.rs:374:8
[INFO] [stderr]     |
[INFO] [stderr] 374 | pub fn parse_toml(
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compile` is never used
[INFO] [stderr]    --> src/utils.rs:642:8
[INFO] [stderr]     |
[INFO] [stderr] 642 | pub fn compile(
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compile_objects` is never used
[INFO] [stderr]    --> src/utils.rs:729:8
[INFO] [stderr]     |
[INFO] [stderr] 729 | pub fn compile_objects(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_lib_args` is never used
[INFO] [stderr]    --> src/utils.rs:826:4
[INFO] [stderr]     |
[INFO] [stderr] 826 | fn generate_lib_args(path: &str) -> (String, String) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `link_binaries` is never used
[INFO] [stderr]    --> src/utils.rs:837:8
[INFO] [stderr]     |
[INFO] [stderr] 837 | pub fn link_binaries(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_shared` is never used
[INFO] [stderr]    --> src/utils.rs:875:8
[INFO] [stderr]     |
[INFO] [stderr] 875 | pub fn build_shared(
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build` is never used
[INFO] [stderr]    --> src/utils.rs:938:8
[INFO] [stderr]     |
[INFO] [stderr] 938 | pub fn build(
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `link` is never used
[INFO] [stderr]    --> src/utils.rs:963:8
[INFO] [stderr]     |
[INFO] [stderr] 963 | pub fn link(
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `now` is never used
[INFO] [stderr]     --> src/utils.rs:1037:8
[INFO] [stderr]      |
[INFO] [stderr] 1037 | pub fn now() -> i64 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `since` is never used
[INFO] [stderr]     --> src/utils.rs:1045:8
[INFO] [stderr]      |
[INFO] [stderr] 1045 | pub fn since(timestamp1: u64, timestamp2: u64) -> u64 {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_relative_paths` is never used
[INFO] [stderr]     --> src/utils.rs:1068:8
[INFO] [stderr]      |
[INFO] [stderr] 1068 | pub fn generate_relative_paths(root: &str, suffix: &str) -> Vec<String> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_isystem_args` is never used
[INFO] [stderr]     --> src/utils.rs:1093:8
[INFO] [stderr]      |
[INFO] [stderr] 1093 | pub fn generate_isystem_args(dir: &str, includes: &Vec<String>) -> Vec<String> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cd` is never used
[INFO] [stderr]     --> src/utils.rs:1111:8
[INFO] [stderr]      |
[INFO] [stderr] 1111 | pub fn cd(relative: &str) {
[INFO] [stderr]      |        ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `exists` is never used
[INFO] [stderr]     --> src/utils.rs:1125:8
[INFO] [stderr]      |
[INFO] [stderr] 1125 | pub fn exists(absolute: &str) -> bool {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `options` is never used
[INFO] [stderr]     --> src/utils.rs:1133:8
[INFO] [stderr]      |
[INFO] [stderr] 1133 | pub fn options(
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_info` is never used
[INFO] [stderr]     --> src/utils.rs:1181:8
[INFO] [stderr]      |
[INFO] [stderr] 1181 | pub fn print_info(bins: &BuildBinaries, out: &BuildDirs) {
[INFO] [stderr]      |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Commands` is never constructed
[INFO] [stderr]   --> src/utils.rs:23:16
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub struct Commands(pub Vec<Command>);
[INFO] [stderr]    |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Command` is never constructed
[INFO] [stderr]   --> src/utils.rs:26:16
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub struct Command {
[INFO] [stderr]    |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BuildArgs` is never constructed
[INFO] [stderr]   --> src/utils.rs:34:16
[INFO] [stderr]    |
[INFO] [stderr] 34 |     pub struct BuildArgs {
[INFO] [stderr]    |                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BuildDependency` is never constructed
[INFO] [stderr]   --> src/utils.rs:40:16
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub struct BuildDependency {
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BuildBinaries` is never constructed
[INFO] [stderr]   --> src/utils.rs:50:16
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub struct BuildBinaries {
[INFO] [stderr]    |                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BuildDirs` is never constructed
[INFO] [stderr]   --> src/utils.rs:57:16
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub struct BuildDirs {
[INFO] [stderr]    |                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BuildTarget` is never constructed
[INFO] [stderr]   --> src/utils.rs:63:16
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub struct BuildTarget {
[INFO] [stderr]    |                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::Command`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::process::Command;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `toml::Table`
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use toml::Table;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `walkdir::WalkDir`
[INFO] [stderr]  --> src/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use walkdir::WalkDir;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `recommended_watcher`
[INFO] [stderr]  --> src/utils.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use notify::{recommended_watcher, Event, EventKind, RecursiveMode, Result, Watcher};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `types::*`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use types::*;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:57:43
[INFO] [stderr]    |
[INFO] [stderr] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stderr]    |                                           ----^^^^^^^
[INFO] [stderr]    |                                           |
[INFO] [stderr]    |                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `walkroot`
[INFO] [stderr]   --> src/main.rs:22:21
[INFO] [stderr]    |
[INFO] [stderr] 22 |                 let walkroot = {
[INFO] [stderr]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/main.rs:31:22
[INFO] [stderr]    |
[INFO] [stderr] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stderr]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bins`
[INFO] [stderr]   --> src/main.rs:31:37
[INFO] [stderr]    |
[INFO] [stderr] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stderr]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bins`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `targets`
[INFO] [stderr]   --> src/main.rs:31:43
[INFO] [stderr]    |
[INFO] [stderr] 31 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", false);
[INFO] [stderr]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targets`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `output`
[INFO] [stderr]   --> src/main.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |                 let output = folders.output;
[INFO] [stderr]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `walkroot`
[INFO] [stderr]   --> src/main.rs:48:21
[INFO] [stderr]    |
[INFO] [stderr] 48 |                 let walkroot = {
[INFO] [stderr]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/main.rs:57:22
[INFO] [stderr]    |
[INFO] [stderr] 57 |                 let (name, folders, bins, mut targets, deps) = parse_toml("Project.toml", false);
[INFO] [stderr]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `walkroot`
[INFO] [stderr]   --> src/main.rs:81:21
[INFO] [stderr]    |
[INFO] [stderr] 81 |                 let walkroot = {
[INFO] [stderr]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_walkroot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/main.rs:89:22
[INFO] [stderr]    |
[INFO] [stderr] 89 |                 let (name, folders, bins, targets, deps) = parse_toml("Project.toml", true);
[INFO] [stderr]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: function `gen_dep_cfg` is never used
[INFO] [stderr]    --> src/utils.rs:329:8
[INFO] [stderr]     |
[INFO] [stderr] 329 | pub fn gen_dep_cfg(root: &str, objs: Vec<String>, libs: Vec<String>) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `interceptor` is never read
[INFO] [stderr]   --> src/utils.rs:54:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub struct BuildBinaries {
[INFO] [stderr]    |                ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 54 |         pub interceptor: String,
[INFO] [stderr]    |             ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BuildBinaries` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `deps` is never read
[INFO] [stderr]   --> src/utils.rs:64:13
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub struct BuildTarget {
[INFO] [stderr]    |                ----------- field in this struct
[INFO] [stderr] 64 |         pub deps: Vec<String>,
[INFO] [stderr]    |             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BuildTarget` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:40:21
[INFO] [stderr]    |
[INFO] [stderr] 40 |                     execute_string(&clean, true, true);
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 40 |                     let _ = execute_string(&clean, true, true);
[INFO] [stderr]    |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `cum-build` (bin "sperm" test) generated 64 warnings (run `cargo fix --bin "sperm" -p cum-build --tests` to apply 28 suggestions)
[INFO] [stderr] warning: `cum-build` (bin "cum" test) generated 50 warnings (28 duplicates) (run `cargo fix --bin "cum" -p cum-build --tests` to apply 18 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cum-2c8037f9d32a061d)
[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] [stderr]      Running unittests src/sperm.rs (/opt/rustwide/target/debug/deps/sperm-9fc7d06f8d4bf71b)
[INFO] [stdout] 
[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" "656abc9e4fc60a2d12ddd15e5ae9893e960335fd31ee0ce49078bf866f71d456", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "656abc9e4fc60a2d12ddd15e5ae9893e960335fd31ee0ce49078bf866f71d456", kill_on_drop: false }`
[INFO] [stdout] 656abc9e4fc60a2d12ddd15e5ae9893e960335fd31ee0ce49078bf866f71d456
