[INFO] cloning repository https://github.com/algon-320/msh
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/algon-320/msh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falgon-320%2Fmsh", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falgon-320%2Fmsh'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dbf68fde36a5c99c626315c8e1066e2e832f08f9
[INFO] checking algon-320/msh against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falgon-320%2Fmsh" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/algon-320/msh
[INFO] finished tweaking git repo https://github.com/algon-320/msh
[INFO] tweaked toml for git repo https://github.com/algon-320/msh written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/algon-320/msh on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/algon-320/msh 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quote v0.3.15
[INFO] [stderr]   Downloaded void v1.0.2
[INFO] [stderr]   Downloaded peg v0.5.7
[INFO] [stderr]   Downloaded bitflags v1.1.0
[INFO] [stderr]   Downloaded cc v1.0.37
[INFO] [stderr]   Downloaded cfg-if v0.1.9
[INFO] [stderr]   Downloaded libc v0.2.58
[INFO] [stderr]   Downloaded nix v0.14.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ba7dd77e6d4cd15a87aa1d10bb5c6a7cf5cd47ed988b897e3dc84a0fa31f184c
[INFO] running `Command { std: "docker" "start" "-a" "ba7dd77e6d4cd15a87aa1d10bb5c6a7cf5cd47ed988b897e3dc84a0fa31f184c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba7dd77e6d4cd15a87aa1d10bb5c6a7cf5cd47ed988b897e3dc84a0fa31f184c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba7dd77e6d4cd15a87aa1d10bb5c6a7cf5cd47ed988b897e3dc84a0fa31f184c", kill_on_drop: false }`
[INFO] [stdout] ba7dd77e6d4cd15a87aa1d10bb5c6a7cf5cd47ed988b897e3dc84a0fa31f184c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2c4a12438b2ce83abba2ea6109801ee9816e4d2cf258c62d4a812f23aa381d3b
[INFO] running `Command { std: "docker" "start" "-a" "2c4a12438b2ce83abba2ea6109801ee9816e4d2cf258c62d4a812f23aa381d3b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.58
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]    Compiling peg v0.5.7
[INFO] [stderr]    Compiling msh v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `nix::sys::signal`
[INFO] [stdout]  --> src/execute.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nix::sys::signal;
[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::cell::RefCell`
[INFO] [stdout]   --> src/execute.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:314
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos ...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:328
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[a-zA-Z]" )...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:701
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nix::sys::signal`
[INFO] [stdout]  --> src/execute.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nix::sys::signal;
[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::cell::RefCell`
[INFO] [stdout]   --> src/execute.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:314
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...nge_at ( __input , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos ...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:328
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...ut , __pos ) ; match __ch { 'a' ... 'z' | 'A' ... 'Z' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[a-zA-Z]" )...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> /opt/rustwide/target/debug/build/msh-20ed44d5e11c4f2b/out/msh_grammar.rs:149:701
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...nge_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , ...
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `argv`
[INFO] [stdout]    --> src/builtin_commands.rs:113:40
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn exit(_: &mut structures::Shell, argv: Vec<String>) -> execute::ExitCode {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_argv`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_of_string`
[INFO] [stdout]    --> src/execute.rs:168:33
[INFO] [stdout]     |
[INFO] [stdout] 168 |             RedirectIn::Heredoc(end_of_string) => unimplemented!(),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_of_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/execute.rs:262:62
[INFO] [stdout]     |
[INFO] [stdout] 262 |   ...                   Ok(unistd::ForkResult::Child) => {
[INFO] [stdout]     |  ________________________________________________________^
[INFO] [stdout] 263 | | ...                       for fd in to_close {
[INFO] [stdout] 264 | | ...                           unistd::close(fd).map_err(error_then_exit).unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 284 | | ...                       unistd::execv(&path, &argv).map_err(error_then_exit);
[INFO] [stdout]     | |                           ---------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 285 | | ...                   }
[INFO] [stdout]     | |_______________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Result<void::Void, !>`, which is uninhabited
[INFO] [stdout]    --> src/execute.rs:284:33
[INFO] [stdout]     |
[INFO] [stdout] 284 | ...                   unistd::execv(&path, &argv).map_err(error_then_exit);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `argv`
[INFO] [stdout]    --> src/builtin_commands.rs:113:40
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn exit(_: &mut structures::Shell, argv: Vec<String>) -> execute::ExitCode {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_argv`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]    --> src/execute.rs:261:61
[INFO] [stdout]     |
[INFO] [stdout] 261 | ...                   Ok(unistd::ForkResult::Parent { child, .. }) => {}
[INFO] [stdout]     |                                                       ^^^^^ help: try ignoring the field: `child: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]    --> src/execute.rs:322:53
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     Ok(unistd::ForkResult::Parent { child, .. }) => {}
[INFO] [stdout]     |                                                     ^^^^^ help: try ignoring the field: `child: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_of_string`
[INFO] [stdout]    --> src/execute.rs:168:33
[INFO] [stdout]     |
[INFO] [stdout] 168 |             RedirectIn::Heredoc(end_of_string) => unimplemented!(),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_of_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/execute.rs:262:62
[INFO] [stdout]     |
[INFO] [stdout] 262 |   ...                   Ok(unistd::ForkResult::Child) => {
[INFO] [stdout]     |  ________________________________________________________^
[INFO] [stdout] 263 | | ...                       for fd in to_close {
[INFO] [stdout] 264 | | ...                           unistd::close(fd).map_err(error_then_exit).unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 284 | | ...                       unistd::execv(&path, &argv).map_err(error_then_exit);
[INFO] [stdout]     | |                           ---------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 285 | | ...                   }
[INFO] [stdout]     | |_______________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Result<void::Void, !>`, which is uninhabited
[INFO] [stdout]    --> src/execute.rs:284:33
[INFO] [stdout]     |
[INFO] [stdout] 284 | ...                   unistd::execv(&path, &argv).map_err(error_then_exit);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]    --> src/execute.rs:261:61
[INFO] [stdout]     |
[INFO] [stdout] 261 | ...                   Ok(unistd::ForkResult::Parent { child, .. }) => {}
[INFO] [stdout]     |                                                       ^^^^^ help: try ignoring the field: `child: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]    --> src/execute.rs:322:53
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     Ok(unistd::ForkResult::Parent { child, .. }) => {}
[INFO] [stdout]     |                                                     ^^^^^ help: try ignoring the field: `child: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `parent` is never read
[INFO] [stdout]   --> src/structures.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Shell<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 15 |     pub parent: Option<&'a Shell<'a>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INDENT_WIDTH` is never used
[INFO] [stdout]   --> src/structures.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | static INDENT_WIDTH: usize = 2;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_indent` is never used
[INFO] [stdout]   --> src/structures.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn gen_indent(d: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/structures.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 92 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Connector {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 105 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl PipeLine {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 136 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl Pipe {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 149 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl Executable {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 173 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl Command {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 194 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fromParent` should have a snake case name
[INFO] [stdout]   --> src/execute.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn fromParent(parent: &'a Shell<'a>) -> Shell<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to snake case: `from_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/execute.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             cmds.exec(&mut subsehll, 0, 1, 2, Vec::new());
[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] 89 |             let _ = cmds.exec(&mut subsehll, 0, 1, 2, Vec::new());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |                         unistd::dup2(stdin, 0).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 328 |                         let _ = unistd::dup2(stdin, 0).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:329:25
[INFO] [stdout]     |
[INFO] [stdout] 329 |                         unistd::dup2(stdout, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                         let _ = unistd::dup2(stdout, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:330:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         unistd::dup2(stderr, 2).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         let _ = unistd::dup2(stderr, 2).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |                         child_shell.exec(cmds).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 331 |                         let _ = child_shell.exec(cmds).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         unistd::dup2(pfd.1, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         let _ = unistd::dup2(pfd.1, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `parent` is never read
[INFO] [stdout]   --> src/structures.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Shell<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 15 |     pub parent: Option<&'a Shell<'a>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INDENT_WIDTH` is never used
[INFO] [stdout]   --> src/structures.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | static INDENT_WIDTH: usize = 2;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_indent` is never used
[INFO] [stdout]   --> src/structures.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn gen_indent(d: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/structures.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 92 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Connector {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 105 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl PipeLine {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 136 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl Pipe {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 149 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl Executable {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 173 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> src/structures.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl Command {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 194 |     pub fn print(&self, indent: usize) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fromParent` should have a snake case name
[INFO] [stdout]   --> src/execute.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn fromParent(parent: &'a Shell<'a>) -> Shell<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to snake case: `from_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/execute.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             cmds.exec(&mut subsehll, 0, 1, 2, Vec::new());
[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] 89 |             let _ = cmds.exec(&mut subsehll, 0, 1, 2, Vec::new());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |                         unistd::dup2(stdin, 0).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 328 |                         let _ = unistd::dup2(stdin, 0).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:329:25
[INFO] [stdout]     |
[INFO] [stdout] 329 |                         unistd::dup2(stdout, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |                         let _ = unistd::dup2(stdout, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:330:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         unistd::dup2(stderr, 2).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         let _ = unistd::dup2(stderr, 2).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |                         child_shell.exec(cmds).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 331 |                         let _ = child_shell.exec(cmds).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/execute.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         unistd::dup2(pfd.1, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         let _ = unistd::dup2(pfd.1, 1).map_err(error_then_exit);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.46s
[INFO] running `Command { std: "docker" "inspect" "2c4a12438b2ce83abba2ea6109801ee9816e4d2cf258c62d4a812f23aa381d3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c4a12438b2ce83abba2ea6109801ee9816e4d2cf258c62d4a812f23aa381d3b", kill_on_drop: false }`
[INFO] [stdout] 2c4a12438b2ce83abba2ea6109801ee9816e4d2cf258c62d4a812f23aa381d3b
