[INFO] cloning repository https://github.com/wzhd/kseqi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wzhd/kseqi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwzhd%2Fkseqi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwzhd%2Fkseqi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8cf7804ed7ee5f57884b9d6d4a101a7563f9ec6a
[INFO] testing wzhd/kseqi against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwzhd%2Fkseqi" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wzhd/kseqi
[INFO] finished tweaking git repo https://github.com/wzhd/kseqi
[INFO] tweaked toml for git repo https://github.com/wzhd/kseqi written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wzhd/kseqi on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wzhd/kseqi 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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ff540f1b1b3ef7d789f3eb27ef3c31b2d1eb5c593da9f90cb7117c8d1e7771b2
[INFO] running `Command { std: "docker" "start" "-a" "ff540f1b1b3ef7d789f3eb27ef3c31b2d1eb5c593da9f90cb7117c8d1e7771b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ff540f1b1b3ef7d789f3eb27ef3c31b2d1eb5c593da9f90cb7117c8d1e7771b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff540f1b1b3ef7d789f3eb27ef3c31b2d1eb5c593da9f90cb7117c8d1e7771b2", kill_on_drop: false }`
[INFO] [stdout] ff540f1b1b3ef7d789f3eb27ef3c31b2d1eb5c593da9f90cb7117c8d1e7771b2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3321b605137cf17cb76cea037a4e2944d544c659e30c38e38635c8757fbdfc3e
[INFO] running `Command { std: "docker" "start" "-a" "3321b605137cf17cb76cea037a4e2944d544c659e30c38e38635c8757fbdfc3e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.137
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling termcolor v1.2.0
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling x11-dl v2.20.1
[INFO] [stderr]    Compiling env_logger v0.10.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling mio v0.8.5
[INFO] [stderr]    Compiling kseqi-desktop v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/xdl/xinput2.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Ok((xip2))
[INFO] [stdout]    |        ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Ok((xip2))
[INFO] [stdout] 28 +     Ok(xip2)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/xinput2.rs:294:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let attach = (self.xidi.attachment );
[INFO] [stdout]     |                      ^                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -         let attach = (self.xidi.attachment );
[INFO] [stdout] 294 +         let attach = self.xidi.attachment;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let event = (&*event);
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let event = (&*event);
[INFO] [stdout] 115 +         let event = &*event;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:527:20
[INFO] [stdout]     |
[INFO] [stdout] 527 |             kbs ^= (1 << b1p);
[INFO] [stdout]     |                    ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -             kbs ^= (1 << b1p);
[INFO] [stdout] 527 +             kbs ^= 1 << b1p;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for (a) in self.acts.iter() {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -         for (a) in self.acts.iter() {
[INFO] [stdout] 118 +         for a in self.acts.iter() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/conf/mod.rs:173:24
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout]     |                        ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout] 173 +             let a = if &self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0 { "↘"}else {"↗"};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout]     |                                           ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout] 213 +             Ok((input, a)) => if let Some(sqa) = a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signal.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let os_handler = os_handler as *const extern fn(libc::c_int) as _;
[INFO] [stdout]    |                                               ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/signal.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Ok((r))
[INFO] [stdout]    |        ^ ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -     Ok((r))
[INFO] [stdout] 32 +     Ok(r)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/lib.rs:192:22
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 Some((de)) => {
[INFO] [stdout]     |                      ^  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 192 -                 Some((de)) => {
[INFO] [stdout] 192 +                 Some(de) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XFreer` is never constructed
[INFO] [stdout]   --> src/xdl/util.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) struct XFreer<'a> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HierarchyInfo` is never used
[INFO] [stdout]   --> src/xdl/data.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | trait HierarchyInfo {
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_HierarchyChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:288:17
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 XI_HierarchyChanged  => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_HIERARCHY_CHANGED`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_DeviceChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 XI_DeviceChanged  => Some(Event::XIDeviceChange(*(xcookie.data as *mut _))),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_DEVICE_CHANGED`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:361:21
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ext_list(&self) -> Extensions {
[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] 361 |     pub fn ext_list(&self) -> Extensions<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:454:27
[INFO] [stdout]     |
[INFO] [stdout] 454 |     pub fn modifier_codes(&self) -> ModifierCodes  {
[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] 454 |     pub fn modifier_codes(&self) -> ModifierCodes<'_>  {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadAccess` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         BadAccess => XlibErr::Access,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_ACCESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadValue` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         BadValue  => XlibErr::Value,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to upper case: `BAD_VALUE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadWindow` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         BadWindow  => XlibErr::Window,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_WINDOW`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/xdl/xinput2.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos {
[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] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos<'_> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/xinput2.rs:201:24
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo> {
[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] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo<'_>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIKeyClass` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 XIKeyClass => {
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to upper case: `XIKEY_CLASS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterPointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             XIMasterPointer => Self::MasterPointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |             XIMasterKeyboard => Self::MasterKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlavePointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |             XISlavePointer => Self::SlavePointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlaveKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             XISlaveKeyboard => Self::SlaveKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIFloatingSlave` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |             XIFloatingSlave => Self::FloatingSlave,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIFLOATING_SLAVE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyPress` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             XI_KeyPress => {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_PRESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyRelease` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |             XI_KeyRelease => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_RELEASE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                      ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                      |                |
[INFO] [stdout]    |                      |                the lifetimes get resolved as `'_`
[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] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                               ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                               |                |
[INFO] [stdout]    |                               |                the lifetimes get resolved as `'_`
[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] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn quoted(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                  ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                  |                |
[INFO] [stdout]    |                  |                the lifetimes get resolved as `'_`
[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] 74 | fn quoted(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:80:27
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                           |                |
[INFO] [stdout]    |                           |                the lifetimes get resolved as `'_`
[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] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<str>>> {
[INFO] [stdout]    |                ^^^^             ----      -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the lifetimes get resolved as `'_`
[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] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<'_, str>>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/conf/parse.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]     |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]     |                           |                |
[INFO] [stdout]     |                           |                the lifetimes get resolved as `'_`
[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] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/bin/keyv.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stdout]    |                       ^^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stdout] 22 +         let Some(e) = x.recv_timeout(None) else {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.06s
[INFO] running `Command { std: "docker" "inspect" "3321b605137cf17cb76cea037a4e2944d544c659e30c38e38635c8757fbdfc3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3321b605137cf17cb76cea037a4e2944d544c659e30c38e38635c8757fbdfc3e", kill_on_drop: false }`
[INFO] [stdout] 3321b605137cf17cb76cea037a4e2944d544c659e30c38e38635c8757fbdfc3e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 10d067c936564b2a43931db2d1ea570027b7935c1cd1091e4a38fb005a031811
[INFO] running `Command { std: "docker" "start" "-a" "10d067c936564b2a43931db2d1ea570027b7935c1cd1091e4a38fb005a031811", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/xdl/xinput2.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Ok((xip2))
[INFO] [stdout]    |        ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Ok((xip2))
[INFO] [stdout] 28 +     Ok(xip2)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/xinput2.rs:294:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let attach = (self.xidi.attachment );
[INFO] [stdout]     |                      ^                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -         let attach = (self.xidi.attachment );
[INFO] [stdout] 294 +         let attach = self.xidi.attachment;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let event = (&*event);
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let event = (&*event);
[INFO] [stdout] 115 +         let event = &*event;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:527:20
[INFO] [stdout]     |
[INFO] [stdout] 527 |             kbs ^= (1 << b1p);
[INFO] [stdout]     |                    ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -             kbs ^= (1 << b1p);
[INFO] [stdout] 527 +             kbs ^= 1 << b1p;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for (a) in self.acts.iter() {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -         for (a) in self.acts.iter() {
[INFO] [stdout] 118 +         for a in self.acts.iter() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/conf/mod.rs:173:24
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout]     |                        ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout] 173 +             let a = if &self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0 { "↘"}else {"↗"};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout]     |                                           ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout] 213 +             Ok((input, a)) => if let Some(sqa) = a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signal.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let os_handler = os_handler as *const extern fn(libc::c_int) as _;
[INFO] [stdout]    |                                               ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/signal.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Ok((r))
[INFO] [stdout]    |        ^ ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -     Ok((r))
[INFO] [stdout] 32 +     Ok(r)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/lib.rs:192:22
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 Some((de)) => {
[INFO] [stdout]     |                      ^  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 192 -                 Some((de)) => {
[INFO] [stdout] 192 +                 Some(de) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XFreer` is never constructed
[INFO] [stdout]   --> src/xdl/util.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) struct XFreer<'a> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HierarchyInfo` is never used
[INFO] [stdout]   --> src/xdl/data.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | trait HierarchyInfo {
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_HierarchyChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:288:17
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 XI_HierarchyChanged  => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_HIERARCHY_CHANGED`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_DeviceChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 XI_DeviceChanged  => Some(Event::XIDeviceChange(*(xcookie.data as *mut _))),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_DEVICE_CHANGED`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:361:21
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ext_list(&self) -> Extensions {
[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] 361 |     pub fn ext_list(&self) -> Extensions<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:454:27
[INFO] [stdout]     |
[INFO] [stdout] 454 |     pub fn modifier_codes(&self) -> ModifierCodes  {
[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] 454 |     pub fn modifier_codes(&self) -> ModifierCodes<'_>  {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadAccess` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         BadAccess => XlibErr::Access,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_ACCESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadValue` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         BadValue  => XlibErr::Value,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to upper case: `BAD_VALUE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadWindow` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         BadWindow  => XlibErr::Window,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_WINDOW`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/xdl/xinput2.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos {
[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] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos<'_> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/xinput2.rs:201:24
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo> {
[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] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo<'_>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIKeyClass` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 XIKeyClass => {
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to upper case: `XIKEY_CLASS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterPointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             XIMasterPointer => Self::MasterPointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |             XIMasterKeyboard => Self::MasterKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlavePointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |             XISlavePointer => Self::SlavePointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlaveKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             XISlaveKeyboard => Self::SlaveKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIFloatingSlave` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |             XIFloatingSlave => Self::FloatingSlave,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIFLOATING_SLAVE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyPress` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             XI_KeyPress => {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_PRESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyRelease` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |             XI_KeyRelease => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_RELEASE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                      ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                      |                |
[INFO] [stdout]    |                      |                the lifetimes get resolved as `'_`
[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] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                               ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                               |                |
[INFO] [stdout]    |                               |                the lifetimes get resolved as `'_`
[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] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn quoted(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                  ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                  |                |
[INFO] [stdout]    |                  |                the lifetimes get resolved as `'_`
[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] 74 | fn quoted(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:80:27
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                           |                |
[INFO] [stdout]    |                           |                the lifetimes get resolved as `'_`
[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] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<str>>> {
[INFO] [stdout]    |                ^^^^             ----      -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the lifetimes get resolved as `'_`
[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] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<'_, str>>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kseqi-desktop v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/conf/parse.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]     |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]     |                           |                |
[INFO] [stdout]     |                           |                the lifetimes get resolved as `'_`
[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] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/bin/keyv.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stdout]    |                       ^^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stdout] 22 +         let Some(e) = x.recv_timeout(None) else {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/xdl/xinput2.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Ok((xip2))
[INFO] [stdout]    |        ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Ok((xip2))
[INFO] [stdout] 28 +     Ok(xip2)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/xinput2.rs:294:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let attach = (self.xidi.attachment );
[INFO] [stdout]     |                      ^                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -         let attach = (self.xidi.attachment );
[INFO] [stdout] 294 +         let attach = self.xidi.attachment;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let event = (&*event);
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let event = (&*event);
[INFO] [stdout] 115 +         let event = &*event;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/xdl/mod.rs:527:20
[INFO] [stdout]     |
[INFO] [stdout] 527 |             kbs ^= (1 << b1p);
[INFO] [stdout]     |                    ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -             kbs ^= (1 << b1p);
[INFO] [stdout] 527 +             kbs ^= 1 << b1p;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for (a) in self.acts.iter() {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -         for (a) in self.acts.iter() {
[INFO] [stdout] 118 +         for a in self.acts.iter() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/conf/mod.rs:173:24
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout]     |                        ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stdout] 173 +             let a = if &self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0 { "↘"}else {"↗"};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/conf/mod.rs:213:43
[INFO] [stdout]     |
[INFO] [stdout] 213 |             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout]     |                                           ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stdout] 213 +             Ok((input, a)) => if let Some(sqa) = a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/conf/mod.rs:378:36
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let sv = SmoVec::from_iter((0..10)).unwrap();
[INFO] [stdout]     |                                    ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 378 -         let sv = SmoVec::from_iter((0..10)).unwrap();
[INFO] [stdout] 378 +         let sv = SmoVec::from_iter(0..10).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/conf/mod.rs:380:36
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let sv = SmoVec::from_iter((0..6)).unwrap();
[INFO] [stdout]     |                                    ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 380 -         let sv = SmoVec::from_iter((0..6)).unwrap();
[INFO] [stdout] 380 +         let sv = SmoVec::from_iter(0..6).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/conf/mod.rs:382:36
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let sv = SmoVec::from_iter((0..8)).unwrap();
[INFO] [stdout]     |                                    ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 382 -         let sv = SmoVec::from_iter((0..8)).unwrap();
[INFO] [stdout] 382 +         let sv = SmoVec::from_iter(0..8).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/conf/mod.rs:384:36
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let sv = SmoVec::from_iter((0..7));
[INFO] [stdout]     |                                    ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 384 -         let sv = SmoVec::from_iter((0..7));
[INFO] [stdout] 384 +         let sv = SmoVec::from_iter(0..7);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signal.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let os_handler = os_handler as *const extern fn(libc::c_int) as _;
[INFO] [stdout]    |                                               ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/signal.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Ok((r))
[INFO] [stdout]    |        ^ ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -     Ok((r))
[INFO] [stdout] 32 +     Ok(r)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/lib.rs:192:22
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 Some((de)) => {
[INFO] [stdout]     |                      ^  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 192 -                 Some((de)) => {
[INFO] [stdout] 192 +                 Some(de) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XFreer` is never constructed
[INFO] [stdout]   --> src/xdl/util.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) struct XFreer<'a> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HierarchyInfo` is never used
[INFO] [stdout]   --> src/xdl/data.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | trait HierarchyInfo {
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_HierarchyChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:288:17
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 XI_HierarchyChanged  => {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_HIERARCHY_CHANGED`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_DeviceChanged` should have an upper case name
[INFO] [stdout]    --> src/xdl/mod.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 XI_DeviceChanged  => Some(Event::XIDeviceChange(*(xcookie.data as *mut _))),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_DEVICE_CHANGED`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:361:21
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ext_list(&self) -> Extensions {
[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] 361 |     pub fn ext_list(&self) -> Extensions<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/mod.rs:454:27
[INFO] [stdout]     |
[INFO] [stdout] 454 |     pub fn modifier_codes(&self) -> ModifierCodes  {
[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] 454 |     pub fn modifier_codes(&self) -> ModifierCodes<'_>  {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadAccess` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         BadAccess => XlibErr::Access,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_ACCESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadValue` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         BadValue  => XlibErr::Value,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to upper case: `BAD_VALUE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `BadWindow` should have an upper case name
[INFO] [stdout]   --> src/xdl/err.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         BadWindow  => XlibErr::Window,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_WINDOW`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/xdl/xinput2.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos {
[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] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos<'_> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/xdl/xinput2.rs:201:24
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo> {
[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] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo<'_>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIKeyClass` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 XIKeyClass => {
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to upper case: `XIKEY_CLASS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterPointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             XIMasterPointer => Self::MasterPointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIMasterKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |             XIMasterKeyboard => Self::MasterKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlavePointer` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |             XISlavePointer => Self::SlavePointer,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_POINTER`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XISlaveKeyboard` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             XISlaveKeyboard => Self::SlaveKeyboard,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_KEYBOARD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XIFloatingSlave` should have an upper case name
[INFO] [stdout]    --> src/xdl/xinput2.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |             XIFloatingSlave => Self::FloatingSlave,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIFLOATING_SLAVE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyPress` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             XI_KeyPress => {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_PRESS`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant in pattern `XI_KeyRelease` should have an upper case name
[INFO] [stdout]    --> src/xdl/data.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |             XI_KeyRelease => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_RELEASE`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                      ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                      |                |
[INFO] [stdout]    |                      |                the lifetimes get resolved as `'_`
[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] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                               ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                               |                |
[INFO] [stdout]    |                               |                the lifetimes get resolved as `'_`
[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] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn quoted(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                  ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                  |                |
[INFO] [stdout]    |                  |                the lifetimes get resolved as `'_`
[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] 74 | fn quoted(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:80:27
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]    |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                           |                |
[INFO] [stdout]    |                           |                the lifetimes get resolved as `'_`
[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] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/conf/parse.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<str>>> {
[INFO] [stdout]    |                ^^^^             ----      -------- the lifetimes get resolved as `'_`
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the lifetimes get resolved as `'_`
[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] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<'_, str>>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/conf/parse.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stdout]     |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stdout]     |                           |                |
[INFO] [stdout]     |                           |                the lifetimes get resolved as `'_`
[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] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.56s
[INFO] running `Command { std: "docker" "inspect" "10d067c936564b2a43931db2d1ea570027b7935c1cd1091e4a38fb005a031811", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "10d067c936564b2a43931db2d1ea570027b7935c1cd1091e4a38fb005a031811", kill_on_drop: false }`
[INFO] [stdout] 10d067c936564b2a43931db2d1ea570027b7935c1cd1091e4a38fb005a031811
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] db3574aeb3cc5d4205648d84df62878119b9d728f8c60c08f6f041f608b653fe
[INFO] running `Command { std: "docker" "start" "-a" "db3574aeb3cc5d4205648d84df62878119b9d728f8c60c08f6f041f608b653fe", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]   --> src/xdl/xinput2.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 |     Ok((xip2))
[INFO] [stderr]    |        ^    ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 -     Ok((xip2))
[INFO] [stderr] 28 +     Ok(xip2)
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/xdl/xinput2.rs:294:22
[INFO] [stderr]     |
[INFO] [stderr] 294 |         let attach = (self.xidi.attachment );
[INFO] [stderr]     |                      ^                    ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 294 -         let attach = (self.xidi.attachment );
[INFO] [stderr] 294 +         let attach = self.xidi.attachment;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/xdl/mod.rs:115:21
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let event = (&*event);
[INFO] [stderr]     |                     ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 115 -         let event = (&*event);
[INFO] [stderr] 115 +         let event = &*event;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/xdl/mod.rs:527:20
[INFO] [stderr]     |
[INFO] [stderr] 527 |             kbs ^= (1 << b1p);
[INFO] [stderr]     |                    ^        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 527 -             kbs ^= (1 << b1p);
[INFO] [stderr] 527 +             kbs ^= 1 << b1p;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> src/conf/mod.rs:118:13
[INFO] [stderr]     |
[INFO] [stderr] 118 |         for (a) in self.acts.iter() {
[INFO] [stderr]     |             ^ ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 118 -         for (a) in self.acts.iter() {
[INFO] [stderr] 118 +         for a in self.acts.iter() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/conf/mod.rs:173:24
[INFO] [stderr]     |
[INFO] [stderr] 173 |             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stderr]     |                        ^                                                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 173 -             let a = if (&self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0) { "↘"}else {"↗"};
[INFO] [stderr] 173 +             let a = if &self.sq[..i].iter().filter(|&a| a == k).count() %2 ==0 { "↘"}else {"↗"};
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> src/conf/mod.rs:213:43
[INFO] [stderr]     |
[INFO] [stderr] 213 |             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stderr]     |                                           ^   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 213 -             Ok((input, a)) => if let Some((sqa)) = a {
[INFO] [stderr] 213 +             Ok((input, a)) => if let Some(sqa) = a {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/signal.rs:23:47
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let os_handler = os_handler as *const extern fn(libc::c_int) as _;
[INFO] [stderr]    |                                               ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]   --> src/signal.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 |     Ok((r))
[INFO] [stderr]    |        ^ ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 32 -     Ok((r))
[INFO] [stderr] 32 +     Ok(r)
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> src/lib.rs:192:22
[INFO] [stderr]     |
[INFO] [stderr] 192 |                 Some((de)) => {
[INFO] [stderr]     |                      ^  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 192 -                 Some((de)) => {
[INFO] [stderr] 192 +                 Some(de) => {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: struct `XFreer` is never constructed
[INFO] [stderr]   --> src/xdl/util.rs:85:19
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub(crate) struct XFreer<'a> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HierarchyInfo` is never used
[INFO] [stderr]   --> src/xdl/data.rs:71:7
[INFO] [stderr]    |
[INFO] [stderr] 71 | trait HierarchyInfo {
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XI_HierarchyChanged` should have an upper case name
[INFO] [stderr]    --> src/xdl/mod.rs:288:17
[INFO] [stderr]     |
[INFO] [stderr] 288 |                 XI_HierarchyChanged  => {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_HIERARCHY_CHANGED`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XI_DeviceChanged` should have an upper case name
[INFO] [stderr]    --> src/xdl/mod.rs:295:17
[INFO] [stderr]     |
[INFO] [stderr] 295 |                 XI_DeviceChanged  => Some(Event::XIDeviceChange(*(xcookie.data as *mut _))),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_DEVICE_CHANGED`
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/xdl/mod.rs:361:21
[INFO] [stderr]     |
[INFO] [stderr] 361 |     pub fn ext_list(&self) -> Extensions {
[INFO] [stderr]     |                     ^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 361 |     pub fn ext_list(&self) -> Extensions<'_> {
[INFO] [stderr]     |                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/xdl/mod.rs:454:27
[INFO] [stderr]     |
[INFO] [stderr] 454 |     pub fn modifier_codes(&self) -> ModifierCodes  {
[INFO] [stderr]     |                           ^^^^^     ------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 454 |     pub fn modifier_codes(&self) -> ModifierCodes<'_>  {
[INFO] [stderr]     |                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `BadAccess` should have an upper case name
[INFO] [stderr]   --> src/xdl/err.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |         BadAccess => XlibErr::Access,
[INFO] [stderr]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_ACCESS`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `BadValue` should have an upper case name
[INFO] [stderr]   --> src/xdl/err.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |         BadValue  => XlibErr::Value,
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to upper case: `BAD_VALUE`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `BadWindow` should have an upper case name
[INFO] [stderr]   --> src/xdl/err.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 36 |         BadWindow  => XlibErr::Window,
[INFO] [stderr]    |         ^^^^^^^^^ help: convert the identifier to upper case: `BAD_WINDOW`
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/xdl/xinput2.rs:33:25
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos {
[INFO] [stderr]    |                         ^^^^^                       ----------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn query_device(&self, dev: Option<i32>) -> DeviceInfos<'_> {
[INFO] [stderr]    |                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/xdl/xinput2.rs:201:24
[INFO] [stderr]     |
[INFO] [stderr] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo> {
[INFO] [stderr]     |                        ^^^^^                         ---------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 201 |     pub(crate) fn iter(&self)-> impl Iterator<Item = DeviceInfo<'_>> {
[INFO] [stderr]     |                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XIKeyClass` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:236:17
[INFO] [stderr]     |
[INFO] [stderr] 236 |                 XIKeyClass => {
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to upper case: `XIKEY_CLASS`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XIMasterPointer` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:338:13
[INFO] [stderr]     |
[INFO] [stderr] 338 |             XIMasterPointer => Self::MasterPointer,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_POINTER`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XIMasterKeyboard` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:339:13
[INFO] [stderr]     |
[INFO] [stderr] 339 |             XIMasterKeyboard => Self::MasterKeyboard,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIMASTER_KEYBOARD`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XISlavePointer` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:340:13
[INFO] [stderr]     |
[INFO] [stderr] 340 |             XISlavePointer => Self::SlavePointer,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_POINTER`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XISlaveKeyboard` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:341:13
[INFO] [stderr]     |
[INFO] [stderr] 341 |             XISlaveKeyboard => Self::SlaveKeyboard,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XISLAVE_KEYBOARD`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XIFloatingSlave` should have an upper case name
[INFO] [stderr]    --> src/xdl/xinput2.rs:342:13
[INFO] [stderr]     |
[INFO] [stderr] 342 |             XIFloatingSlave => Self::FloatingSlave,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `XIFLOATING_SLAVE`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XI_KeyPress` should have an upper case name
[INFO] [stderr]    --> src/xdl/data.rs:178:13
[INFO] [stderr]     |
[INFO] [stderr] 178 |             XI_KeyPress => {
[INFO] [stderr]     |             ^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_PRESS`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `XI_KeyRelease` should have an upper case name
[INFO] [stderr]    --> src/xdl/data.rs:184:13
[INFO] [stderr]     |
[INFO] [stderr] 184 |             XI_KeyRelease => {
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: convert the identifier to upper case: `XI_KEY_RELEASE`
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/conf/parse.rs:53:22
[INFO] [stderr]    |
[INFO] [stderr] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stderr]    |                      ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stderr]    |                      |                |
[INFO] [stderr]    |                      |                the lifetimes get resolved as `'_`
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 53 | fn lit_or_esc(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/conf/parse.rs:62:31
[INFO] [stderr]    |
[INFO] [stderr] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stderr]    |                               ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stderr]    |                               |                |
[INFO] [stderr]    |                               |                the lifetimes get resolved as `'_`
[INFO] [stderr]    |                               this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 62 | fn content_with_escape(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stderr]    |                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/conf/parse.rs:74:18
[INFO] [stderr]    |
[INFO] [stderr] 74 | fn quoted(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stderr]    |                  ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stderr]    |                  |                |
[INFO] [stderr]    |                  |                the lifetimes get resolved as `'_`
[INFO] [stderr]    |                  this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 74 | fn quoted(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/conf/parse.rs:80:27
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stderr]    |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stderr]    |                           |                |
[INFO] [stderr]    |                           |                the lifetimes get resolved as `'_`
[INFO] [stderr]    |                           this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn quoted_or_plain(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stderr]    |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/conf/parse.rs:86:16
[INFO] [stderr]    |
[INFO] [stderr] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<str>>> {
[INFO] [stderr]    |                ^^^^             ----      -------- the lifetimes get resolved as `'_`
[INFO] [stderr]    |                |                |
[INFO] [stderr]    |                |                the lifetimes get resolved as `'_`
[INFO] [stderr]    |                this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 86 | fn varg(input: &str) -> IResult<&str, Vec<Cow<'_, str>>> {
[INFO] [stderr]    |                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/conf/parse.rs:104:27
[INFO] [stderr]     |
[INFO] [stderr] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<str>> {
[INFO] [stderr]     |                           ^^^^             ----  -------- the lifetimes get resolved as `'_`
[INFO] [stderr]     |                           |                |
[INFO] [stderr]     |                           |                the lifetimes get resolved as `'_`
[INFO] [stderr]     |                           this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 104 | fn action_text_arg(input: &str) -> IResult<&str, Cow<'_, str>> {
[INFO] [stderr]     |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/conf/mod.rs:378:36
[INFO] [stderr]     |
[INFO] [stderr] 378 |         let sv = SmoVec::from_iter((0..10)).unwrap();
[INFO] [stderr]     |                                    ^     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 378 -         let sv = SmoVec::from_iter((0..10)).unwrap();
[INFO] [stderr] 378 +         let sv = SmoVec::from_iter(0..10).unwrap();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/conf/mod.rs:380:36
[INFO] [stderr]     |
[INFO] [stderr] 380 |         let sv = SmoVec::from_iter((0..6)).unwrap();
[INFO] [stderr]     |                                    ^    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 380 -         let sv = SmoVec::from_iter((0..6)).unwrap();
[INFO] [stderr] 380 +         let sv = SmoVec::from_iter(0..6).unwrap();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/conf/mod.rs:382:36
[INFO] [stderr]     |
[INFO] [stderr] 382 |         let sv = SmoVec::from_iter((0..8)).unwrap();
[INFO] [stderr]     |                                    ^    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 382 -         let sv = SmoVec::from_iter((0..8)).unwrap();
[INFO] [stderr] 382 +         let sv = SmoVec::from_iter(0..8).unwrap();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/conf/mod.rs:384:36
[INFO] [stderr]     |
[INFO] [stderr] 384 |         let sv = SmoVec::from_iter((0..7));
[INFO] [stderr]     |                                    ^    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 384 -         let sv = SmoVec::from_iter((0..7));
[INFO] [stderr] 384 +         let sv = SmoVec::from_iter(0..7);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `kseqi-desktop` (lib) generated 35 warnings (run `cargo fix --lib -p kseqi-desktop` to apply 10 suggestions)
[INFO] [stderr] warning: `kseqi-desktop` (lib test) generated 39 warnings (35 duplicates) (run `cargo fix --lib -p kseqi-desktop --tests` to apply 4 suggestions)
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/bin/keyv.rs:22:23
[INFO] [stderr]    |
[INFO] [stderr] 22 |         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stderr]    |                       ^^                    ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 22 -         let Some(e) = ( x.recv_timeout(None)) else {
[INFO] [stderr] 22 +         let Some(e) = x.recv_timeout(None) else {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `kseqi-desktop` (bin "keyv" test) generated 1 warning (run `cargo fix --bin "keyv" --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kseqi_desktop-37d976fd6aac49ef)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test conf::parse::tests::nom11 ... ok
[INFO] [stdout] test conf::parse::tests::nom13 ... ok
[INFO] [stdout] test conf::parse::tests::nom12 ... ok
[INFO] [stdout] test conf::parse::tests::nom14 ... ok
[INFO] [stdout] test conf::parse::tests::nom10 ... ok
[INFO] [stdout] test conf::parse::tests::nom15 ... ok
[INFO] [stdout] test conf::parse::tests::nom16 ... ok
[INFO] [stdout] test conf::parse::tests::nom2 ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/kseqi_desktop-37d976fd6aac49ef` (signal: 11, SIGSEGV: invalid memory reference)
[INFO] running `Command { std: "docker" "inspect" "db3574aeb3cc5d4205648d84df62878119b9d728f8c60c08f6f041f608b653fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db3574aeb3cc5d4205648d84df62878119b9d728f8c60c08f6f041f608b653fe", kill_on_drop: false }`
[INFO] [stdout] db3574aeb3cc5d4205648d84df62878119b9d728f8c60c08f6f041f608b653fe
