[INFO] fetching crate fzs 0.4.0...
[INFO] checking fzs-0.4.0 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate fzs 0.4.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate fzs 0.4.0
[INFO] finished tweaking crates.io crate fzs 0.4.0
[INFO] tweaked toml for crates.io crate fzs 0.4.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate fzs 0.4.0 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fzs 0.4.0 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "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/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4
[INFO] running `Command { std: "docker" "start" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]    Compiling rustix v0.38.36
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking anstyle-query v1.1.1
[INFO] [stderr]     Checking winnow v0.6.18
[INFO] [stderr]     Checking colorchoice v1.0.2
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking anstyle-parse v0.2.5
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]     Checking anstyle v1.0.8
[INFO] [stderr]     Checking fastrand v2.1.1
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]     Checking is_executable v1.0.1
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking anstream v0.6.15
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]     Checking indexmap v2.3.0
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]     Checking tempfile v3.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]     Checking regex v1.10.6
[INFO] [stderr]     Checking env_filter v0.1.2
[INFO] [stderr]     Checking env_logger v0.11.5
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking serde v1.0.204
[INFO] [stderr]     Checking serde_spanned v0.6.7
[INFO] [stderr]     Checking toml_datetime v0.6.8
[INFO] [stderr]     Checking toml_edit v0.22.20
[INFO] [stderr]     Checking toml v0.8.19
[INFO] [stderr]     Checking fzs v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Level`, `log_enabled`, and `trace`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, log_enabled, trace, warn, Level};
[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: `format`
[INFO] [stdout]   --> src/main.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::{self, format};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::DirEntry`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fs::DirEntry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Level`, `log_enabled`, and `trace`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, log_enabled, trace, warn, Level};
[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: `format`
[INFO] [stdout]   --> src/main.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::{self, format};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::DirEntry`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fs::DirEntry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fstring`
[INFO] [stdout]     --> src/main.rs:1307:14
[INFO] [stdout]      |
[INFO] [stdout] 1307 |         let (fstring, ext): (&str, Option<&str>) = match dir_name.split_once('.') {
[INFO] [stdout]      |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fstring`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provide_envs`
[INFO] [stdout]     --> src/main.rs:1753:5
[INFO] [stdout]      |
[INFO] [stdout] 1753 |     provide_envs: &mut HashMap<String, (String, i32)>,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provide_envs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_config`
[INFO] [stdout]     --> src/main.rs:2268:5
[INFO] [stdout]      |
[INFO] [stdout] 2268 |     global_config: &'a GlobalConfig,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `env_filepath` and `write_env_file` are never used
[INFO] [stdout]    --> src/main.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Plugin {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn env_filepath(&self, global_config: &GlobalConfig) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn write_env_file<'a>(&self, global_config: &'a GlobalConfig) -> Result<(), io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_widget` is never used
[INFO] [stdout]    --> src/main.rs:540:8
[INFO] [stdout]     |
[INFO] [stdout] 536 | impl FnFlag {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 540 |     fn is_widget(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_shell_function` and `is_widget` are never used
[INFO] [stdout]    --> src/main.rs:563:8
[INFO] [stdout]     |
[INFO] [stdout] 547 | impl Fun {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 563 |     fn is_shell_function(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     fn is_widget(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_name` and `get_desc` are never used
[INFO] [stdout]    --> src/main.rs:773:8
[INFO] [stdout]     |
[INFO] [stdout] 769 | trait Initial {
[INFO] [stdout]     |       ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 773 |     fn get_name(&self) -> String;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 774 |     fn get_desc(&self) -> Option<String>;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name_when_widget_template` is never read
[INFO] [stdout]    --> src/main.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 839 | struct GlobalConfig {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 853 |     name_when_widget_template: String, // Unimplemented: probably we don't want this, rely on user to consistently name widgets
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlobalConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map_includes` is never used
[INFO] [stdout]     --> src/main.rs:1251:8
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl Plugin {
[INFO] [stdout]      | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1251 |     fn map_includes(&mut self, plugins: HashMap<String, Plugin>) -> Result<(), ScanningError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_envs` is never used
[INFO] [stdout]     --> src/main.rs:2119:4
[INFO] [stdout]      |
[INFO] [stdout] 2119 | fn write_envs<'a>(
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Fun`
[INFO] [stdout]     --> src/main.rs:1245:54
[INFO] [stdout]      |
[INFO] [stdout] 1245 |                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1245 -                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout] 1245 +                 self.fns.insert(raw_fn.name.clone(), raw_fn);
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1245 -                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout] 1245 +                 self.fns.insert(raw_fn.name.clone(), <Fun as Into<_>>::into(raw_fn));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2093:29
[INFO] [stdout]      |
[INFO] [stdout] 2093 |         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2093 -         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout] 2093 +         replacements.insert("plugin_help_file", help_file.into());
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2093 -         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout] 2093 +         replacements.insert(<&str as Into<_>>::into("plugin_help_file"), help_file.into());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2096:33
[INFO] [stdout]      |
[INFO] [stdout] 2096 |             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2096 -             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout] 2096 +             replacements.insert("fn_table", fn_table.into());
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2096 -             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout] 2096 +             replacements.insert(<&str as Into<_>>::into("fn_table"), fn_table.into());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2098:17
[INFO] [stdout]      |
[INFO] [stdout] 2098 |                 "selector_name".into(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2098 -                 "selector_name".into(),
[INFO] [stdout] 2098 +                 "selector_name",
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2098 -                 "selector_name".into(),
[INFO] [stdout] 2098 +                 <&str as Into<_>>::into("selector_name"),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fstring`
[INFO] [stdout]     --> src/main.rs:1307:14
[INFO] [stdout]      |
[INFO] [stdout] 1307 |         let (fstring, ext): (&str, Option<&str>) = match dir_name.split_once('.') {
[INFO] [stdout]      |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fstring`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fzs` (bin "fzs") due to 4 previous errors; 13 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `provide_envs`
[INFO] [stdout]     --> src/main.rs:1753:5
[INFO] [stdout]      |
[INFO] [stdout] 1753 |     provide_envs: &mut HashMap<String, (String, i32)>,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provide_envs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_config`
[INFO] [stdout]     --> src/main.rs:2268:5
[INFO] [stdout]      |
[INFO] [stdout] 2268 |     global_config: &'a GlobalConfig,
[INFO] [stdout]      |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `env_filepath` and `write_env_file` are never used
[INFO] [stdout]    --> src/main.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Plugin {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn env_filepath(&self, global_config: &GlobalConfig) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn write_env_file<'a>(&self, global_config: &'a GlobalConfig) -> Result<(), io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_widget` is never used
[INFO] [stdout]    --> src/main.rs:540:8
[INFO] [stdout]     |
[INFO] [stdout] 536 | impl FnFlag {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 540 |     fn is_widget(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_shell_function` and `is_widget` are never used
[INFO] [stdout]    --> src/main.rs:563:8
[INFO] [stdout]     |
[INFO] [stdout] 547 | impl Fun {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 563 |     fn is_shell_function(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     fn is_widget(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_name` and `get_desc` are never used
[INFO] [stdout]    --> src/main.rs:773:8
[INFO] [stdout]     |
[INFO] [stdout] 769 | trait Initial {
[INFO] [stdout]     |       ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 773 |     fn get_name(&self) -> String;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 774 |     fn get_desc(&self) -> Option<String>;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name_when_widget_template` is never read
[INFO] [stdout]    --> src/main.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 839 | struct GlobalConfig {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 853 |     name_when_widget_template: String, // Unimplemented: probably we don't want this, rely on user to consistently name widgets
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlobalConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map_includes` is never used
[INFO] [stdout]     --> src/main.rs:1251:8
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl Plugin {
[INFO] [stdout]      | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1251 |     fn map_includes(&mut self, plugins: HashMap<String, Plugin>) -> Result<(), ScanningError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_envs` is never used
[INFO] [stdout]     --> src/main.rs:2119:4
[INFO] [stdout]      |
[INFO] [stdout] 2119 | fn write_envs<'a>(
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Fun`
[INFO] [stdout]     --> src/main.rs:1245:54
[INFO] [stdout]      |
[INFO] [stdout] 1245 |                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1245 -                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout] 1245 +                 self.fns.insert(raw_fn.name.clone(), raw_fn);
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1245 -                 self.fns.insert(raw_fn.name.clone(), raw_fn.into());
[INFO] [stdout] 1245 +                 self.fns.insert(raw_fn.name.clone(), <Fun as Into<_>>::into(raw_fn));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2093:29
[INFO] [stdout]      |
[INFO] [stdout] 2093 |         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2093 -         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout] 2093 +         replacements.insert("plugin_help_file", help_file.into());
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2093 -         replacements.insert("plugin_help_file".into(), help_file.into());
[INFO] [stdout] 2093 +         replacements.insert(<&str as Into<_>>::into("plugin_help_file"), help_file.into());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2096:33
[INFO] [stdout]      |
[INFO] [stdout] 2096 |             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2096 -             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout] 2096 +             replacements.insert("fn_table", fn_table.into());
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2096 -             replacements.insert("fn_table".into(), fn_table.into());
[INFO] [stdout] 2096 +             replacements.insert(<&str as Into<_>>::into("fn_table"), fn_table.into());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]     --> src/main.rs:2098:17
[INFO] [stdout]      |
[INFO] [stdout] 2098 |                 "selector_name".into(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 2098 -                 "selector_name".into(),
[INFO] [stdout] 2098 +                 "selector_name",
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2098 -                 "selector_name".into(),
[INFO] [stdout] 2098 +                 <&str as Into<_>>::into("selector_name"),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fzs` (bin "fzs" test) due to 4 previous errors; 13 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4", kill_on_drop: false }`
[INFO] [stdout] ab5c21ea7c89f7c620269838601c4a91e2bcc17d44cce020e978f36f216bdde4
