[INFO] cloning repository https://github.com/Cosson2017/remote_ssh_manager
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Cosson2017/remote_ssh_manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCosson2017%2Fremote_ssh_manager", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCosson2017%2Fremote_ssh_manager'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f9c72bd4cd22ffbcbeaffc2a26382eb34ea8e559
[INFO] checking Cosson2017/remote_ssh_manager against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCosson2017%2Fremote_ssh_manager" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Cosson2017/remote_ssh_manager on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Cosson2017/remote_ssh_manager
[INFO] finished tweaking git repo https://github.com/Cosson2017/remote_ssh_manager
[INFO] tweaked toml for git repo https://github.com/Cosson2017/remote_ssh_manager written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Cosson2017/remote_ssh_manager 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v0.4.20
[INFO] [stderr]   Downloaded serde v1.0.80
[INFO] [stderr]   Downloaded itertools v0.7.8
[INFO] [stderr]   Downloaded toml v0.4.8
[INFO] [stderr]   Downloaded tui v0.3.0-beta.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 62116dbc96088f5623f091c5d08c30d0d6c6d0a832f166b1be89e4491eed3d66
[INFO] running `Command { std: "docker" "start" "-a" "62116dbc96088f5623f091c5d08c30d0d6c6d0a832f166b1be89e4491eed3d66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62116dbc96088f5623f091c5d08c30d0d6c6d0a832f166b1be89e4491eed3d66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62116dbc96088f5623f091c5d08c30d0d6c6d0a832f166b1be89e4491eed3d66", kill_on_drop: false }`
[INFO] [stdout] 62116dbc96088f5623f091c5d08c30d0d6c6d0a832f166b1be89e4491eed3d66
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 55b73f76c09caf84990cec2f36c32572e1ee956bcbe016e67d5e6a31b508b20c
[INFO] running `Command { std: "docker" "start" "-a" "55b73f76c09caf84990cec2f36c32572e1ee956bcbe016e67d5e6a31b508b20c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.20
[INFO] [stderr]    Compiling serde v1.0.80
[INFO] [stderr]     Checking log v0.4.5
[INFO] [stderr]     Checking termion v1.5.1
[INFO] [stderr]     Checking itertools v0.7.8
[INFO] [stderr]     Checking tui v0.3.0-beta.3
[INFO] [stderr]    Compiling quote v0.6.8
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]    Compiling synstructure v0.9.0
[INFO] [stderr]     Checking toml v0.4.8
[INFO] [stderr]    Compiling failure_derive v0.1.2
[INFO] [stderr]     Checking failure v0.1.2
[INFO] [stderr]     Checking rsm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 62 |             InfoNode::Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                                     --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 62 |             InfoNode::Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                                     --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 69 |                             return_err!(NameErr(name.to_string()))
[INFO] [stdout]    |                             -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 69 |                             return_err!(NameErr(name.to_string()))
[INFO] [stdout]    |                             -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 82 |             Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                           --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 82 |             Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                           --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 84 |                 Ok(_) => return_err!(Exist(node.get_name().clone())),
[INFO] [stdout]    |                          ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 84 |                 Ok(_) => return_err!(Exist(node.get_name().clone())),
[INFO] [stdout]    |                          ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/rsm_data.rs:8:36
[INFO] [stdout]     |
[INFO] [stdout] 8   |         return Err(Error::from($e));
[INFO] [stdout]     |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 195 |             return_err!(NotExist(old.to_string()))
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]     = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/rsm_data.rs:8:36
[INFO] [stdout]     |
[INFO] [stdout] 8   |         return Err(Error::from($e));
[INFO] [stdout]     |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 195 |             return_err!(NotExist(old.to_string()))
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]     = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/rsm_file.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/rsm_file.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result`
[INFO] [stdout]  --> src/rsm_file.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result`
[INFO] [stdout]  --> src/rsm_file.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotDir`, `Exist`, `NotExist`, `PathErr`, and `NameErr` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum NodeErr {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 14 |     #[fail(display = "node => {} is not dir", _0)]
[INFO] [stdout] 15 |     NotDir(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     #[fail(display = "node => {} already exist", _0)]
[INFO] [stdout] 17 |     Exist(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     #[fail(display = "node => {} is not exist", _0)]
[INFO] [stdout] 19 |     NotExist(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     #[fail(display = "path => {} is err", _0)]
[INFO] [stdout] 21 |     PathErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     #[fail(display = "name => {} is err", _0)]
[INFO] [stdout] 23 |     NameErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeErr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Info` and `Dir` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum InfoNode {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     Info(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Dir(String, bool, Vec<InfoNode>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `walk`, `get_or_insert_with`, `insert`, `get_mut`, and `remove` are never used
[INFO] [stdout]    --> src/rsm_data.rs:42:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl InfoNode {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     fn walk(dir: &String, node: &InfoNode, f: &mut impl FnMut(&String, &InfoNode)) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn get_or_insert_with(&mut self, name: &str, f: impl Fn() -> InfoNode) -> Fallible<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     fn insert(&mut self, node: InfoNode) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn get_mut(&mut self, name: &str) -> Option<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn remove(&mut self, name: &str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeView` is never used
[INFO] [stdout]    --> src/rsm_data.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum NodeView {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InfoTree` is never constructed
[INFO] [stdout]    --> src/rsm_data.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct InfoTree {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `visit`, `insert`, and `update` are never used
[INFO] [stdout]    --> src/rsm_data.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl InfoTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 143 |     fn visit(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn insert(&mut self, path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn update(&mut self, old_path: String, new_path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/rsm_tui.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, String), // (left text,right text)
[INFO] [stdout]    |     ------         ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, ()), // (left text,right text)
[INFO] [stdout]    |                    ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Normal` is never constructed
[INFO] [stdout]   --> src/rsm_tui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 11 |     Normal,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rsm_tui.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MainWidget {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 32 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsmConfig` is never constructed
[INFO] [stdout]  --> src/rsm_config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RsmConfig {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fg` and `bg` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Color {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     fg: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     bg: String
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `pos`, `area`, and `color` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TextUnit<'a> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 21 |     text: &'a str,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     pos: Pos,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     area: Area,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotDir`, `Exist`, `NotExist`, `PathErr`, and `NameErr` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum NodeErr {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 14 |     #[fail(display = "node => {} is not dir", _0)]
[INFO] [stdout] 15 |     NotDir(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     #[fail(display = "node => {} already exist", _0)]
[INFO] [stdout] 17 |     Exist(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     #[fail(display = "node => {} is not exist", _0)]
[INFO] [stdout] 19 |     NotExist(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     #[fail(display = "path => {} is err", _0)]
[INFO] [stdout] 21 |     PathErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     #[fail(display = "name => {} is err", _0)]
[INFO] [stdout] 23 |     NameErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeErr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Info` and `Dir` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum InfoNode {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     Info(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Dir(String, bool, Vec<InfoNode>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `walk`, `get_or_insert_with`, `insert`, `get_mut`, and `remove` are never used
[INFO] [stdout]    --> src/rsm_data.rs:42:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl InfoNode {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     fn walk(dir: &String, node: &InfoNode, f: &mut impl FnMut(&String, &InfoNode)) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn get_or_insert_with(&mut self, name: &str, f: impl Fn() -> InfoNode) -> Fallible<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     fn insert(&mut self, node: InfoNode) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn get_mut(&mut self, name: &str) -> Option<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn remove(&mut self, name: &str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeView` is never used
[INFO] [stdout]    --> src/rsm_data.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum NodeView {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InfoTree` is never constructed
[INFO] [stdout]    --> src/rsm_data.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct InfoTree {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `visit`, `insert`, and `update` are never used
[INFO] [stdout]    --> src/rsm_data.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl InfoTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 143 |     fn visit(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn insert(&mut self, path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn update(&mut self, old_path: String, new_path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/rsm_tui.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, String), // (left text,right text)
[INFO] [stdout]    |     ------         ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, ()), // (left text,right text)
[INFO] [stdout]    |                    ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Normal` is never constructed
[INFO] [stdout]   --> src/rsm_tui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 11 |     Normal,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rsm_tui.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MainWidget {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 32 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsmConfig` is never constructed
[INFO] [stdout]  --> src/rsm_config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RsmConfig {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fg` and `bg` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Color {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     fg: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     bg: String
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `pos`, `area`, and `color` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TextUnit<'a> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 21 |     text: &'a str,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     pos: Pos,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     area: Area,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:166:54
[INFO] [stdout]     |
[INFO] [stdout] 166 |             cur_node = cur_node.get_or_insert_with(pn.deref(), || {
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:191:52
[INFO] [stdout]     |
[INFO] [stdout] 191 |             if let Some(nn) = node_iter.get_mut(old.deref()) {
[INFO] [stdout]     |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:206:69
[INFO] [stdout]     |
[INFO] [stdout] 206 |         node_iter.remove(unsafe{old_path_vec.get_unchecked(old_last).deref()});
[INFO] [stdout]     |                                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:166:54
[INFO] [stdout]     |
[INFO] [stdout] 166 |             cur_node = cur_node.get_or_insert_with(pn.deref(), || {
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:191:52
[INFO] [stdout]     |
[INFO] [stdout] 191 |             if let Some(nn) = node_iter.get_mut(old.deref()) {
[INFO] [stdout]     |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:206:69
[INFO] [stdout]     |
[INFO] [stdout] 206 |         node_iter.remove(unsafe{old_path_vec.get_unchecked(old_last).deref()});
[INFO] [stdout]     |                                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 3.96s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rsm v0.1.0 (/opt/rustwide/workdir), syn v0.14.9
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "55b73f76c09caf84990cec2f36c32572e1ee956bcbe016e67d5e6a31b508b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55b73f76c09caf84990cec2f36c32572e1ee956bcbe016e67d5e6a31b508b20c", kill_on_drop: false }`
[INFO] [stdout] 55b73f76c09caf84990cec2f36c32572e1ee956bcbe016e67d5e6a31b508b20c
[INFO] checking Cosson2017/remote_ssh_manager against try#7622c0f807a4e13c4db886a1681bf343795692df+rustflags=-Dnon_local_definitions for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCosson2017%2Fremote_ssh_manager" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Cosson2017/remote_ssh_manager on toolchain 7622c0f807a4e13c4db886a1681bf343795692df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Cosson2017/remote_ssh_manager
[INFO] finished tweaking git repo https://github.com/Cosson2017/remote_ssh_manager
[INFO] tweaked toml for git repo https://github.com/Cosson2017/remote_ssh_manager written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/Cosson2017/remote_ssh_manager 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" "+7622c0f807a4e13c4db886a1681bf343795692df" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0699c56eef12f5ed1ee0a47ddb328c62f1eda282f8c7e06b2d5d4b18eb0d4dce
[INFO] running `Command { std: "docker" "start" "-a" "0699c56eef12f5ed1ee0a47ddb328c62f1eda282f8c7e06b2d5d4b18eb0d4dce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0699c56eef12f5ed1ee0a47ddb328c62f1eda282f8c7e06b2d5d4b18eb0d4dce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0699c56eef12f5ed1ee0a47ddb328c62f1eda282f8c7e06b2d5d4b18eb0d4dce", kill_on_drop: false }`
[INFO] [stdout] 0699c56eef12f5ed1ee0a47ddb328c62f1eda282f8c7e06b2d5d4b18eb0d4dce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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 -Dnon_local_definitions" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7bae2afd767dd39fb541f665fab80955c5289a64ae5de98e33fc7e85951bd118
[INFO] running `Command { std: "docker" "start" "-a" "7bae2afd767dd39fb541f665fab80955c5289a64ae5de98e33fc7e85951bd118", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.20
[INFO] [stderr]    Compiling serde v1.0.80
[INFO] [stderr]     Checking termion v1.5.1
[INFO] [stderr]     Checking log v0.4.5
[INFO] [stderr]     Checking itertools v0.7.8
[INFO] [stderr]     Checking tui v0.3.0-beta.3
[INFO] [stderr]    Compiling quote v0.6.8
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]    Compiling synstructure v0.9.0
[INFO] [stderr]     Checking toml v0.4.8
[INFO] [stderr]    Compiling failure_derive v0.1.2
[INFO] [stderr]     Checking failure v0.1.2
[INFO] [stderr]     Checking rsm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 62 |             InfoNode::Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                                     --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 69 |                             return_err!(NameErr(name.to_string()))
[INFO] [stdout]    |                             -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 82 |             Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                           --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 84 |                 Ok(_) => return_err!(Exist(node.get_name().clone())),
[INFO] [stdout]    |                          ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/rsm_data.rs:8:36
[INFO] [stdout]     |
[INFO] [stdout] 8   |         return Err(Error::from($e));
[INFO] [stdout]     |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 195 |             return_err!(NotExist(old.to_string()))
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]     = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/rsm_file.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result`
[INFO] [stdout]  --> src/rsm_file.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 62 |             InfoNode::Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                                     --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 69 |                             return_err!(NameErr(name.to_string()))
[INFO] [stdout]    |                             -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 82 |             Info(name) => return_err!(NotDir(name.clone())),
[INFO] [stdout]    |                           --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/rsm_data.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout] 8  |         return Err(Error::from($e));
[INFO] [stdout]    |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 84 |                 Ok(_) => return_err!(Exist(node.get_name().clone())),
[INFO] [stdout]    |                          ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/rsm_data.rs:8:36
[INFO] [stdout]     |
[INFO] [stdout] 8   |         return Err(Error::from($e));
[INFO] [stdout]     |                                    ^
[INFO] [stdout] ...
[INFO] [stdout] 195 |             return_err!(NotExist(old.to_string()))
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `return_err`
[INFO] [stdout]     = note: this warning originates in the macro `return_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/rsm_file.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result`
[INFO] [stdout]  --> src/rsm_file.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotDir`, `Exist`, `NotExist`, `PathErr`, and `NameErr` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum NodeErr {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 14 |     #[fail(display = "node => {} is not dir", _0)]
[INFO] [stdout] 15 |     NotDir(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     #[fail(display = "node => {} already exist", _0)]
[INFO] [stdout] 17 |     Exist(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     #[fail(display = "node => {} is not exist", _0)]
[INFO] [stdout] 19 |     NotExist(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     #[fail(display = "path => {} is err", _0)]
[INFO] [stdout] 21 |     PathErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     #[fail(display = "name => {} is err", _0)]
[INFO] [stdout] 23 |     NameErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeErr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Info` and `Dir` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum InfoNode {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     Info(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Dir(String, bool, Vec<InfoNode>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `walk`, `get_or_insert_with`, `insert`, `get_mut`, and `remove` are never used
[INFO] [stdout]    --> src/rsm_data.rs:42:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl InfoNode {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     fn walk(dir: &String, node: &InfoNode, f: &mut impl FnMut(&String, &InfoNode)) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn get_or_insert_with(&mut self, name: &str, f: impl Fn() -> InfoNode) -> Fallible<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     fn insert(&mut self, node: InfoNode) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn get_mut(&mut self, name: &str) -> Option<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn remove(&mut self, name: &str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeView` is never used
[INFO] [stdout]    --> src/rsm_data.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum NodeView {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InfoTree` is never constructed
[INFO] [stdout]    --> src/rsm_data.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct InfoTree {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `visit`, `insert`, and `update` are never used
[INFO] [stdout]    --> src/rsm_data.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl InfoTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 143 |     fn visit(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn insert(&mut self, path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn update(&mut self, old_path: String, new_path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/rsm_tui.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, String), // (left text,right text)
[INFO] [stdout]    |     ------         ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, ()), // (left text,right text)
[INFO] [stdout]    |                    ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Normal` is never constructed
[INFO] [stdout]   --> src/rsm_tui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 11 |     Normal,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rsm_tui.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MainWidget {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 32 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsmConfig` is never constructed
[INFO] [stdout]  --> src/rsm_config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RsmConfig {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fg` and `bg` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Color {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     fg: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     bg: String
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `pos`, `area`, and `color` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TextUnit<'a> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 21 |     text: &'a str,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     pos: Pos,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     area: Area,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/rsm_data.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_failure_Fail_FOR_NodeErr`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/rsm_data.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_failure_core_fmt_Display_FOR_NodeErr`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:166:54
[INFO] [stdout]     |
[INFO] [stdout] 166 |             cur_node = cur_node.get_or_insert_with(pn.deref(), || {
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:191:52
[INFO] [stdout]     |
[INFO] [stdout] 191 |             if let Some(nn) = node_iter.get_mut(old.deref()) {
[INFO] [stdout]     |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:206:69
[INFO] [stdout]     |
[INFO] [stdout] 206 |         node_iter.remove(unsafe{old_path_vec.get_unchecked(old_last).deref()});
[INFO] [stdout]     |                                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsm` (bin "rsm" test) due to 3 previous errors; 27 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variants `NotDir`, `Exist`, `NotExist`, `PathErr`, and `NameErr` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum NodeErr {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 14 |     #[fail(display = "node => {} is not dir", _0)]
[INFO] [stdout] 15 |     NotDir(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     #[fail(display = "node => {} already exist", _0)]
[INFO] [stdout] 17 |     Exist(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     #[fail(display = "node => {} is not exist", _0)]
[INFO] [stdout] 19 |     NotExist(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     #[fail(display = "path => {} is err", _0)]
[INFO] [stdout] 21 |     PathErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     #[fail(display = "name => {} is err", _0)]
[INFO] [stdout] 23 |     NameErr(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeErr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Info` and `Dir` are never constructed
[INFO] [stdout]   --> src/rsm_data.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum InfoNode {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     Info(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Dir(String, bool, Vec<InfoNode>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `walk`, `get_or_insert_with`, `insert`, `get_mut`, and `remove` are never used
[INFO] [stdout]    --> src/rsm_data.rs:42:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl InfoNode {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     fn walk(dir: &String, node: &InfoNode, f: &mut impl FnMut(&String, &InfoNode)) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn get_or_insert_with(&mut self, name: &str, f: impl Fn() -> InfoNode) -> Fallible<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79  |     fn insert(&mut self, node: InfoNode) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn get_mut(&mut self, name: &str) -> Option<&mut Self> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn remove(&mut self, name: &str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeView` is never used
[INFO] [stdout]    --> src/rsm_data.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum NodeView {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InfoTree` is never constructed
[INFO] [stdout]    --> src/rsm_data.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct InfoTree {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `visit`, `insert`, and `update` are never used
[INFO] [stdout]    --> src/rsm_data.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl InfoTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 143 |     fn visit(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn insert(&mut self, path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn update(&mut self, old_path: String, new_path: String, is_dir: bool) -> Fallible<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/rsm_tui.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, String), // (left text,right text)
[INFO] [stdout]    |     ------         ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Search(String, ()), // (left text,right text)
[INFO] [stdout]    |                    ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Normal` is never constructed
[INFO] [stdout]   --> src/rsm_tui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum State {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 11 |     Normal,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rsm_tui.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MainWidget {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 32 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsmConfig` is never constructed
[INFO] [stdout]  --> src/rsm_config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RsmConfig {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fg` and `bg` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Color {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     fg: String,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     bg: String
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `pos`, `area`, and `color` are never read
[INFO] [stdout]   --> src/tui_spawn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TextUnit<'a> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 21 |     text: &'a str,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     pos: Pos,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     area: Area,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/rsm_data.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_failure_Fail_FOR_NodeErr`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/rsm_data.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Fail)]
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_failure_core_fmt_Display_FOR_NodeErr`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:166:54
[INFO] [stdout]     |
[INFO] [stdout] 166 |             cur_node = cur_node.get_or_insert_with(pn.deref(), || {
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:191:52
[INFO] [stdout]     |
[INFO] [stdout] 191 |             if let Some(nn) = node_iter.get_mut(old.deref()) {
[INFO] [stdout]     |                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&str` instead of dereferencing the inner type
[INFO] [stdout]    --> src/rsm_data.rs:206:69
[INFO] [stdout]     |
[INFO] [stdout] 206 |         node_iter.remove(unsafe{old_path_vec.get_unchecked(old_last).deref()});
[INFO] [stdout]     |                                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsm` (bin "rsm") due to 3 previous errors; 27 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7bae2afd767dd39fb541f665fab80955c5289a64ae5de98e33fc7e85951bd118", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7bae2afd767dd39fb541f665fab80955c5289a64ae5de98e33fc7e85951bd118", kill_on_drop: false }`
[INFO] [stdout] 7bae2afd767dd39fb541f665fab80955c5289a64ae5de98e33fc7e85951bd118
