[INFO] cloning repository https://github.com/ardaku/qiish
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ardaku/qiish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fardaku%2Fqiish", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fardaku%2Fqiish'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d0c2f838d0c5f4877fe9f4ecd7b2e8ae66ee82c3
[INFO] checking ardaku/qiish against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fardaku%2Fqiish" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/ardaku/qiish
[INFO] finished tweaking git repo https://github.com/ardaku/qiish
[INFO] tweaked toml for git repo https://github.com/ardaku/qiish written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ardaku/qiish on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ardaku/qiish 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: file `/workspace/builds/worker-0-tc1/source/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `qiish`
[INFO] [stderr]   * `bin` target `qiish`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.9.1
[INFO] [stderr]   Downloaded whoami v1.2.3
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d62b3ba85bcaef3ce74011e2ca3df81046dddca80c5fba750046f0514e40ac05
[INFO] running `Command { std: "docker" "start" "-a" "d62b3ba85bcaef3ce74011e2ca3df81046dddca80c5fba750046f0514e40ac05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d62b3ba85bcaef3ce74011e2ca3df81046dddca80c5fba750046f0514e40ac05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d62b3ba85bcaef3ce74011e2ca3df81046dddca80c5fba750046f0514e40ac05", kill_on_drop: false }`
[INFO] [stdout] d62b3ba85bcaef3ce74011e2ca3df81046dddca80c5fba750046f0514e40ac05
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 90cb8359df3ff4ebb65b79636ce2ed4d236dcf0b261e6ab1a78cc3f5a37b11a7
[INFO] running `Command { std: "docker" "start" "-a" "90cb8359df3ff4ebb65b79636ce2ed4d236dcf0b261e6ab1a78cc3f5a37b11a7", kill_on_drop: false }`
[INFO] [stderr] warning: file `/opt/rustwide/workdir/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `qiish`
[INFO] [stderr]   * `bin` target `qiish`
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling unicode-ident v1.0.4
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking whoami v1.2.3
[INFO] [stderr]     Checking aho-corasick v0.7.19
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking regex v1.6.0
[INFO] [stderr]     Checking env_logger v0.9.1
[INFO] [stderr]    Compiling logos-derive v0.12.1
[INFO] [stderr]     Checking logos v0.12.1
[INFO] [stderr]     Checking qiish v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[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::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[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::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parsed_tokens`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let parsed_tokens = match parse::parse(tokens, options) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/run.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]   --> src/run.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn run_command(command: &ParsedToken) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/run.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn execute_command(command: &Path, args: Vec<String>) -> i32{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]   --> src/run.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn find_command(command: &String) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parsed_tokens`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let parsed_tokens = match parse::parse(tokens, options) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> src/main.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn main() {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_options` is never used
[INFO] [stdout]   --> src/main.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn parse_options(options: Vec<char>) -> Options {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/main.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn run(infile: &str, options: Options) -> i32 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_options` is never used
[INFO] [stdout]   --> src/main.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn match_options(options: &str) -> Vec<char> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]   --> src/lex.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Token {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Tokens` is never used
[INFO] [stdout]   --> src/lex.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub type Tokens = Vec<Token>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]   --> src/lex.rs:59:20
[INFO] [stdout]    |
[INFO] [stdout] 59 | #[must_use] pub fn lex(input: &str, _options: Options) -> (i32, Tokens) {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParsedToken` is never used
[INFO] [stdout]   --> src/parse.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ParsedToken {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParsedTokens` is never used
[INFO] [stdout]   --> src/parse.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type ParsedTokens = Vec<ParsedToken>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenStream` is never used
[INFO] [stdout]   --> src/parse.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub type TokenStream = Lookahead<Token>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/parse.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn parse(mut in_: Tokens, options: Options) -> (i32, ParsedTokens) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/run.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]   --> src/run.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn run_command(command: &ParsedToken) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/run.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn execute_command(command: &Path, args: Vec<String>) -> i32{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]   --> src/run.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn find_command(command: &String) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Options` is never constructed
[INFO] [stdout]  --> src/options.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Options {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdin`
[INFO] [stdout]  --> src/shell.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdin, stdout, Write};
[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::path::PathBuf`
[INFO] [stdout]  --> src/shell.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[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::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[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::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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 import: `stdin`
[INFO] [stdout]  --> src/shell.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdin, stdout, Write};
[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::path::PathBuf`
[INFO] [stdout]  --> src/shell.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/lex.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/lex.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array::IntoIter`
[INFO] [stdout]  --> src/lookahead.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::array::IntoIter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/run.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parsed_tokens`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let parsed_tokens = match parse::parse(tokens, options) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/run.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]   --> src/run.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn run_command(command: &ParsedToken) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/run.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn execute_command(command: &Path, args: Vec<String>) -> i32{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]   --> src/run.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn find_command(command: &String) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parsed_tokens`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let parsed_tokens = match parse::parse(tokens, options) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/run.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]   --> src/run.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn run_command(command: &ParsedToken) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/run.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn execute_command(command: &Path, args: Vec<String>) -> i32{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]   --> src/run.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn find_command(command: &String) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/lex.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/parse.rs:228:50
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 if let Some(ParsedToken::Command(s1, args)) = parsed_tokens.last_mut() {
[INFO] [stdout]     |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]  --> src/run.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run(tokens: ParsedTokens, options: Options) -> i32 {
[INFO] [stdout]   |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/run.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/run.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |             ParsedToken::Command(name, args) => {
[INFO] [stdout]    |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/run.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let mut args = args.clone();
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/run.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut child = unsafe {
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.85s
[INFO] running `Command { std: "docker" "inspect" "90cb8359df3ff4ebb65b79636ce2ed4d236dcf0b261e6ab1a78cc3f5a37b11a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90cb8359df3ff4ebb65b79636ce2ed4d236dcf0b261e6ab1a78cc3f5a37b11a7", kill_on_drop: false }`
[INFO] [stdout] 90cb8359df3ff4ebb65b79636ce2ed4d236dcf0b261e6ab1a78cc3f5a37b11a7
