[INFO] cloning repository https://github.com/llenotre/Visto
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/llenotre/Visto" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3eab5ee9b32875c801a32bcc354377a0abd8b880
[INFO] checking llenotre/Visto against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/llenotre/Visto
[INFO] finished tweaking git repo https://github.com/llenotre/Visto
[INFO] tweaked toml for git repo https://github.com/llenotre/Visto written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/llenotre/Visto on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/llenotre/Visto 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /workspace/builds/worker-6-tc2/source/server/Cargo.toml: file `/workspace/builds/worker-6-tc2/source/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 776ccb6a17576bcf7d3b607667ebe998ce6c576b3174107c6ce6589e4195a999
[INFO] running `Command { std: "docker" "start" "-a" "776ccb6a17576bcf7d3b607667ebe998ce6c576b3174107c6ce6589e4195a999", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "776ccb6a17576bcf7d3b607667ebe998ce6c576b3174107c6ce6589e4195a999", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "776ccb6a17576bcf7d3b607667ebe998ce6c576b3174107c6ce6589e4195a999", kill_on_drop: false }`
[INFO] [stdout] 776ccb6a17576bcf7d3b607667ebe998ce6c576b3174107c6ce6589e4195a999
[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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 761c877d8a8b829f70f005927477a10885252f3f9f93d0bdc949c329dc26df4b
[INFO] running `Command { std: "docker" "start" "-a" "761c877d8a8b829f70f005927477a10885252f3f9f93d0bdc949c329dc26df4b", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /opt/rustwide/workdir/server/Cargo.toml: file `/opt/rustwide/workdir/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]     Checking visto v0.1.0 (/opt/rustwide/workdir/server)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  6 |     /// The ID of the screen the pointer is located on.
[INFO] [stdout]  7 |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` 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 `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/mod.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn get_screens(&self) -> &[Screen] {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^^^
[INFO] [stdout]     |                        |         | |
[INFO] [stdout]     |                        |         | the same lifetime is hidden here
[INFO] [stdout]     |                        |         the same lifetime is elided here
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn get_screens(&self) -> &[Screen<'_>] {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/mod.rs:227:25
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn get_screens_mut(&mut self) -> &'a mut [Screen] {
[INFO] [stdout]     |                            ^^^^^^^^^              ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn get_screens_mut(&mut self) -> &'a mut [Screen<'_>] {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/screen.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get_curr_fb(&self) -> &Framebuffer {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^^^^^^
[INFO] [stdout]     |                        |         ||
[INFO] [stdout]     |                        |         |the same lifetime is hidden here
[INFO] [stdout]     |                        |         the same lifetime is elided here
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get_curr_fb(&self) -> &Framebuffer<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> server/src/protocol/request/intern_atom.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         name: String::from_str(name).unwrap(),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> server/src/protocol/request/query_extension.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         name: String::from_str(name).unwrap(),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `visto` (lib test) due to 2 previous errors; 18 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  6 |     /// The ID of the screen the pointer is located on.
[INFO] [stdout]  7 |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` 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 `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/mod.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn get_screens(&self) -> &[Screen] {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^^^
[INFO] [stdout]     |                        |         | |
[INFO] [stdout]     |                        |         | the same lifetime is hidden here
[INFO] [stdout]     |                        |         the same lifetime is elided here
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn get_screens(&self) -> &[Screen<'_>] {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/mod.rs:227:25
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn get_screens_mut(&mut self) -> &'a mut [Screen] {
[INFO] [stdout]     |                            ^^^^^^^^^              ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn get_screens_mut(&mut self) -> &'a mut [Screen<'_>] {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> server/src/ctx/screen.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get_curr_fb(&self) -> &Framebuffer {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^^^^^^
[INFO] [stdout]     |                        |         ||
[INFO] [stdout]     |                        |         |the same lifetime is hidden here
[INFO] [stdout]     |                        |         the same lifetime is elided here
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get_curr_fb(&self) -> &Framebuffer<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> server/src/protocol/request/intern_atom.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         name: String::from_str(name).unwrap(),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> server/src/protocol/request/query_extension.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         name: String::from_str(name).unwrap(),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `visto` (lib) due to 2 previous errors; 18 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "761c877d8a8b829f70f005927477a10885252f3f9f93d0bdc949c329dc26df4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "761c877d8a8b829f70f005927477a10885252f3f9f93d0bdc949c329dc26df4b", kill_on_drop: false }`
[INFO] [stdout] 761c877d8a8b829f70f005927477a10885252f3f9f93d0bdc949c329dc26df4b
