[INFO] cloning repository https://github.com/Aurailus/Myxer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Aurailus/Myxer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAurailus%2FMyxer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAurailus%2FMyxer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ea53586408350e00b58c09e30864b3ec316503fb
[INFO] checking Aurailus/Myxer against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAurailus%2FMyxer" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Aurailus/Myxer
[INFO] finished tweaking git repo https://github.com/Aurailus/Myxer
[INFO] tweaked toml for git repo https://github.com/Aurailus/Myxer written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Aurailus/Myxer on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Aurailus/Myxer 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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ee7209cf81a8a55ee9141eb8a85f48e62a51a6b12b998761257a43fbdd7e477f
[INFO] running `Command { std: "docker" "start" "-a" "ee7209cf81a8a55ee9141eb8a85f48e62a51a6b12b998761257a43fbdd7e477f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ee7209cf81a8a55ee9141eb8a85f48e62a51a6b12b998761257a43fbdd7e477f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee7209cf81a8a55ee9141eb8a85f48e62a51a6b12b998761257a43fbdd7e477f", kill_on_drop: false }`
[INFO] [stdout] ee7209cf81a8a55ee9141eb8a85f48e62a51a6b12b998761257a43fbdd7e477f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 836bd6239eedac93e7a55bf5c4441ac533226fe37c711b659cf8310520be28a8
[INFO] running `Command { std: "docker" "start" "-a" "836bd6239eedac93e7a55bf5c4441ac533226fe37c711b659cf8310520be28a8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.29
[INFO] [stderr]    Compiling syn v1.0.76
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]    Compiling version-compare v0.0.10
[INFO] [stderr]    Compiling strum v0.18.0
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]    Compiling futures-macro v0.3.17
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling futures-channel v0.3.17
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]     Checking futures-sink v0.3.17
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking pin-project-lite v0.2.7
[INFO] [stderr]    Compiling anyhow v1.0.44
[INFO] [stderr]     Checking futures-io v0.3.17
[INFO] [stderr]     Checking slab v0.4.4
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]     Checking once_cell v1.8.0
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]    Compiling gio v0.9.1
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling pango v0.9.1
[INFO] [stderr]    Compiling gdk-pixbuf v0.9.0
[INFO] [stderr]    Compiling cairo-rs v0.9.1
[INFO] [stderr]    Compiling libpulse-sys v1.19.2
[INFO] [stderr]    Compiling gdk v0.13.2
[INFO] [stderr]    Compiling atk v0.9.0
[INFO] [stderr]    Compiling gtk v0.9.2
[INFO] [stderr]     Checking slice_as_array v1.1.0
[INFO] [stderr]     Checking colorsys v0.6.4
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.29
[INFO] [stderr]    Compiling strum_macros v0.18.0
[INFO] [stderr]    Compiling glib-macros v0.10.1
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking libpulse-binding v2.25.0
[INFO] [stderr]    Compiling thiserror v1.0.29
[INFO] [stderr]    Compiling system-deps v1.3.2
[INFO] [stderr]    Compiling glib-sys v0.10.1
[INFO] [stderr]    Compiling gobject-sys v0.10.0
[INFO] [stderr]    Compiling gio-sys v0.10.1
[INFO] [stderr]    Compiling pango-sys v0.10.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.10.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.10.0
[INFO] [stderr]    Compiling atk-sys v0.10.0
[INFO] [stderr]    Compiling gdk-sys v0.10.0
[INFO] [stderr]    Compiling gtk-sys v0.10.0
[INFO] [stderr]     Checking futures-executor v0.3.17
[INFO] [stderr]     Checking glib v0.10.3
[INFO] [stderr]     Checking futures v0.3.17
[INFO] [stderr]     Checking myxer v1.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:356:4
[INFO] [stdout]     |
[INFO] [stdout] 356 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:374:4
[INFO] [stdout]     |
[INFO] [stdout] 374 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:392:4
[INFO] [stdout]     |
[INFO] [stdout] 392 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:412:4
[INFO] [stdout]     |
[INFO] [stdout] 412 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:432:4
[INFO] [stdout]     |
[INFO] [stdout] 432 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:356:4
[INFO] [stdout]     |
[INFO] [stdout] 356 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:374:4
[INFO] [stdout]     |
[INFO] [stdout] 374 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:392:4
[INFO] [stdout]     |
[INFO] [stdout] 392 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:412:4
[INFO] [stdout]     |
[INFO] [stdout] 412 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pulse.rs:432:4
[INFO] [stdout]     |
[INFO] [stdout] 432 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/meter/base_meter.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 let scale = Meter::build_scale();
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 let scale = <dyn Meter>::build_scale();
[INFO] [stdout]     |                             ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/meter/base_meter.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 |             let scale = Meter::build_scale();
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |             let scale = <dyn Meter>::build_scale();
[INFO] [stdout]     |                         ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/sink_meter.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/sink_meter.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/source_meter.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/source_meter.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/stream_meter.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/meter/base_meter.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 let scale = Meter::build_scale();
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 let scale = <dyn Meter>::build_scale();
[INFO] [stdout]     |                             ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/stream_meter.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/meter/base_meter.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 |             let scale = Meter::build_scale();
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |             let scale = <dyn Meter>::build_scale();
[INFO] [stdout]     |                         ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/sink_meter.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/sink_meter.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/source_meter.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/source_meter.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/stream_meter.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let widgets = Meter::build_meter();
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let widgets = <dyn Meter>::build_meter();
[INFO] [stdout]    |                       ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/meter/stream_meter.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let scales = Meter::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let scales = <dyn Meter>::build_scales(&self.pulse, &self.data, self.split);
[INFO] [stdout]    |                      ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]   --> src/card.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CardData {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub icon: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `select` is never read
[INFO] [stdout]   --> src/meter/base_meter.rs:56:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct MeterWidgets {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub select: gtk::Button,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_index` is never used
[INFO] [stdout]   --> src/meter/base_meter.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub trait Meter {
[INFO] [stdout]    |           ----- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn get_index(&self) -> u32;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `monitor_index` is never read
[INFO] [stdout]   --> src/pulse.rs:80:6
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct StreamData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub monitor_index: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/shared.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn borrow(&self) -> Ref<T> {
[INFO] [stdout]    |                   ^^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn borrow(&self) -> Ref<'_, T> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/shared.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn borrow_mut(&self) -> RefMut<T> {
[INFO] [stdout]    |                       ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn borrow_mut(&self) -> RefMut<'_, T> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]   --> src/card.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CardData {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub icon: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `select` is never read
[INFO] [stdout]   --> src/meter/base_meter.rs:56:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct MeterWidgets {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub select: gtk::Button,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_index` is never used
[INFO] [stdout]   --> src/meter/base_meter.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub trait Meter {
[INFO] [stdout]    |           ----- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn get_index(&self) -> u32;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `monitor_index` is never read
[INFO] [stdout]   --> src/pulse.rs:80:6
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct StreamData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub monitor_index: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/shared.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn borrow(&self) -> Ref<T> {
[INFO] [stdout]    |                   ^^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn borrow(&self) -> Ref<'_, T> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/shared.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn borrow_mut(&self) -> RefMut<T> {
[INFO] [stdout]    |                       ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn borrow_mut(&self) -> RefMut<'_, T> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/shared.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |         write!(f, "{}", self.deref())
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `shared::Shared<T>` does not implement `Deref`, so calling `deref` on `&shared::Shared<T>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 84 -         write!(f, "{}", self.deref())
[INFO] [stdout] 84 +         write!(f, "{}", self)
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `shared::Shared<T>`, implement `Clone` for it
[INFO] [stdout]    |
[INFO] [stdout] 18 + #[derive(Clone)]
[INFO] [stdout] 19 | pub struct Shared<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/shared.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         write!(f, "{:?}", self.deref())
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `shared::Shared<T>` does not implement `Deref`, so calling `deref` on `&shared::Shared<T>` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 91 -         write!(f, "{:?}", self.deref())
[INFO] [stdout] 91 +         write!(f, "{:?}", self)
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `shared::Shared<T>`, implement `Clone` for it
[INFO] [stdout]    |
[INFO] [stdout] 18 + #[derive(Clone)]
[INFO] [stdout] 19 | pub struct Shared<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/shared.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |         write!(f, "{}", self.deref())
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `shared::Shared<T>` does not implement `Deref`, so calling `deref` on `&shared::Shared<T>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 84 -         write!(f, "{}", self.deref())
[INFO] [stdout] 84 +         write!(f, "{}", self)
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `shared::Shared<T>`, implement `Clone` for it
[INFO] [stdout]    |
[INFO] [stdout] 18 + #[derive(Clone)]
[INFO] [stdout] 19 | pub struct Shared<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/shared.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         write!(f, "{:?}", self.deref())
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `shared::Shared<T>` does not implement `Deref`, so calling `deref` on `&shared::Shared<T>` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 91 -         write!(f, "{:?}", self.deref())
[INFO] [stdout] 91 +         write!(f, "{:?}", self)
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `shared::Shared<T>`, implement `Clone` for it
[INFO] [stdout]    |
[INFO] [stdout] 18 + #[derive(Clone)]
[INFO] [stdout] 19 | pub struct Shared<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 21s
[INFO] running `Command { std: "docker" "inspect" "836bd6239eedac93e7a55bf5c4441ac533226fe37c711b659cf8310520be28a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "836bd6239eedac93e7a55bf5c4441ac533226fe37c711b659cf8310520be28a8", kill_on_drop: false }`
[INFO] [stdout] 836bd6239eedac93e7a55bf5c4441ac533226fe37c711b659cf8310520be28a8
