[INFO] cloning repository https://github.com/gd0st/kadeu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gd0st/kadeu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgd0st%2Fkadeu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgd0st%2Fkadeu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6214e3439eb668e143a29c3397abf9fb6e827825
[INFO] checking gd0st/kadeu against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgd0st%2Fkadeu" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gd0st/kadeu
[INFO] finished tweaking git repo https://github.com/gd0st/kadeu
[INFO] tweaked toml for git repo https://github.com/gd0st/kadeu written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gd0st/kadeu on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gd0st/kadeu 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] de3b179b00575572e3e0a28007663057ecceb5b1a9351ee3ad75ff036d6d4a32
[INFO] running `Command { std: "docker" "start" "-a" "de3b179b00575572e3e0a28007663057ecceb5b1a9351ee3ad75ff036d6d4a32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "de3b179b00575572e3e0a28007663057ecceb5b1a9351ee3ad75ff036d6d4a32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de3b179b00575572e3e0a28007663057ecceb5b1a9351ee3ad75ff036d6d4a32", kill_on_drop: false }`
[INFO] [stdout] de3b179b00575572e3e0a28007663057ecceb5b1a9351ee3ad75ff036d6d4a32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85a05d9c839b56bba9f3e1d3e25dd67a610aab4d0299f994423cec0a4037be20
[INFO] running `Command { std: "docker" "start" "-a" "85a05d9c839b56bba9f3e1d3e25dd67a610aab4d0299f994423cec0a4037be20", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking either v1.12.0
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking hashbrown v0.15.0
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking zerocopy v0.7.34
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking anstyle-parse v0.2.2
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking allocator-api2 v0.2.18
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]    Compiling syn v2.0.68
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking getrandom v0.2.11
[INFO] [stderr]     Checking anstream v0.6.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]     Checking winnow v0.6.20
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking compact_str v0.8.0
[INFO] [stderr]     Checking clap_builder v4.4.8
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking lru v0.12.3
[INFO] [stderr]     Checking walkdir v2.4.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking unicode-truncate v1.0.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking tempfile v3.8.1
[INFO] [stderr]     Checking clio v0.3.4
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]    Compiling serde_derive v1.0.203
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.4.7
[INFO] [stderr]    Compiling instability v0.3.2
[INFO] [stderr]     Checking strum v0.26.2
[INFO] [stderr]     Checking ratatui v0.28.0
[INFO] [stderr]     Checking clap v4.4.8
[INFO] [stderr]     Checking serde_spanned v0.6.8
[INFO] [stderr]     Checking toml_datetime v0.6.8
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking toml_edit v0.22.22
[INFO] [stderr]     Checking toml v0.8.19
[INFO] [stderr]     Checking kadeu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/app.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::VecDeque, fmt::Display};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsStr`
[INFO] [stdout]  --> src/cli.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ffi::OsStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/cli.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{default, env, fs::OpenOptions, io::Read, path::PathBuf};
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arg`
[INFO] [stdout]  --> src/cli.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use clap::{self, Arg, Parser};
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::KadeuApp`
[INFO] [stdout]  --> src/cli.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::ui::KadeuApp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/app.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::VecDeque, fmt::Display};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsStr`
[INFO] [stdout]  --> src/cli.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ffi::OsStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/io.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/io.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{de::DeserializeOwned, Deserialize, Serialize};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `OsStr`, and `Path`
[INFO] [stdout]  --> src/io.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ffi::{self, OsStr},
[INFO] [stdout]   |                 ^^^^^
[INFO] [stdout] 6 |     fs::{self, File, OpenOptions},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 7 |     path::{Path, PathBuf},
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `app::Deck` and `cli::Config`
[INFO] [stdout]   --> src/io.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::{app::Deck, cli::Config};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Card`
[INFO] [stdout]  --> src/ui/deck_browser.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app::{Card, Deck};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/ui/inputs.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, default};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyEventKind` and `KeyEvent`
[INFO] [stdout]  --> src/ui/inputs.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind};
[INFO] [stdout]   |                                              ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Debugger`
[INFO] [stdout]  --> src/ui/inputs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::Debugger;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListItem`
[INFO] [stdout]  --> src/ui/style.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     widgets::{Block, List, ListItem},
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/ui/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deck_browser::DeckBrowser`
[INFO] [stdout]  --> src/ui/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use deck_browser::DeckBrowser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Block`
[INFO] [stdout]   --> src/ui/mod.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 |     widgets::{Block, Paragraph, Widget, WidgetRef},
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/cli.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{default, env, fs::OpenOptions, io::Read, path::PathBuf};
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arg`
[INFO] [stdout]  --> src/cli.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use clap::{self, Arg, Parser};
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::KadeuApp`
[INFO] [stdout]  --> src/cli.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::ui::KadeuApp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/io.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/io.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{de::DeserializeOwned, Deserialize, Serialize};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `OsStr`, and `Path`
[INFO] [stdout]  --> src/io.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ffi::{self, OsStr},
[INFO] [stdout]   |                 ^^^^^
[INFO] [stdout] 6 |     fs::{self, File, OpenOptions},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 7 |     path::{Path, PathBuf},
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `app::Deck` and `cli::Config`
[INFO] [stdout]   --> src/io.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::{app::Deck, cli::Config};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Card`
[INFO] [stdout]  --> src/ui/deck_browser.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app::{Card, Deck};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/ui/inputs.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, default};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyEventKind` and `KeyEvent`
[INFO] [stdout]  --> src/ui/inputs.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind};
[INFO] [stdout]   |                                              ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `strat` should have an upper camel case name
[INFO] [stdout]   --> src/lib.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |          ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Strat`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Debugger`
[INFO] [stdout]  --> src/ui/inputs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::Debugger;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListItem`
[INFO] [stdout]  --> src/ui/style.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     widgets::{Block, List, ListItem},
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/ui/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deck_browser::DeckBrowser`
[INFO] [stdout]  --> src/ui/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use deck_browser::DeckBrowser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Block`
[INFO] [stdout]   --> src/ui/mod.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 |     widgets::{Block, Paragraph, Widget, WidgetRef},
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `strat` should have an upper camel case name
[INFO] [stdout]   --> src/lib.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |          ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Strat`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/io.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     todo!("List the files here");
[INFO] [stdout]     |     ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 103 |     vec![]
[INFO] [stdout]     |     ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/io.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     todo!("List the files here");
[INFO] [stdout]     |     ---------------------------- any code following this expression is unreachable
[INFO] [stdout] 103 |     vec![]
[INFO] [stdout]     |     ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/ui/mod.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     widgets::{Block, Paragraph, Widget, WidgetRef},
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/ui/mod.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     widgets::{Block, Paragraph, Widget, WidgetRef},
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/engine.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut rng = thread_rng();
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/game/engine.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         fn next(items: &mut VecDeque<T>) -> Option<T> {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/game/engine.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut rng = thread_rng();
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/game/engine.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |         fn sequence(&self, items: &mut VecDeque<T>) -> impl Iterator<Item = T> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/io.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn list_files<T>(path: &PathBuf) -> Vec<T> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Serialization` is never used
[INFO] [stdout]   --> src/app.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub enum Serialization {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `write`, `write_json`, and `write_yaml` are never used
[INFO] [stdout]   --> src/app.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     impl Serialization {
[INFO] [stdout]    |     ------------------ associated items in this implementation
[INFO] [stdout] 17 |         pub fn write<T: Serialize>(
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |         fn write_json<T: Serialize>(deck: &Deck<T>, writer: impl Write) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |         fn write_yaml<T: Serialize>(deck: &Deck<T>, writer: impl Write) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]   --> src/cli.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Error<'a> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Progress` is never constructed
[INFO] [stdout]   --> src/game/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Progress<T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `item` is never read
[INFO] [stdout]   --> src/game/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Progress<T> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 43 |     item: T,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `score` is never used
[INFO] [stdout]   --> src/game/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<T> Progress<T> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn score(&self) -> Option<&Score> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Strat` is never used
[INFO] [stdout]   --> src/game/engine.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub trait Strat<T> {
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]   --> src/game/engine.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub struct Random {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Strategy` is never used
[INFO] [stdout]   --> src/game/engine.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub enum Strategy {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random` is never used
[INFO] [stdout]   --> src/game/engine.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn random<T>(items: &mut VecDeque<T>) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CardBack` is never used
[INFO] [stdout]   --> src/game/flashcard.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum CardBack {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filename` is never used
[INFO] [stdout]   --> src/io.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ImportEntry {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 19 |     fn filename<T>(&self) -> Option<&ffi::OsStr> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `imports` is never read
[INFO] [stdout]   --> src/io.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Directories {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 38 |     imports: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `front` and `back` are never read
[INFO] [stdout]    --> src/ui/mod.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct CardSide {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 146 |     deck_title: Option<String>,
[INFO] [stdout] 147 |     front: String,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 148 |     back: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CardSide` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]   --> src/ui/deck_browser.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DeckBrowser {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     index: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Foobar` is never constructed
[INFO] [stdout]   --> src/ui/inputs.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     struct Foobar;
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventListener` is never used
[INFO] [stdout]   --> src/ui/inputs.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |     trait EventListener {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `strat` is never used
[INFO] [stdout]   --> src/lib.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]   --> src/lib.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct Linear;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]   --> src/lib.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub struct Random;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/mod.rs:135:13
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn text(&self) -> text::Text;
[INFO] [stdout]     |             ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn text(&self) -> text::Text<'_>;
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/style.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn block(&self) -> Block {
[INFO] [stdout]    |                  ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn block(&self) -> Block<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/style.rs:42:61
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn list<U: fmt::Display, T: IntoIterator<Item = U>>(&self, items: T) -> List {
[INFO] [stdout]    |                                                             ^^^^^               ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                             |
[INFO] [stdout]    |                                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn list<U: fmt::Display, T: IntoIterator<Item = U>>(&self, items: T) -> List<'_> {
[INFO] [stdout]    |                                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]   --> src/lib.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |                   ^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout]    = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this bound
[INFO] [stdout]    |
[INFO] [stdout] 62 -     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout] 62 +     type strat<T> = fn(&[T]) -> T;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kadeu` (lib) due to 1 previous error; 48 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/engine.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut rng = thread_rng();
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/game/engine.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         fn next(items: &mut VecDeque<T>) -> Option<T> {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/game/engine.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut rng = thread_rng();
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/game/engine.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |         fn sequence(&self, items: &mut VecDeque<T>) -> impl Iterator<Item = T> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/io.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn list_files<T>(path: &PathBuf) -> Vec<T> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]   --> src/ui/inputs.rs:80:47
[INFO] [stdout]    |
[INFO] [stdout] 80 |         foobar.add_event_listener(Input::Up, |this, event| assert!(true));
[INFO] [stdout]    |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/ui/inputs.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 |         foobar.add_event_listener(Input::Up, |this, event| assert!(true));
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Serialization` is never used
[INFO] [stdout]   --> src/app.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub enum Serialization {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `write`, `write_json`, and `write_yaml` are never used
[INFO] [stdout]   --> src/app.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     impl Serialization {
[INFO] [stdout]    |     ------------------ associated items in this implementation
[INFO] [stdout] 17 |         pub fn write<T: Serialize>(
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |         fn write_json<T: Serialize>(deck: &Deck<T>, writer: impl Write) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |         fn write_yaml<T: Serialize>(deck: &Deck<T>, writer: impl Write) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]   --> src/cli.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Error<'a> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Progress` is never constructed
[INFO] [stdout]   --> src/game/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Progress<T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `item` is never read
[INFO] [stdout]   --> src/game/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Progress<T> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 43 |     item: T,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `score` is never used
[INFO] [stdout]   --> src/game/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<T> Progress<T> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn score(&self) -> Option<&Score> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Strat` is never used
[INFO] [stdout]   --> src/game/engine.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub trait Strat<T> {
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]   --> src/game/engine.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub struct Random {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Strategy` is never used
[INFO] [stdout]   --> src/game/engine.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub enum Strategy {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random` is never used
[INFO] [stdout]   --> src/game/engine.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn random<T>(items: &mut VecDeque<T>) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CardBack` is never used
[INFO] [stdout]   --> src/game/flashcard.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum CardBack {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filename` is never used
[INFO] [stdout]   --> src/io.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ImportEntry {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 19 |     fn filename<T>(&self) -> Option<&ffi::OsStr> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `imports` is never read
[INFO] [stdout]   --> src/io.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Directories {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 38 |     imports: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `front` and `back` are never read
[INFO] [stdout]    --> src/ui/mod.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct CardSide {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 146 |     deck_title: Option<String>,
[INFO] [stdout] 147 |     front: String,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 148 |     back: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CardSide` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]   --> src/ui/deck_browser.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DeckBrowser {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     index: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `strat` is never used
[INFO] [stdout]   --> src/lib.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]   --> src/lib.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub struct Linear;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]   --> src/lib.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub struct Random;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/mod.rs:135:13
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn text(&self) -> text::Text;
[INFO] [stdout]     |             ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn text(&self) -> text::Text<'_>;
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/style.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn block(&self) -> Block {
[INFO] [stdout]    |                  ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn block(&self) -> Block<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/style.rs:42:61
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn list<U: fmt::Display, T: IntoIterator<Item = U>>(&self, items: T) -> List {
[INFO] [stdout]    |                                                             ^^^^^               ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                             |
[INFO] [stdout]    |                                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn list<U: fmt::Display, T: IntoIterator<Item = U>>(&self, items: T) -> List<'_> {
[INFO] [stdout]    |                                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]   --> src/lib.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout]    |                   ^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout]    = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this bound
[INFO] [stdout]    |
[INFO] [stdout] 62 -     type strat<T: Kadeu> = fn(&[T]) -> T;
[INFO] [stdout] 62 +     type strat<T> = fn(&[T]) -> T;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kadeu` (lib test) due to 1 previous error; 48 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "85a05d9c839b56bba9f3e1d3e25dd67a610aab4d0299f994423cec0a4037be20", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85a05d9c839b56bba9f3e1d3e25dd67a610aab4d0299f994423cec0a4037be20", kill_on_drop: false }`
[INFO] [stdout] 85a05d9c839b56bba9f3e1d3e25dd67a610aab4d0299f994423cec0a4037be20
