[INFO] cloning repository https://github.com/ammongit/markov-music
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ammongit/markov-music" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammongit%2Fmarkov-music", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammongit%2Fmarkov-music'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 68dea06d36893e7050d554ddc802504ddc3dddff
[INFO] testing ammongit/markov-music against 1.75.0 for beta-1.76-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammongit%2Fmarkov-music" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ammongit/markov-music on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ammongit/markov-music
[INFO] finished tweaking git repo https://github.com/ammongit/markov-music
[INFO] tweaked toml for git repo https://github.com/ammongit/markov-music written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/ammongit/markov-music 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" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded diesel_derives v1.1.0
[INFO] [stderr]   Downloaded vcpkg v0.2.2
[INFO] [stderr]   Downloaded bufstream v0.1.3
[INFO] [stderr]   Downloaded term_size v0.3.0
[INFO] [stderr]   Downloaded redox_syscall v0.1.37
[INFO] [stderr]   Downloaded time v0.1.39
[INFO] [stderr]   Downloaded atty v0.2.2
[INFO] [stderr]   Downloaded vec_map v0.8.0
[INFO] [stderr]   Downloaded thread-id v3.2.0
[INFO] [stderr]   Downloaded lazy_static v1.0.0
[INFO] [stderr]   Downloaded textwrap v0.7.0
[INFO] [stderr]   Downloaded byteorder v1.1.0
[INFO] [stderr]   Downloaded serde v1.0.11
[INFO] [stderr]   Downloaded toml v0.4.4
[INFO] [stderr]   Downloaded libc v0.2.40
[INFO] [stderr]   Downloaded clap v2.26.0
[INFO] [stderr]   Downloaded diesel v1.1.1
[INFO] [stderr]   Downloaded serde_derive v1.0.27
[INFO] [stderr]   Downloaded serde_derive_internals v0.19.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.9.1
[INFO] [stderr]   Downloaded simple-logging v2.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e2f5c4430598e33e0b15829269e721b821b3d39efeaa30bda73eb713869fed96
[INFO] running `Command { std: "docker" "start" "-a" "e2f5c4430598e33e0b15829269e721b821b3d39efeaa30bda73eb713869fed96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2f5c4430598e33e0b15829269e721b821b3d39efeaa30bda73eb713869fed96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2f5c4430598e33e0b15829269e721b821b3d39efeaa30bda73eb713869fed96", kill_on_drop: false }`
[INFO] [stdout] e2f5c4430598e33e0b15829269e721b821b3d39efeaa30bda73eb713869fed96
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c78b1a0c9e8aacd30e8f5118360ae77cf87e1141068561212467a8fb332a3986
[INFO] running `Command { std: "docker" "start" "-a" "c78b1a0c9e8aacd30e8f5118360ae77cf87e1141068561212467a8fb332a3986", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.40
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling pkg-config v0.3.9
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling lazy_static v1.0.0
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling byteorder v1.1.0
[INFO] [stderr]    Compiling bufstream v0.1.3
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling unicode-segmentation v1.2.0
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]    Compiling log v0.4.1
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]    Compiling libsqlite3-sys v0.9.1
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling thread-id v3.2.0
[INFO] [stderr]    Compiling atty v0.2.2
[INFO] [stderr]    Compiling time v0.1.39
[INFO] [stderr]    Compiling rand v0.4.2
[INFO] [stderr]    Compiling simple-logging v2.0.1
[INFO] [stderr]    Compiling textwrap v0.7.0
[INFO] [stderr]    Compiling clap v2.26.0
[INFO] [stderr]    Compiling mpd v0.0.12
[INFO] [stderr]    Compiling serde_derive_internals v0.19.0
[INFO] [stderr]    Compiling diesel_derives v1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.27
[INFO] [stderr]    Compiling diesel v1.1.1
[INFO] [stderr]    Compiling serde v1.0.11
[INFO] [stderr]    Compiling toml v0.4.4
[INFO] [stderr]    Compiling markov-music v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / lazy_static! {
[INFO] [stdout] 30 | |     static ref DEFAULT_CONFIG_PATH: PathBuf = {
[INFO] [stdout] 31 | |         let mut dir = match env::var_os("XDG_CONFIG_HOME") {
[INFO] [stdout] 32 | |             Some(dir) => PathBuf::from(dir),
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     };
[INFO] [stdout] 43 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:73:35
[INFO] [stdout]    |
[INFO] [stdout] 73 |         write!(f, "{}", StdError::description(self))
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]   --> src/utils.rs:25:45
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stdout]    |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/utils.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | / lazy_static! {
[INFO] [stdout] 25 | |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stdout] 26 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose.rs:29:74
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose.rs:34:77
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:57:32
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/markov.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn start(&self, rng: &mut dyn Rng) -> Option<&T> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/markov.rs:68:50
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stdout]    |                                                  ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn next<U>(&self, current: &U, rng: &mut dyn Rng) -> Option<&T>
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Io(ref e) => e.description(),
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:48:34
[INFO] [stdout]    |
[INFO] [stdout] 48 |             IntParse(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |             Utf8(ref e) => e.description(),
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |             TomlDe(ref e) => e.description(),
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |             MpdParse(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |             MpdProto(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:53:35
[INFO] [stdout]    |
[INFO] [stdout] 53 |             MpdServer(ref e) => e.description(),
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_key` is never used
[INFO] [stdout]   --> src/choose.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roulette_wheel` is never used
[INFO] [stdout]   --> src/choose.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `modify_weight`, `clear`, `start`, `next`, and `possible_next` are never used
[INFO] [stdout]   --> src/markov.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | / impl<T> Chain<T>
[INFO] [stdout] 38 | | where
[INFO] [stdout] 39 | |     T: Eq + Hash,
[INFO] [stdout]    | |_________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |       pub fn modify_weight(&mut self, prev: T, next: T, diff: f32) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |       pub fn clear<U>(&mut self, item: &U)
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |       pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |       pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |       pub fn possible_next<U>(&self, current: &U) -> Option<&HashMap<T, f32>>
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_cmd` is never used
[INFO] [stdout]   --> src/socket.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn split_cmd(command: &mut str) -> (&mut str, &mut str) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> src/socket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct SocketServer {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 37 |     socket: UnixDatagram,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SocketServer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind`, `wait`, `respond`, and `set_recommend` are never used
[INFO] [stdout]   --> src/socket.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SocketServer {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn bind(config: &DaemonConfig) -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn wait(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn respond(&self, command: &mut str) -> Result<&'static str> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn set_recommend(&self, arg: &mut str) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_mut_str` is never used
[INFO] [stdout]   --> src/utils.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn empty_mut_str() -> &'static mut str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid` is never used
[INFO] [stdout]   --> src/utils.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn sigmoid(n: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 24 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 14.23s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "c78b1a0c9e8aacd30e8f5118360ae77cf87e1141068561212467a8fb332a3986", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c78b1a0c9e8aacd30e8f5118360ae77cf87e1141068561212467a8fb332a3986", kill_on_drop: false }`
[INFO] [stdout] c78b1a0c9e8aacd30e8f5118360ae77cf87e1141068561212467a8fb332a3986
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cc58237477214642435280095ece32bf404d560cebfb3a845a9724ed385f55cf
[INFO] running `Command { std: "docker" "start" "-a" "cc58237477214642435280095ece32bf404d560cebfb3a845a9724ed385f55cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling markov-music v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / lazy_static! {
[INFO] [stdout] 30 | |     static ref DEFAULT_CONFIG_PATH: PathBuf = {
[INFO] [stdout] 31 | |         let mut dir = match env::var_os("XDG_CONFIG_HOME") {
[INFO] [stdout] 32 | |             Some(dir) => PathBuf::from(dir),
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     };
[INFO] [stdout] 43 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:73:35
[INFO] [stdout]    |
[INFO] [stdout] 73 |         write!(f, "{}", StdError::description(self))
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]   --> src/utils.rs:25:45
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stdout]    |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/utils.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | / lazy_static! {
[INFO] [stdout] 25 | |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stdout] 26 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose.rs:29:74
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/choose.rs:34:77
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:57:32
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/markov.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn start(&self, rng: &mut dyn Rng) -> Option<&T> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/markov.rs:68:50
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stdout]    |                                                  ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn next<U>(&self, current: &U, rng: &mut dyn Rng) -> Option<&T>
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Io(ref e) => e.description(),
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:48:34
[INFO] [stdout]    |
[INFO] [stdout] 48 |             IntParse(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |             Utf8(ref e) => e.description(),
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |             TomlDe(ref e) => e.description(),
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |             MpdParse(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |             MpdProto(ref e) => e.description(),
[INFO] [stdout]    |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:53:35
[INFO] [stdout]    |
[INFO] [stdout] 53 |             MpdServer(ref e) => e.description(),
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_key` is never used
[INFO] [stdout]   --> src/choose.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roulette_wheel` is never used
[INFO] [stdout]   --> src/choose.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `modify_weight`, `clear`, `start`, `next`, and `possible_next` are never used
[INFO] [stdout]   --> src/markov.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | / impl<T> Chain<T>
[INFO] [stdout] 38 | | where
[INFO] [stdout] 39 | |     T: Eq + Hash,
[INFO] [stdout]    | |_________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |       pub fn modify_weight(&mut self, prev: T, next: T, diff: f32) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |       pub fn clear<U>(&mut self, item: &U)
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |       pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |       pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |       pub fn possible_next<U>(&self, current: &U) -> Option<&HashMap<T, f32>>
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_cmd` is never used
[INFO] [stdout]   --> src/socket.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn split_cmd(command: &mut str) -> (&mut str, &mut str) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> src/socket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct SocketServer {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 37 |     socket: UnixDatagram,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SocketServer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind`, `wait`, `respond`, and `set_recommend` are never used
[INFO] [stdout]   --> src/socket.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SocketServer {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn bind(config: &DaemonConfig) -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn wait(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn respond(&self, command: &mut str) -> Result<&'static str> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn set_recommend(&self, arg: &mut str) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_mut_str` is never used
[INFO] [stdout]   --> src/utils.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn empty_mut_str() -> &'static mut str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid` is never used
[INFO] [stdout]   --> src/utils.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn sigmoid(n: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 24 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cc58237477214642435280095ece32bf404d560cebfb3a845a9724ed385f55cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc58237477214642435280095ece32bf404d560cebfb3a845a9724ed385f55cf", kill_on_drop: false }`
[INFO] [stdout] cc58237477214642435280095ece32bf404d560cebfb3a845a9724ed385f55cf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 72e96ddbad7b38107c9c5446096078658e931e2761d8186d0d9ef6dabf01708d
[INFO] running `Command { std: "docker" "start" "-a" "72e96ddbad7b38107c9c5446096078658e931e2761d8186d0d9ef6dabf01708d", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config.rs:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | / lazy_static! {
[INFO] [stderr] 30 | |     static ref DEFAULT_CONFIG_PATH: PathBuf = {
[INFO] [stderr] 31 | |         let mut dir = match env::var_os("XDG_CONFIG_HOME") {
[INFO] [stderr] 32 | |             Some(dir) => PathBuf::from(dir),
[INFO] [stderr] ...  |
[INFO] [stderr] 42 | |     };
[INFO] [stderr] 43 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:73:35
[INFO] [stderr]    |
[INFO] [stderr] 73 |         write!(f, "{}", StdError::description(self))
[INFO] [stderr]    |                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stderr]   --> src/utils.rs:25:45
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stderr]    |                                             ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/utils.rs:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | / lazy_static! {
[INFO] [stderr] 25 | |     pub static ref HOME_DIR: PathBuf = env::home_dir().expect("Unable to get home directory");
[INFO] [stderr] 26 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/choose.rs:29:74
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stderr]    |                                                                          ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stderr]    |                                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/choose.rs:34:77
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stderr]    |                                                                             ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut dyn Rng) -> Option<&'a K> {
[INFO] [stderr]    |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/error.rs:57:32
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stderr]    |                                ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/markov.rs:64:35
[INFO] [stderr]    |
[INFO] [stderr] 64 |     pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stderr]    |                                   ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 64 |     pub fn start(&self, rng: &mut dyn Rng) -> Option<&T> {
[INFO] [stderr]    |                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/markov.rs:68:50
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stderr]    |                                                  ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn next<U>(&self, current: &U, rng: &mut dyn Rng) -> Option<&T>
[INFO] [stderr]    |                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:47:28
[INFO] [stderr]    |
[INFO] [stderr] 47 |             Io(ref e) => e.description(),
[INFO] [stderr]    |                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:48:34
[INFO] [stderr]    |
[INFO] [stderr] 48 |             IntParse(ref e) => e.description(),
[INFO] [stderr]    |                                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:49:30
[INFO] [stderr]    |
[INFO] [stderr] 49 |             Utf8(ref e) => e.description(),
[INFO] [stderr]    |                              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:50:32
[INFO] [stderr]    |
[INFO] [stderr] 50 |             TomlDe(ref e) => e.description(),
[INFO] [stderr]    |                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:51:34
[INFO] [stderr]    |
[INFO] [stderr] 51 |             MpdParse(ref e) => e.description(),
[INFO] [stderr]    |                                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:52:34
[INFO] [stderr]    |
[INFO] [stderr] 52 |             MpdProto(ref e) => e.description(),
[INFO] [stderr]    |                                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:53:35
[INFO] [stderr]    |
[INFO] [stderr] 53 |             MpdServer(ref e) => e.description(),
[INFO] [stderr]    |                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `random_key` is never used
[INFO] [stderr]   --> src/choose.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn random_key<'a, K: Eq + Hash, V>(map: &'a HashMap<K, V>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `roulette_wheel` is never used
[INFO] [stderr]   --> src/choose.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn roulette_wheel<'a, K: Eq + Hash>(map: &'a HashMap<K, f32>, rng: &mut Rng) -> Option<&'a K> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `modify_weight`, `clear`, `start`, `next`, and `possible_next` are never used
[INFO] [stderr]   --> src/markov.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | / impl<T> Chain<T>
[INFO] [stderr] 38 | | where
[INFO] [stderr] 39 | |     T: Eq + Hash,
[INFO] [stderr]    | |_________________- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 47 |       pub fn modify_weight(&mut self, prev: T, next: T, diff: f32) {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |       pub fn clear<U>(&mut self, item: &U)
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |       pub fn start(&self, rng: &mut Rng) -> Option<&T> {
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |       pub fn next<U>(&self, current: &U, rng: &mut Rng) -> Option<&T>
[INFO] [stderr]    |              ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |       pub fn possible_next<U>(&self, current: &U) -> Option<&HashMap<T, f32>>
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `split_cmd` is never used
[INFO] [stderr]   --> src/socket.rs:28:4
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn split_cmd(command: &mut str) -> (&mut str, &mut str) {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `socket` is never read
[INFO] [stderr]   --> src/socket.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct SocketServer {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 37 |     socket: UnixDatagram,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SocketServer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `bind`, `wait`, `respond`, and `set_recommend` are never used
[INFO] [stderr]   --> src/socket.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 40 | impl SocketServer {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 41 |     pub fn bind(config: &DaemonConfig) -> Result<Self> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn wait(&self) -> Result<()> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     fn respond(&self, command: &mut str) -> Result<&'static str> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     fn set_recommend(&self, arg: &mut str) -> &'static str {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `empty_mut_str` is never used
[INFO] [stderr]   --> src/utils.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn empty_mut_str() -> &'static mut str {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sigmoid` is never used
[INFO] [stderr]   --> src/utils.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn sigmoid(n: f32) -> f32 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `markov-music` (bin "markov-music" test) generated 24 warnings (run `cargo fix --bin "markov-music" --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/markov_music-1421331997a0e434)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "72e96ddbad7b38107c9c5446096078658e931e2761d8186d0d9ef6dabf01708d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72e96ddbad7b38107c9c5446096078658e931e2761d8186d0d9ef6dabf01708d", kill_on_drop: false }`
[INFO] [stdout] 72e96ddbad7b38107c9c5446096078658e931e2761d8186d0d9ef6dabf01708d
