[INFO] fetching crate conch-runtime-pshaw 0.1.6...
[INFO] checking conch-runtime-pshaw-0.1.6 against master#30f74ff0dc4d66debc8b50724c446f817e5f75f4 for pr-121848-1
[INFO] extracting crate conch-runtime-pshaw 0.1.6 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate conch-runtime-pshaw 0.1.6 on toolchain 30f74ff0dc4d66debc8b50724c446f817e5f75f4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate conch-runtime-pshaw 0.1.6
[INFO] finished tweaking crates.io crate conch-runtime-pshaw 0.1.6
[INFO] tweaked toml for crates.io crate conch-runtime-pshaw 0.1.6 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate crates.io crate conch-runtime-pshaw 0.1.6 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" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded owned_chars v0.3.2
[INFO] [stderr]   Downloaded delegate-attr v0.2.9
[INFO] [stderr]   Downloaded async-trait v0.1.51
[INFO] [stderr]   Downloaded conch-parser v0.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 000bca10db13e4fef09a4f1d2ab1aae22997caffd73e7c0f9a54e2a28032d447
[INFO] running `Command { std: "docker" "start" "-a" "000bca10db13e4fef09a4f1d2ab1aae22997caffd73e7c0f9a54e2a28032d447", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "000bca10db13e4fef09a4f1d2ab1aae22997caffd73e7c0f9a54e2a28032d447", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "000bca10db13e4fef09a4f1d2ab1aae22997caffd73e7c0f9a54e2a28032d447", kill_on_drop: false }`
[INFO] [stdout] 000bca10db13e4fef09a4f1d2ab1aae22997caffd73e7c0f9a54e2a28032d447
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 94c20afa017401177b78ed264b8c942cff5b5297b5be62735d87533ce18d6a6a
[INFO] running `Command { std: "docker" "start" "-a" "94c20afa017401177b78ed264b8c942cff5b5297b5be62735d87533ce18d6a6a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.30
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling libc v0.2.104
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling futures-macro v0.3.17
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking pin-project-lite v0.2.7
[INFO] [stderr]     Checking conch-parser v0.1.1
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling delegate-attr v0.2.9
[INFO] [stderr]     Checking owned_chars v0.3.2
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking conch-runtime-pshaw v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:108:20
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let name = ::std::env::current_exe()
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:36:9
[INFO] [stdout]     |
[INFO] [stdout] 36  | #![deny(unused_qualifications)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         let name = ::std::env::current_exe()
[INFO] [stdout] 108 +         let name = std::env::current_exe()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 191 -         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout] 191 +         std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]   --> src/env/env_impl.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::convert::From;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `From` is already defined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/executable.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 111 -         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout] 111 +         Some(libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/func.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 133 -     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout] 133 +     pub(crate) fn fn_names(&self) -> std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/var.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout] 108 +         Self::with_env_vars(std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]  --> src/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/redirect.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:53:53
[INFO] [stdout]    |
[INFO] [stdout] 53 |       ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 54 | |         let te = cfg.tilde_expansion;
[INFO] [stdout] 55 | |
[INFO] [stdout] 56 | |         let fields = match self {
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         Ok(Box::pin(async move { ret }))
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 53 |     ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:92
[INFO] [stdout]    |
[INFO] [stdout] 30 |       async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |  ____________________________________________________________________________________________^
[INFO] [stdout] 31 | |         match self {
[INFO] [stdout] 32 | |             ast::Redirect::Read(fd, w) => redirect_read(*fd, w, env).await,
[INFO] [stdout] 33 | |             ast::Redirect::ReadWrite(fd, w) => redirect_readwrite(*fd, w, env).await,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |       ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |  ________________________________________________________^
[INFO] [stdout] 25 | |         let result = match self {
[INFO] [stdout] 26 | |             Literal(s) | Escaped(s) => Fields::Single(s.clone()),
[INFO] [stdout] 27 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         Ok(Box::pin(async move { result }))
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 24 |     ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/io.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout] 38 +     pub unsafe fn new(fd: std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:95
[INFO] [stdout]    |
[INFO] [stdout] 37 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 38 | |         spawn_with_local_redirections_and_restorer(&self.io, &self.kind, &mut EnvRestorer::new(env))
[INFO] [stdout] 39 | |             .await
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn/ast_impl/compound.rs:64:95
[INFO] [stdout]     |
[INFO] [stdout] 64  |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________________^
[INFO] [stdout] 65  | |         use ast::CompoundCommandKind::*;
[INFO] [stdout] 66  | |         match self {
[INFO] [stdout] 67  | |             Brace(cmds) => sequence_exact(cmds, env).await,
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | |         }
[INFO] [stdout] 109 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 64  |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:95
[INFO] [stdout]    |
[INFO] [stdout] 56 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 57 | |         simple_command(
[INFO] [stdout] 58 | |             self.redirects_or_env_vars.iter().map(|rova| match rova {
[INFO] [stdout] 59 | |                 ast::RedirectOrEnvVar::Redirect(r) => RedirectOrVarAssig::Redirect(r),
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |         .await
[INFO] [stdout] 71 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `void` is imported redundantly
[INFO] [stdout]   --> src/spawn/builtin/cd.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use void::{self, Void};
[INFO] [stdout]    |            ^^^^ the item `void` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/exit_status.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 46 -             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout] 46 +             std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `libc` is imported redundantly
[INFO] [stdout]  --> src/sys/unix/io.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use libc::{self, c_void, size_t};
[INFO] [stdout]   |            ^^^^ the item `libc` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:108:20
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let name = ::std::env::current_exe()
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:36:9
[INFO] [stdout]     |
[INFO] [stdout] 36  | #![deny(unused_qualifications)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         let name = ::std::env::current_exe()
[INFO] [stdout] 108 +         let name = std::env::current_exe()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 191 -         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout] 191 +         std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/args.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 225 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]   --> src/env/env_impl.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::convert::From;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/executable.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 111 -         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout] 111 +         Some(libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 168 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Permissions` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `Permissions` is already imported here
[INFO] [stdout] 168 |     use crate::env::SubEnvironment;
[INFO] [stdout] 169 |     use crate::io::Permissions;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `RefCounted` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `RefCounted` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDERR_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDERR_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDIN_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:44
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDIN_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDOUT_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDOUT_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/func.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 133 -     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout] 133 +     pub(crate) fn fn_names(&self) -> std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/func.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 205 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]   --> src/env/last_status.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     use super::*;
[INFO] [stdout]    |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 70 |     use crate::env::SubEnvironment;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `ExitStatus` is imported redundantly
[INFO] [stdout]   --> src/env/last_status.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     use super::*;
[INFO] [stdout]    |         -------- the item `ExitStatus` is already imported here
[INFO] [stdout] 70 |     use crate::env::SubEnvironment;
[INFO] [stdout] 71 |     use crate::ExitStatus;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/var.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout] 108 +         Self::with_env_vars(std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/var.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 256 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]  --> src/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/redirect.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:53:53
[INFO] [stdout]    |
[INFO] [stdout] 53 |       ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 54 | |         let te = cfg.tilde_expansion;
[INFO] [stdout] 55 | |
[INFO] [stdout] 56 | |         let fields = match self {
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         Ok(Box::pin(async move { ret }))
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 53 |     ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:92
[INFO] [stdout]    |
[INFO] [stdout] 30 |       async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |  ____________________________________________________________________________________________^
[INFO] [stdout] 31 | |         match self {
[INFO] [stdout] 32 | |             ast::Redirect::Read(fd, w) => redirect_read(*fd, w, env).await,
[INFO] [stdout] 33 | |             ast::Redirect::ReadWrite(fd, w) => redirect_readwrite(*fd, w, env).await,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |       ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |  ________________________________________________________^
[INFO] [stdout] 25 | |         let result = match self {
[INFO] [stdout] 26 | |             Literal(s) | Escaped(s) => Fields::Single(s.clone()),
[INFO] [stdout] 27 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         Ok(Box::pin(async move { result }))
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 24 |     ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/io.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout] 38 +     pub unsafe fn new(fd: std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:95
[INFO] [stdout]    |
[INFO] [stdout] 37 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 38 | |         spawn_with_local_redirections_and_restorer(&self.io, &self.kind, &mut EnvRestorer::new(env))
[INFO] [stdout] 39 | |             .await
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn/ast_impl/compound.rs:64:95
[INFO] [stdout]     |
[INFO] [stdout] 64  |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________________^
[INFO] [stdout] 65  | |         use ast::CompoundCommandKind::*;
[INFO] [stdout] 66  | |         match self {
[INFO] [stdout] 67  | |             Brace(cmds) => sequence_exact(cmds, env).await,
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | |         }
[INFO] [stdout] 109 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 64  |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:95
[INFO] [stdout]    |
[INFO] [stdout] 56 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 57 | |         simple_command(
[INFO] [stdout] 58 | |             self.redirects_or_env_vars.iter().map(|rova| match rova {
[INFO] [stdout] 59 | |                 ast::RedirectOrEnvVar::Redirect(r) => RedirectOrVarAssig::Redirect(r),
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |         .await
[INFO] [stdout] 71 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `void` is imported redundantly
[INFO] [stdout]   --> src/spawn/builtin/cd.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use void::{self, Void};
[INFO] [stdout]    |            ^^^^ the item `void` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn.rs:165:22
[INFO] [stdout]     |
[INFO] [stdout] 165 |             async fn spawn(
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 165 |             async fn spawn(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn.rs:168:70
[INFO] [stdout]     |
[INFO] [stdout] 168 |               ) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 169 | |                 Ok(Box::pin(async { EXIT_SUCCESS }))
[INFO] [stdout] 170 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 168 |             ) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/exit_status.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 46 -             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout] 46 +             std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `libc` is imported redundantly
[INFO] [stdout]  --> src/sys/unix/io.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use libc::{self, c_void, size_t};
[INFO] [stdout]   |            ^^^^ the item `libc` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `os_handle` are never read
[INFO] [stdout]   --> src/env/fd.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         struct FileDescDebug<T> {
[INFO] [stdout]    |                ------------- fields in this struct
[INFO] [stdout] 94 |             permissions: Permissions,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 95 |             os_handle: T,
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileDescDebug` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `os_handle` are never read
[INFO] [stdout]   --> src/env/fd.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         struct FileDescDebug<T> {
[INFO] [stdout]    |                ------------- fields in this struct
[INFO] [stdout] 94 |             permissions: Permissions,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 95 |             os_handle: T,
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileDescDebug` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused pinned boxed `futures_core::Future` trait object that must be used
[INFO] [stdout]   --> src/spawn/swallow_non_fatal.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             env.report_error(&e);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused pinned boxed `futures_core::Future` trait object that must be used
[INFO] [stdout]   --> src/spawn/swallow_non_fatal.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             env.report_error(&e);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 21 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 23 previous errors; 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `conch-runtime-pshaw` (lib) due to 22 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `conch-runtime-pshaw` (lib test) due to 24 previous errors; 17 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "94c20afa017401177b78ed264b8c942cff5b5297b5be62735d87533ce18d6a6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94c20afa017401177b78ed264b8c942cff5b5297b5be62735d87533ce18d6a6a", kill_on_drop: false }`
[INFO] [stdout] 94c20afa017401177b78ed264b8c942cff5b5297b5be62735d87533ce18d6a6a
[INFO] checking conch-runtime-pshaw-0.1.6 against try#72eda894eb3548c7ba774079ce0afab42958d4ee for pr-121848-1
[INFO] extracting crate conch-runtime-pshaw 0.1.6 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate conch-runtime-pshaw 0.1.6 on toolchain 72eda894eb3548c7ba774079ce0afab42958d4ee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate conch-runtime-pshaw 0.1.6
[INFO] finished tweaking crates.io crate conch-runtime-pshaw 0.1.6
[INFO] tweaked toml for crates.io crate conch-runtime-pshaw 0.1.6 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate crates.io crate conch-runtime-pshaw 0.1.6 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" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 13001f36fd707e28d3959989336479431137fa838412a83a14e06f5960ace6d8
[INFO] running `Command { std: "docker" "start" "-a" "13001f36fd707e28d3959989336479431137fa838412a83a14e06f5960ace6d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "13001f36fd707e28d3959989336479431137fa838412a83a14e06f5960ace6d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "13001f36fd707e28d3959989336479431137fa838412a83a14e06f5960ace6d8", kill_on_drop: false }`
[INFO] [stdout] 13001f36fd707e28d3959989336479431137fa838412a83a14e06f5960ace6d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 741ac1441f925f615249b6fbfd83efc907a929e4c623611a2cfccad12549b2d5
[INFO] running `Command { std: "docker" "start" "-a" "741ac1441f925f615249b6fbfd83efc907a929e4c623611a2cfccad12549b2d5", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.30
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling libc v0.2.104
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]    Compiling futures-macro v0.3.17
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking pin-project-lite v0.2.7
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking conch-parser v0.1.1
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]    Compiling delegate-attr v0.2.9
[INFO] [stderr]     Checking owned_chars v0.3.2
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking conch-runtime-pshaw v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:108:20
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let name = ::std::env::current_exe()
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:36:9
[INFO] [stdout]     |
[INFO] [stdout] 36  | #![deny(unused_qualifications)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         let name = ::std::env::current_exe()
[INFO] [stdout] 108 +         let name = std::env::current_exe()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 191 -         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout] 191 +         std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]   --> src/env/env_impl.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::convert::From;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `From` is already defined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/executable.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 111 -         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout] 111 +         Some(libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/func.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 133 -     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout] 133 +     pub(crate) fn fn_names(&self) -> std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/var.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout] 108 +         Self::with_env_vars(std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]  --> src/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/redirect.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:53:53
[INFO] [stdout]    |
[INFO] [stdout] 53 |       ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 54 | |         let te = cfg.tilde_expansion;
[INFO] [stdout] 55 | |
[INFO] [stdout] 56 | |         let fields = match self {
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         Ok(Box::pin(async move { ret }))
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 53 |     ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:92
[INFO] [stdout]    |
[INFO] [stdout] 30 |       async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |  ____________________________________________________________________________________________^
[INFO] [stdout] 31 | |         match self {
[INFO] [stdout] 32 | |             ast::Redirect::Read(fd, w) => redirect_read(*fd, w, env).await,
[INFO] [stdout] 33 | |             ast::Redirect::ReadWrite(fd, w) => redirect_readwrite(*fd, w, env).await,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |       ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |  ________________________________________________________^
[INFO] [stdout] 25 | |         let result = match self {
[INFO] [stdout] 26 | |             Literal(s) | Escaped(s) => Fields::Single(s.clone()),
[INFO] [stdout] 27 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         Ok(Box::pin(async move { result }))
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 24 |     ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/io.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout] 38 +     pub unsafe fn new(fd: std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:95
[INFO] [stdout]    |
[INFO] [stdout] 37 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 38 | |         spawn_with_local_redirections_and_restorer(&self.io, &self.kind, &mut EnvRestorer::new(env))
[INFO] [stdout] 39 | |             .await
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn/ast_impl/compound.rs:64:95
[INFO] [stdout]     |
[INFO] [stdout] 64  |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________________^
[INFO] [stdout] 65  | |         use ast::CompoundCommandKind::*;
[INFO] [stdout] 66  | |         match self {
[INFO] [stdout] 67  | |             Brace(cmds) => sequence_exact(cmds, env).await,
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | |         }
[INFO] [stdout] 109 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 64  |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:95
[INFO] [stdout]    |
[INFO] [stdout] 56 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 57 | |         simple_command(
[INFO] [stdout] 58 | |             self.redirects_or_env_vars.iter().map(|rova| match rova {
[INFO] [stdout] 59 | |                 ast::RedirectOrEnvVar::Redirect(r) => RedirectOrVarAssig::Redirect(r),
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |         .await
[INFO] [stdout] 71 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `void` is imported redundantly
[INFO] [stdout]   --> src/spawn/builtin/cd.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use void::{self, Void};
[INFO] [stdout]    |            ^^^^ the item `void` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/exit_status.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 46 -             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout] 46 +             std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `libc` is imported redundantly
[INFO] [stdout]  --> src/sys/unix/io.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use libc::{self, c_void, size_t};
[INFO] [stdout]   |            ^^^^ the item `libc` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:108:20
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let name = ::std::env::current_exe()
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:36:9
[INFO] [stdout]     |
[INFO] [stdout] 36  | #![deny(unused_qualifications)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         let name = ::std::env::current_exe()
[INFO] [stdout] 108 +         let name = std::env::current_exe()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/args.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 191 -         ::std::mem::replace(&mut self.args, new_args)
[INFO] [stdout] 191 +         std::mem::replace(&mut self.args, new_args)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/args.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 225 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]   --> src/env/env_impl.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::convert::From;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/executable.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 111 -         Some(::libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout] 111 +         Some(libc::ENOEXEC) == err.raw_os_error()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 168 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Permissions` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `Permissions` is already imported here
[INFO] [stdout] 168 |     use crate::env::SubEnvironment;
[INFO] [stdout] 169 |     use crate::io::Permissions;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `RefCounted` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `RefCounted` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDERR_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDERR_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDIN_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:44
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDIN_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `STDOUT_FILENO` is imported redundantly
[INFO] [stdout]    --> src/env/fd.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::*;
[INFO] [stdout]     |         -------- the item `STDOUT_FILENO` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 170 |     use crate::{RefCounted, STDERR_FILENO, STDIN_FILENO, STDOUT_FILENO};
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/func.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 133 -     pub(crate) fn fn_names(&self) -> ::std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout] 133 +     pub(crate) fn fn_names(&self) -> std::collections::hash_map::Keys<'_, N, F> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/func.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 205 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]   --> src/env/last_status.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     use super::*;
[INFO] [stdout]    |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 70 |     use crate::env::SubEnvironment;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `ExitStatus` is imported redundantly
[INFO] [stdout]   --> src/env/last_status.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     use super::*;
[INFO] [stdout]    |         -------- the item `ExitStatus` is already imported here
[INFO] [stdout] 70 |     use crate::env::SubEnvironment;
[INFO] [stdout] 71 |     use crate::ExitStatus;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/env/var.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 108 -         Self::with_env_vars(::std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout] 108 +         Self::with_env_vars(std::env::vars().map(|(k, v)| (k.into(), v.into())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `SubEnvironment` is imported redundantly
[INFO] [stdout]    --> src/env/var.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     use super::*;
[INFO] [stdout]     |         -------- the item `SubEnvironment` is already imported here
[INFO] [stdout] 256 |     use crate::env::SubEnvironment;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `From` is imported redundantly
[INFO] [stdout]  --> src/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `From` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/redirect.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/param_subst.rs:53:53
[INFO] [stdout]    |
[INFO] [stdout] 53 |       ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 54 | |         let te = cfg.tilde_expansion;
[INFO] [stdout] 55 | |
[INFO] [stdout] 56 | |         let fields = match self {
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         Ok(Box::pin(async move { ret }))
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 53 |     ) -> WordEvalResult<Self::EvalResult, W::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/redirect.rs:30:92
[INFO] [stdout]    |
[INFO] [stdout] 30 |       async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |  ____________________________________________________________________________________________^
[INFO] [stdout] 31 | |         match self {
[INFO] [stdout] 32 | |             ast::Redirect::Read(fd, w) => redirect_read(*fd, w, env).await,
[INFO] [stdout] 33 | |             ast::Redirect::ReadWrite(fd, w) => redirect_readwrite(*fd, w, env).await,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn eval(&self, env: &mut E) -> Result<RedirectAction<Self::Handle>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 20 |     async fn eval_with_config(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/eval/ast_impl/simple_word.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |       ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |  ________________________________________________________^
[INFO] [stdout] 25 | |         let result = match self {
[INFO] [stdout] 26 | |             Literal(s) | Escaped(s) => Fields::Single(s.clone()),
[INFO] [stdout] 27 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         Ok(Box::pin(async move { result }))
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 24 |     ) -> WordEvalResult<Self::EvalResult, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/io.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -     pub unsafe fn new(fd: ::std::os::unix::io::RawFd) -> Self {
[INFO] [stdout] 38 +     pub unsafe fn new(fd: std::os::unix::io::RawFd) -> Self {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:37:95
[INFO] [stdout]    |
[INFO] [stdout] 37 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 38 | |         spawn_with_local_redirections_and_restorer(&self.io, &self.kind, &mut EnvRestorer::new(env))
[INFO] [stdout] 39 | |             .await
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/compound.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 64 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn/ast_impl/compound.rs:64:95
[INFO] [stdout]     |
[INFO] [stdout] 64  |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________________^
[INFO] [stdout] 65  | |         use ast::CompoundCommandKind::*;
[INFO] [stdout] 66  | |         match self {
[INFO] [stdout] 67  | |             Brace(cmds) => sequence_exact(cmds, env).await,
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | |         }
[INFO] [stdout] 109 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 64  |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn/ast_impl/simple.rs:56:95
[INFO] [stdout]    |
[INFO] [stdout] 56 |       async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |  _______________________________________________________________________________________________^
[INFO] [stdout] 57 | |         simple_command(
[INFO] [stdout] 58 | |             self.redirects_or_env_vars.iter().map(|rova| match rova {
[INFO] [stdout] 59 | |                 ast::RedirectOrEnvVar::Redirect(r) => RedirectOrVarAssig::Redirect(r),
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |         .await
[INFO] [stdout] 71 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `void` is imported redundantly
[INFO] [stdout]   --> src/spawn/builtin/cd.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use void::{self, Void};
[INFO] [stdout]    |            ^^^^ the item `void` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/spawn.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 74 |     async fn spawn(&self, env: &mut E) -> Result<BoxFuture<'static, ExitStatus>, Self::Error>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn.rs:165:22
[INFO] [stdout]     |
[INFO] [stdout] 165 |             async fn spawn(
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 165 |             async fn spawn(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/spawn.rs:168:70
[INFO] [stdout]     |
[INFO] [stdout] 168 |               ) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 169 | |                 Ok(Box::pin(async { EXIT_SUCCESS }))
[INFO] [stdout] 170 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 168 |             ) -> Result<BoxFuture<'static, ExitStatus>, Self::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]   --> src/exit_status.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 46 -             ::std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout] 46 +             std::os::unix::process::ExitStatusExt::signal(&exit)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `libc` is imported redundantly
[INFO] [stdout]  --> src/sys/unix/io.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use libc::{self, c_void, size_t};
[INFO] [stdout]   |            ^^^^ the item `libc` is already defined by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `os_handle` are never read
[INFO] [stdout]   --> src/env/fd.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         struct FileDescDebug<T> {
[INFO] [stdout]    |                ------------- fields in this struct
[INFO] [stdout] 94 |             permissions: Permissions,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 95 |             os_handle: T,
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileDescDebug` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused pinned boxed `futures_core::Future` trait object that must be used
[INFO] [stdout]   --> src/spawn/swallow_non_fatal.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             env.report_error(&e);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `permissions` and `os_handle` are never read
[INFO] [stdout]   --> src/env/fd.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         struct FileDescDebug<T> {
[INFO] [stdout]    |                ------------- fields in this struct
[INFO] [stdout] 94 |             permissions: Permissions,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 95 |             os_handle: T,
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileDescDebug` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 21 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused pinned boxed `futures_core::Future` trait object that must be used
[INFO] [stdout]   --> src/spawn/swallow_non_fatal.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             env.report_error(&e);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `conch-runtime-pshaw` (lib) due to 22 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 23 previous errors; 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `conch-runtime-pshaw` (lib test) due to 24 previous errors; 17 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "741ac1441f925f615249b6fbfd83efc907a929e4c623611a2cfccad12549b2d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "741ac1441f925f615249b6fbfd83efc907a929e4c623611a2cfccad12549b2d5", kill_on_drop: false }`
[INFO] [stdout] 741ac1441f925f615249b6fbfd83efc907a929e4c623611a2cfccad12549b2d5
