[INFO] cloning repository https://github.com/Lorinet/asshell
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lorinet/asshell" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLorinet%2Fasshell", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLorinet%2Fasshell'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ebb04648b180fac9182180bae9c830a89a9cf349
[INFO] checking Lorinet/asshell against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLorinet%2Fasshell" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Lorinet/asshell
[INFO] finished tweaking git repo https://github.com/Lorinet/asshell
[INFO] tweaked toml for git repo https://github.com/Lorinet/asshell written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Lorinet/asshell on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Lorinet/asshell 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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5ca086a81cde76d735f23da4e4821f52622e6dc6e68451308baf5755102d1126
[INFO] running `Command { std: "docker" "start" "-a" "5ca086a81cde76d735f23da4e4821f52622e6dc6e68451308baf5755102d1126", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ca086a81cde76d735f23da4e4821f52622e6dc6e68451308baf5755102d1126", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ca086a81cde76d735f23da4e4821f52622e6dc6e68451308baf5755102d1126", kill_on_drop: false }`
[INFO] [stdout] 5ca086a81cde76d735f23da4e4821f52622e6dc6e68451308baf5755102d1126
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6559d3a208577b7b9c9599189d279ed9b43b371b642bbb2c1265294b321fc466
[INFO] running `Command { std: "docker" "start" "-a" "6559d3a208577b7b9c9599189d279ed9b43b371b642bbb2c1265294b321fc466", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]    Compiling anyhow v1.0.82
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]    Compiling asshell v1.0.0 (/opt/rustwide/workdir/asshell)
[INFO] [stderr]     Checking home v0.5.9
[INFO] [stderr]     Checking trie v0.1.0 (/opt/rustwide/workdir/trie)
[INFO] [stdout] warning: unused import: `std::iter::Chain`
[INFO] [stdout]  --> trie/src/hash_table.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Chain;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> trie/src/trie.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> trie/src/trie.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> trie/src/trie.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> trie/src/trie.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashEntry`
[INFO] [stdout]  --> trie/src/trie.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hash_table::{HashEntry, HashTable};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Chain`
[INFO] [stdout]  --> trie/src/hash_table.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Chain;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> trie/src/trie.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> trie/src/trie.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> trie/src/trie.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> trie/src/trie.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashEntry`
[INFO] [stdout]  --> trie/src/trie.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hash_table::{HashEntry, HashTable};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> trie/src/hash_table.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let mut iter = self.entries.iter().flat_map(|vec| vec.iter());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> trie/src/hash_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut iter = self.entries.into_iter().flat_map(|vec| vec.into_iter());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> trie/src/hash_table.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let mut iter = self.entries.iter().flat_map(|vec| vec.iter());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> trie/src/hash_table.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut iter = self.entries.into_iter().flat_map(|vec| vec.into_iter());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> trie/src/trie.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 175 | /         loop {
[INFO] [stdout] 176 | |             if let Some(iter) = self.iterators.iter_mut().last() {
[INFO] [stdout] 177 | |                 let next = iter.next();
[INFO] [stdout] 178 | |                 if let Some(next) = next {
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 194 |           return None;
[INFO] [stdout]     |           ^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> trie/src/trie.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 175 | /         loop {
[INFO] [stdout] 176 | |             if let Some(iter) = self.iterators.iter_mut().last() {
[INFO] [stdout] 177 | |                 let next = iter.next();
[INFO] [stdout] 178 | |                 if let Some(next) = next {
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 194 |           return None;
[INFO] [stdout]     |           ^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashEntry`
[INFO] [stdout]   --> trie/src/hash_table.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HashEntry<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashEntry` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashEntry`
[INFO] [stdout]   --> trie/src/hash_table.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HashEntry<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashEntry` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashEntry<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | / impl<K, V> HashEntry<K, V>
[INFO] [stdout] 18 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashEntry<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashEntry<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | / impl<K, V> HashEntry<K, V>
[INFO] [stdout] 18 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashEntry<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashTable`
[INFO] [stdout]   --> trie/src/hash_table.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct HashTable<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashTable` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashTable`
[INFO] [stdout]   --> trie/src/hash_table.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct HashTable<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashTable` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashTable<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | / impl<K, V> HashTable<K, V>
[INFO] [stdout] 62 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashTable<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashTable<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | / impl<K, V> HashTable<K, V>
[INFO] [stdout] 62 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashTable<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trie` is never read
[INFO] [stdout]    --> trie/src/trie.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct TrieIterator<'a, V>
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 151 |     where V: Clone {
[INFO] [stdout] 152 |     trie: &'a Trie<V>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> trie/src/trie.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn iter(&self) -> TrieIterator<V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn iter(&self) -> TrieIterator<'_, V> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashEntry`
[INFO] [stdout]   --> trie/src/hash_table.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HashEntry<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashEntry` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashEntry`
[INFO] [stdout]   --> trie/src/hash_table.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HashEntry<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashEntry` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashEntry<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | / impl<K, V> HashEntry<K, V>
[INFO] [stdout] 18 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashEntry<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashEntry<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | / impl<K, V> HashEntry<K, V>
[INFO] [stdout] 18 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashEntry<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashTable`
[INFO] [stdout]   --> trie/src/hash_table.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct HashTable<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashTable` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashTable`
[INFO] [stdout]   --> trie/src/hash_table.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct HashTable<K, V>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `HashTable` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Key` is more private than the item `HashTable<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | / impl<K, V> HashTable<K, V>
[INFO] [stdout] 62 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashTable<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Key` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | trait Key = PartialEq + Clone + Hash;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Value` is more private than the item `HashTable<K, V>`
[INFO] [stdout]   --> trie/src/hash_table.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | / impl<K, V> HashTable<K, V>
[INFO] [stdout] 62 | |     where K: Key, V: Value {
[INFO] [stdout]    | |__________________________^ implementation `HashTable<K, V>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Value` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> trie/src/hash_table.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | trait Value = Clone + Default;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trie` is never read
[INFO] [stdout]    --> trie/src/trie.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct TrieIterator<'a, V>
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 151 |     where V: Clone {
[INFO] [stdout] 152 |     trie: &'a Trie<V>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> trie/src/trie.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn iter(&self) -> TrieIterator<V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn iter(&self) -> TrieIterator<'_, V> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking termion v3.0.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking vte v0.11.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]     Checking strip-ansi-escapes v0.2.0
[INFO] [stderr]     Checking fancy-regex v0.13.0
[INFO] [stdout] warning: unused imports: `fs`, `io`, and `process`
[INFO] [stdout]  --> asshell/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io, process};
[INFO] [stdout]   |           ^^  ^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> asshell/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pipeline` and `ProgramContext`
[INFO] [stdout]  --> asshell/src/main.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::executor::{Pipeline, ProgramContext};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env`
[INFO] [stdout]  --> asshell/src/console.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, io};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Stdin` and `Stdout`
[INFO] [stdout]  --> asshell/src/console.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, Stdin, stdin, Stdout, stdout, Write};
[INFO] [stdout]   |                     ^^^^^         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Split`
[INFO] [stdout]  --> asshell/src/console.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::{Split, SplitWhitespace};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strip_ansi_escapes::strip_str`
[INFO] [stdout]  --> asshell/src/console.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use strip_ansi_escapes::strip_str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Black`, `LightBlack`, `LightCyan`, `LightGreen`, and `LightRed`
[INFO] [stdout]  --> asshell/src/console.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use termion::color::{Black, LightBlack, LightBlue, LightCyan, LightGreen, LightMagenta, LightRed, Magenta, Reset, White};
[INFO] [stdout]   |                      ^^^^^  ^^^^^^^^^^             ^^^^^^^^^  ^^^^^^^^^^                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RawTerminal`
[INFO] [stdout]   --> asshell/src/console.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | use termion::raw::{IntoRawMode, RawTerminal};
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashTable`
[INFO] [stdout]   --> asshell/src/console.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use trie::{Trie, HashTable, TrieIterator};
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> asshell/src/console.rs:297:16
[INFO] [stdout]     |
[INFO] [stdout] 297 |             if (self.tokens.len() <= 1) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 297 -             if (self.tokens.len() <= 1) {
[INFO] [stdout] 297 +             if self.tokens.len() <= 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileType`
[INFO] [stdout]  --> asshell/src/suggestions.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::{File, FileType};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rev` and `Skip`
[INFO] [stdout]  --> asshell/src/history.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::iter::{Rev, Skip};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::Iter`
[INFO] [stdout]  --> asshell/src/history.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdout`
[INFO] [stdout]  --> asshell/src/commands.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, stdout, Write};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]  --> asshell/src/commands.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use termion::input::TermRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> asshell/src/executor.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | /// Internal commands supported by shell
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Peekable`
[INFO] [stdout]  --> asshell/src/executor.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Peekable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::color`
[INFO] [stdout]   --> asshell/src/executor.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use termion::color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::console::Console`
[INFO] [stdout]   --> asshell/src/executor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::console::Console;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> asshell/src/dismangler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread::current;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Captures`
[INFO] [stdout]  --> asshell/src/dismangler.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use fancy_regex::{Captures, Regex};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::executor`
[INFO] [stdout]  --> asshell/src/dismangler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::executor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fs`, `io`, and `process`
[INFO] [stdout]  --> asshell/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io, process};
[INFO] [stdout]   |           ^^  ^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> asshell/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pipeline` and `ProgramContext`
[INFO] [stdout]  --> asshell/src/main.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::executor::{Pipeline, ProgramContext};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env`
[INFO] [stdout]  --> asshell/src/console.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, io};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Stdin` and `Stdout`
[INFO] [stdout]  --> asshell/src/console.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, Stdin, stdin, Stdout, stdout, Write};
[INFO] [stdout]   |                     ^^^^^         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Split`
[INFO] [stdout]  --> asshell/src/console.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::{Split, SplitWhitespace};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strip_ansi_escapes::strip_str`
[INFO] [stdout]  --> asshell/src/console.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use strip_ansi_escapes::strip_str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Black`, `LightBlack`, `LightCyan`, `LightGreen`, and `LightRed`
[INFO] [stdout]  --> asshell/src/console.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use termion::color::{Black, LightBlack, LightBlue, LightCyan, LightGreen, LightMagenta, LightRed, Magenta, Reset, White};
[INFO] [stdout]   |                      ^^^^^  ^^^^^^^^^^             ^^^^^^^^^  ^^^^^^^^^^                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RawTerminal`
[INFO] [stdout]   --> asshell/src/console.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | use termion::raw::{IntoRawMode, RawTerminal};
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashTable`
[INFO] [stdout]   --> asshell/src/console.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use trie::{Trie, HashTable, TrieIterator};
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> asshell/src/console.rs:297:16
[INFO] [stdout]     |
[INFO] [stdout] 297 |             if (self.tokens.len() <= 1) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 297 -             if (self.tokens.len() <= 1) {
[INFO] [stdout] 297 +             if self.tokens.len() <= 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileType`
[INFO] [stdout]  --> asshell/src/suggestions.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::{File, FileType};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rev` and `Skip`
[INFO] [stdout]  --> asshell/src/history.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::iter::{Rev, Skip};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::Iter`
[INFO] [stdout]  --> asshell/src/history.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdout`
[INFO] [stdout]  --> asshell/src/commands.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, stdout, Write};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]  --> asshell/src/commands.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use termion::input::TermRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> asshell/src/executor.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | /// Internal commands supported by shell
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Peekable`
[INFO] [stdout]  --> asshell/src/executor.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Peekable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::color`
[INFO] [stdout]   --> asshell/src/executor.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use termion::color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::console::Console`
[INFO] [stdout]   --> asshell/src/executor.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::console::Console;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> asshell/src/dismangler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread::current;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Captures`
[INFO] [stdout]  --> asshell/src/dismangler.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use fancy_regex::{Captures, Regex};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::executor`
[INFO] [stdout]  --> asshell/src/dismangler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::executor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> asshell/src/commands.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     process::exit(0);
[INFO] [stdout]    |     ---------------- any code following this expression is unreachable
[INFO] [stdout] 18 |     Ok(Value::Number(0))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> asshell/src/console.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let (x, y) = stdout().into_raw_mode().expect("Invalid terminal configuration").cursor_pos().expect("Cannot detect cursor");
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> asshell/src/console.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let (x, y) = stdout().into_raw_mode().expect("Invalid terminal configuration").cursor_pos().expect("Cannot detect cursor");
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]    --> asshell/src/console.rs:181:42
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn advance_suggestion<'a>(&mut self, root: &'a TokenSuggestions, trie: &'a Option<Trie<Box<TokenSuggestions>>>, iterator: &mut ...
[INFO] [stdout]     |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> asshell/src/commands.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     process::exit(0);
[INFO] [stdout]    |     ---------------- any code following this expression is unreachable
[INFO] [stdout] 18 |     Ok(Value::Number(0))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ynow`
[INFO] [stdout]    --> asshell/src/console.rs:252:34
[INFO] [stdout]     |
[INFO] [stdout] 252 |                 if let Ok((xnow, ynow)) = self.stdout.cursor_pos() {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_ynow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> asshell/src/console.rs:268:21
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let (width, height) = termion::terminal_size().unwrap();
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/console.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut end_line = false;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_line`
[INFO] [stdout]    --> asshell/src/console.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut end_line = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdout`
[INFO] [stdout]   --> asshell/src/commands.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> asshell/src/commands.rs:16:59
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ver(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> asshell/src/commands.rs:22:58
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ver(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn cd(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> asshell/src/commands.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         if let Err(error) = env::set_current_dir(Path::new(folder.replace("~", env!("HOME")).as_str())) {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn read(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]   --> asshell/src/commands.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         if let Some(prompt) = args.get(0) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn rand(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn run(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:94:14
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn color(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_a_string` is never read
[INFO] [stdout]    --> asshell/src/executor.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         is_a_string = false;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> asshell/src/executor.rs:211:24
[INFO] [stdout]     |
[INFO] [stdout] 211 |             Self::File(file) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> asshell/src/executor.rs:223:24
[INFO] [stdout]     |
[INFO] [stdout] 223 |             Self::File(file) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:380:63
[INFO] [stdout]     |
[INFO] [stdout] 380 |                 if let (Operator::Set, Term::Variable { name, line }) = (operator, left.as_ref()) {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:405:44
[INFO] [stdout]     |
[INFO] [stdout] 405 |             Term::While { condition, body, line } => {
[INFO] [stdout]     |                                            ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:421:41
[INFO] [stdout]     |
[INFO] [stdout] 421 |             Term::Command { name, body, line } => {
[INFO] [stdout]     |                                         ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/executor.rs:589:29
[INFO] [stdout]     |
[INFO] [stdout] 589 |                         let mut reader = BufReader::new(previous_pipe.unwrap().stdout().unwrap());
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/executor.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 591 |                         let mut output = String::new();
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> asshell/src/executor.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 591 |                         let mut output = String::new();
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> asshell/src/executor.rs:665:33
[INFO] [stdout]     |
[INFO] [stdout] 665 |         ProgramType::Internal { name, procedure } => (procedure)(&mut stdin, &mut stdout, args),
[INFO] [stdout]     |                                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> asshell/src/dismangler.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |         if let CodeUnit::Block { code, block } = self {
[INFO] [stdout]     |                                  ^^^^ help: try ignoring the field: `code: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/dismangler.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut is_comment = false;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_comment`
[INFO] [stdout]    --> asshell/src/dismangler.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut is_comment = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]    --> asshell/src/dismangler.rs:317:52
[INFO] [stdout]     |
[INFO] [stdout] 317 |                     if let CodeUnit::Block { code, block } = &mut new_block {
[INFO] [stdout]     |                                                    ^^^^^ help: try ignoring the field: `block: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_number`
[INFO] [stdout]    --> asshell/src/dismangler.rs:318:55
[INFO] [stdout]     |
[INFO] [stdout] 318 |                         if let CodeUnit::Line { code, line_number } = code.as_mut() {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: try ignoring the field: `line_number: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/dismangler.rs:565:56
[INFO] [stdout]     |
[INFO] [stdout] 565 | ...                   Term::Variable { name, line } => name,
[INFO] [stdout]     |                                              ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_other`
[INFO] [stdout]    --> asshell/src/dismangler.rs:604:83
[INFO] [stdout]     |
[INFO] [stdout] 604 |                         if let Term::If { condition: cond_if, if_true, otherwise: if_other, line: if_line } = new_term {
[INFO] [stdout]     |                                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_other`
[INFO] [stdout]    --> asshell/src/dismangler.rs:616:112
[INFO] [stdout]     |
[INFO] [stdout] 616 | ..._but_true, otherwise: prev_other, line: prev_line } = new_term {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> asshell/src/dismangler.rs:529:22
[INFO] [stdout]     |
[INFO] [stdout] 529 |     let mut output = Ok(Term::None);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 536 |                         output = Ok(Term::SingleOperatorExpression {
[INFO] [stdout]     |                         ------ `output` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROMPT_COLOR` is never used
[INFO] [stdout]   --> asshell/src/console.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static PROMPT_COLOR: color::Fg<Magenta> = color::Fg(color::Magenta);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, and `error_state` are never read
[INFO] [stdout]   --> asshell/src/console.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Console {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 22 |     width: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     height: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     error_state: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_dumb_mode`, `into_smart_mode`, and `command_token` are never used
[INFO] [stdout]    --> asshell/src/console.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Console {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn into_dumb_mode(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn into_smart_mode(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn command_token(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `combined` is never read
[INFO] [stdout]   --> asshell/src/suggestions.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct TokenSuggestions {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     combined: Trie<Box<TokenSuggestions>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenSuggestions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> asshell/src/history.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl History {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stdin` is never used
[INFO] [stdout]    --> asshell/src/executor.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl ProgramIO {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 205 |     /// Gets write only STDIN pipe of contained process handle
[INFO] [stdout] 206 |     pub fn stdin(self) -> Option<ChildStdin> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> asshell/src/dismangler.rs:202:39
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Otherwise { otherwise: Box<Term>, line: usize },
[INFO] [stdout]     |     --------- field in this variant   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Term` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `replace` is never used
[INFO] [stdout]    --> asshell/src/dismangler.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 209 | impl Term {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 210 |     /// Replaces this term with another
[INFO] [stdout] 211 |     pub fn replace(&mut self, term: Term) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> asshell/src/console.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let _ = self.flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> asshell/src/console.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn tokens(&self) -> SplitWhitespace {
[INFO] [stdout]     |               ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |               |
[INFO] [stdout]     |               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn tokens(&self) -> SplitWhitespace<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     self.flush();
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     let _ = self.flush();
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> asshell/src/history.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn iter(&self) -> HistoryIterator {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn iter(&self) -> HistoryIterator<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> asshell/src/console.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let (x, y) = stdout().into_raw_mode().expect("Invalid terminal configuration").cursor_pos().expect("Cannot detect cursor");
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> asshell/src/console.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let (x, y) = stdout().into_raw_mode().expect("Invalid terminal configuration").cursor_pos().expect("Cannot detect cursor");
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root`
[INFO] [stdout]    --> asshell/src/console.rs:181:42
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn advance_suggestion<'a>(&mut self, root: &'a TokenSuggestions, trie: &'a Option<Trie<Box<TokenSuggestions>>>, iterator: &mut ...
[INFO] [stdout]     |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ynow`
[INFO] [stdout]    --> asshell/src/console.rs:252:34
[INFO] [stdout]     |
[INFO] [stdout] 252 |                 if let Ok((xnow, ynow)) = self.stdout.cursor_pos() {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_ynow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> asshell/src/console.rs:268:21
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let (width, height) = termion::terminal_size().unwrap();
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/console.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut end_line = false;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_line`
[INFO] [stdout]    --> asshell/src/console.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut end_line = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdout`
[INFO] [stdout]   --> asshell/src/commands.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> asshell/src/commands.rs:16:59
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ver(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> asshell/src/commands.rs:22:58
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ver(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn cd(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> asshell/src/commands.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         if let Err(error) = env::set_current_dir(Path::new(folder.replace("~", env!("HOME")).as_str())) {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn read(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]   --> asshell/src/commands.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |         if let Some(prompt) = args.get(0) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn rand(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn run(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> asshell/src/commands.rs:94:14
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn color(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_a_string` is never read
[INFO] [stdout]    --> asshell/src/executor.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         is_a_string = false;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> asshell/src/executor.rs:211:24
[INFO] [stdout]     |
[INFO] [stdout] 211 |             Self::File(file) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> asshell/src/executor.rs:223:24
[INFO] [stdout]     |
[INFO] [stdout] 223 |             Self::File(file) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:380:63
[INFO] [stdout]     |
[INFO] [stdout] 380 |                 if let (Operator::Set, Term::Variable { name, line }) = (operator, left.as_ref()) {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:405:44
[INFO] [stdout]     |
[INFO] [stdout] 405 |             Term::While { condition, body, line } => {
[INFO] [stdout]     |                                            ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/executor.rs:421:41
[INFO] [stdout]     |
[INFO] [stdout] 421 |             Term::Command { name, body, line } => {
[INFO] [stdout]     |                                         ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/executor.rs:589:29
[INFO] [stdout]     |
[INFO] [stdout] 589 |                         let mut reader = BufReader::new(previous_pipe.unwrap().stdout().unwrap());
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/executor.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 591 |                         let mut output = String::new();
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> asshell/src/executor.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 591 |                         let mut output = String::new();
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> asshell/src/executor.rs:665:33
[INFO] [stdout]     |
[INFO] [stdout] 665 |         ProgramType::Internal { name, procedure } => (procedure)(&mut stdin, &mut stdout, args),
[INFO] [stdout]     |                                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> asshell/src/dismangler.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |         if let CodeUnit::Block { code, block } = self {
[INFO] [stdout]     |                                  ^^^^ help: try ignoring the field: `code: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> asshell/src/dismangler.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut is_comment = false;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_comment`
[INFO] [stdout]    --> asshell/src/dismangler.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut is_comment = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]    --> asshell/src/dismangler.rs:317:52
[INFO] [stdout]     |
[INFO] [stdout] 317 |                     if let CodeUnit::Block { code, block } = &mut new_block {
[INFO] [stdout]     |                                                    ^^^^^ help: try ignoring the field: `block: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_number`
[INFO] [stdout]    --> asshell/src/dismangler.rs:318:55
[INFO] [stdout]     |
[INFO] [stdout] 318 |                         if let CodeUnit::Line { code, line_number } = code.as_mut() {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: try ignoring the field: `line_number: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> asshell/src/dismangler.rs:565:56
[INFO] [stdout]     |
[INFO] [stdout] 565 | ...                   Term::Variable { name, line } => name,
[INFO] [stdout]     |                                              ^^^^ help: try ignoring the field: `line: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_other`
[INFO] [stdout]    --> asshell/src/dismangler.rs:604:83
[INFO] [stdout]     |
[INFO] [stdout] 604 |                         if let Term::If { condition: cond_if, if_true, otherwise: if_other, line: if_line } = new_term {
[INFO] [stdout]     |                                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_other`
[INFO] [stdout]    --> asshell/src/dismangler.rs:616:112
[INFO] [stdout]     |
[INFO] [stdout] 616 | ..._but_true, otherwise: prev_other, line: prev_line } = new_term {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> asshell/src/dismangler.rs:529:22
[INFO] [stdout]     |
[INFO] [stdout] 529 |     let mut output = Ok(Term::None);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 536 |                         output = Ok(Term::SingleOperatorExpression {
[INFO] [stdout]     |                         ------ `output` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COMMAND_COLOR` is never used
[INFO] [stdout]   --> asshell/src/console.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static COMMAND_COLOR: color::Fg<LightMagenta> = color::Fg(color::LightMagenta);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TEXT_COLOR` is never used
[INFO] [stdout]   --> asshell/src/console.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static TEXT_COLOR: color::Fg<LightBlue> = color::Fg(color::LightBlue);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SUGGESTION_COLOR` is never used
[INFO] [stdout]   --> asshell/src/console.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub static SUGGESTION_COLOR: color::Fg<White> = color::Fg(color::White);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROMPT_COLOR` is never used
[INFO] [stdout]   --> asshell/src/console.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static PROMPT_COLOR: color::Fg<Magenta> = color::Fg(color::Magenta);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Console` is never constructed
[INFO] [stdout]   --> asshell/src/console.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Console {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> asshell/src/console.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Console {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  69 |     /// Constructs an instance of Console
[INFO] [stdout]  70 |     pub fn new() -> Console {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn into_dumb_mode(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn into_smart_mode(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn clear_suggestion(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn change_suggestion(&mut self, suggestion: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn display_suggestion(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn token(&self, index: usize) -> &str {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn last_token(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn command_token(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn tokens(&self) -> SplitWhitespace {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn tokenize(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn get_suggestions_trie(&self, root: &TokenSuggestions) -> Option<Trie<Box<TokenSuggestions>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn get_suggestions_iterator<'a>(&self, trie: Option<&'a Trie<Box<TokenSuggestions>>>) -> Option<TrieIterator<'a, Box<TokenSugge...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn advance_suggestion<'a>(&mut self, root: &'a TokenSuggestions, trie: &'a Option<Trie<Box<TokenSuggestions>>>, iterator: &mut ...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn advance_history<'a>(&mut self, iterator: &mut HistoryIterator<'a>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn devance_history<'a>(&mut self, iterator: &mut HistoryIterator<'a>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn autocomplete(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write(&mut self, text: &str) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn backspace(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn command_line(&mut self, root_suggestions: TokenSuggestions, history: &mut History) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenSuggestions` is never constructed
[INFO] [stdout]   --> asshell/src/suggestions.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct TokenSuggestions {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> asshell/src/suggestions.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl TokenSuggestions {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  50 |     /// Recursively loads a suggestions trie from a file
[INFO] [stdout]  51 |     pub fn from_file(current_folder: &Path, path: &Path) -> anyhow::Result<TokenSuggestions> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     fn from_token(current_folder: &Path, token: &str) -> TokenSuggestions {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn merge(&mut self, trie: Trie<Box<TokenSuggestions>>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn files(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn folders(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn words(&self) -> &Trie<Box<TokenSuggestions>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn suggestion_trie(&self) -> Trie<Box<TokenSuggestions>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn get_files_folders_trie(&self) -> Trie<Box<TokenSuggestions>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn debug_format(&self, level: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `History` is never constructed
[INFO] [stdout]   --> asshell/src/history.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct History {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `as_suggestions_trie`, `subtrie_slice`, and `len` are never used
[INFO] [stdout]   --> asshell/src/history.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl History {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 19 |     /// Creates a history trie from an optional history file
[INFO] [stdout] 20 |     pub fn new(history_file: Option<&Path>) -> History {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn push(&mut self, line: &str) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn as_suggestions_trie(&self) -> Trie<Box<TokenSuggestions>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn subtrie_slice(&self, prefix: &str) -> HistorySlice {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistorySlice` is never constructed
[INFO] [stdout]   --> asshell/src/history.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct HistorySlice {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `iter`, and `len` are never used
[INFO] [stdout]    --> asshell/src/history.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl HistorySlice {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Constructs a HistorySlice from an ordered vector of strings
[INFO] [stdout] 105 |     fn new(list: Vec<String>) -> HistorySlice {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn iter(&self) -> HistoryIterator {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ForwardBackwardIterator` is never used
[INFO] [stdout]    --> asshell/src/history.rs:121:11
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub trait ForwardBackwardIterator : Iterator {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryIterator` is never constructed
[INFO] [stdout]    --> asshell/src/history.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct HistoryIterator<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> asshell/src/history.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl<'a> HistoryIterator<'a> {
[INFO] [stdout]     | ---------------------------- associated function in this implementation
[INFO] [stdout] 133 |     /// Constructs a new HistoryIterator of a HistorySlice
[INFO] [stdout] 134 |     fn new(history: &'a HistorySlice) -> HistoryIterator<'a> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exit` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn exit(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ver` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ver(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cd` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn cd(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn read(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rand` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn rand(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn run(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color` is never used
[INFO] [stdout]   --> asshell/src/commands.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn color(stdin: &mut dyn Read, stdout: &mut dyn Write, args: &[String]) -> anyhow::Result<Value> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stdin` is never used
[INFO] [stdout]    --> asshell/src/executor.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl ProgramIO {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 205 |     /// Gets write only STDIN pipe of contained process handle
[INFO] [stdout] 206 |     pub fn stdin(self) -> Option<ChildStdin> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Internal` is never constructed
[INFO] [stdout]    --> asshell/src/executor.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 245 | enum ProgramType {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] 246 |     None,
[INFO] [stdout] 247 |     Internal { name: String, procedure: fn(&mut dyn Read, &mut dyn Write, &[String]) -> anyhow::Result<Value> },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgramType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_function` is never used
[INFO] [stdout]    --> asshell/src/executor.rs:291:12
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl ProgramContext {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn from_function(name: &str, procedure: fn(&mut dyn Read, &mut dyn Write, &[String]) -> anyhow::Result<Value>) -> ProgramCo...
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> asshell/src/dismangler.rs:202:39
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Otherwise { otherwise: Box<Term>, line: usize },
[INFO] [stdout]     |     --------- field in this variant   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Term` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `replace` is never used
[INFO] [stdout]    --> asshell/src/dismangler.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 209 | impl Term {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 210 |     /// Replaces this term with another
[INFO] [stdout] 211 |     pub fn replace(&mut self, term: Term) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> asshell/src/console.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let _ = self.flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> asshell/src/console.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn tokens(&self) -> SplitWhitespace {
[INFO] [stdout]     |               ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |               |
[INFO] [stdout]     |               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn tokens(&self) -> SplitWhitespace<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     self.flush();
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     let _ = self.flush();
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> asshell/src/console.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         self.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let _ = self.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> asshell/src/history.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn iter(&self) -> HistoryIterator {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn iter(&self) -> HistoryIterator<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.18s
[INFO] running `Command { std: "docker" "inspect" "6559d3a208577b7b9c9599189d279ed9b43b371b642bbb2c1265294b321fc466", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6559d3a208577b7b9c9599189d279ed9b43b371b642bbb2c1265294b321fc466", kill_on_drop: false }`
[INFO] [stdout] 6559d3a208577b7b9c9599189d279ed9b43b371b642bbb2c1265294b321fc466
