[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-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammongit%2Fmarkov-music" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-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-0-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]  Downloading crates ...
[INFO] [stderr]   Downloaded thread-id v3.2.0
[INFO] [stderr]   Downloaded textwrap v0.7.0
[INFO] [stderr]   Downloaded diesel_derives v1.1.0
[INFO] [stderr]   Downloaded mpd v0.0.12
[INFO] [stderr]   Downloaded clap v2.26.0
[INFO] [stderr]   Downloaded serde v1.0.11
[INFO] [stderr]   Downloaded toml v0.4.4
[INFO] [stderr]   Downloaded libsqlite3-sys v0.9.1
[INFO] [stderr]   Downloaded diesel v1.1.1
[INFO] [stderr]   Downloaded simple-logging v2.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 25c1ecb98aad51c48811d29f448429fe2b294af7021d90bfaf134c73d267f7a5
[INFO] running `Command { std: "docker" "start" "-a" "25c1ecb98aad51c48811d29f448429fe2b294af7021d90bfaf134c73d267f7a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "25c1ecb98aad51c48811d29f448429fe2b294af7021d90bfaf134c73d267f7a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25c1ecb98aad51c48811d29f448429fe2b294af7021d90bfaf134c73d267f7a5", kill_on_drop: false }`
[INFO] [stdout] 25c1ecb98aad51c48811d29f448429fe2b294af7021d90bfaf134c73d267f7a5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 4baf6382acc886f9b4befe72284e9e9d2d51ffa603473064404ce5b9d329187d
[INFO] running `Command { std: "docker" "start" "-a" "4baf6382acc886f9b4befe72284e9e9d2d51ffa603473064404ce5b9d329187d", 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 unicode-width v0.1.4
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling bufstream v0.1.3
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling unicode-segmentation v1.2.0
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling byteorder v1.1.0
[INFO] [stderr]    Compiling lazy_static v1.0.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling log v0.4.1
[INFO] [stderr]    Compiling synom v0.11.3
[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 serde_derive_internals v0.19.0
[INFO] [stderr]    Compiling diesel_derives v1.1.0
[INFO] [stderr]    Compiling mpd v0.0.12
[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 5.67s
[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" "4baf6382acc886f9b4befe72284e9e9d2d51ffa603473064404ce5b9d329187d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4baf6382acc886f9b4befe72284e9e9d2d51ffa603473064404ce5b9d329187d", kill_on_drop: false }`
[INFO] [stdout] 4baf6382acc886f9b4befe72284e9e9d2d51ffa603473064404ce5b9d329187d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 6cd1c2c483c7e5791d0477f02bd87762ccf0bb5416431f1e742645098abcf148
[INFO] running `Command { std: "docker" "start" "-a" "6cd1c2c483c7e5791d0477f02bd87762ccf0bb5416431f1e742645098abcf148", 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.35s
[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" "6cd1c2c483c7e5791d0477f02bd87762ccf0bb5416431f1e742645098abcf148", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6cd1c2c483c7e5791d0477f02bd87762ccf0bb5416431f1e742645098abcf148", kill_on_drop: false }`
[INFO] [stdout] 6cd1c2c483c7e5791d0477f02bd87762ccf0bb5416431f1e742645098abcf148
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] d915e3e78ecc48182677d21abf37dcb81314da19cd1c1aacfb23c41c6657d2f5
[INFO] running `Command { std: "docker" "start" "-a" "d915e3e78ecc48182677d21abf37dcb81314da19cd1c1aacfb23c41c6657d2f5", 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.02s
[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" "d915e3e78ecc48182677d21abf37dcb81314da19cd1c1aacfb23c41c6657d2f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d915e3e78ecc48182677d21abf37dcb81314da19cd1c1aacfb23c41c6657d2f5", kill_on_drop: false }`
[INFO] [stdout] d915e3e78ecc48182677d21abf37dcb81314da19cd1c1aacfb23c41c6657d2f5
[INFO] testing ammongit/markov-music against beta-2023-12-22 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammongit%2Fmarkov-music" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ammongit/markov-music on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "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-0-tc2/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" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b0c385260525e9f22898a40392a16df037251ab471af69e4569c71b2ef5b2ddc
[INFO] running `Command { std: "docker" "start" "-a" "b0c385260525e9f22898a40392a16df037251ab471af69e4569c71b2ef5b2ddc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0c385260525e9f22898a40392a16df037251ab471af69e4569c71b2ef5b2ddc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0c385260525e9f22898a40392a16df037251ab471af69e4569c71b2ef5b2ddc", kill_on_drop: false }`
[INFO] [stdout] b0c385260525e9f22898a40392a16df037251ab471af69e4569c71b2ef5b2ddc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] aca33da5235d01c6705be05ceab5d54ae02df4d325fcba2d9e223d34dd5f9ad5
[INFO] running `Command { std: "docker" "start" "-a" "aca33da5235d01c6705be05ceab5d54ae02df4d325fcba2d9e223d34dd5f9ad5", 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 unicode-width v0.1.4
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling byteorder v1.1.0
[INFO] [stderr]    Compiling bufstream v0.1.3
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling lazy_static v1.0.0
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling unicode-segmentation v1.2.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling log v0.4.1
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]    Compiling libsqlite3-sys v0.9.1
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/rustc-serialize-0.3.24/src/serialize.rs:1155:5
[INFO] [stdout]      |
[INFO] [stdout] 1155 |     fn decode<D: Decoder>(d: &mut D) -> Result<Cow<'static, T>, D::Error> {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]      |     ...so that the type `T` will meet its required lifetime bounds...
[INFO] [stdout]      |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]     --> /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/borrow.rs:180:30
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]      |
[INFO] [stdout] 1151 | impl<'a, T: ?Sized + 'static> Decodable for Cow<'a, T>
[INFO] [stdout]      |                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling time v0.1.39
[INFO] [stderr]    Compiling atty v0.2.2
[INFO] [stderr]    Compiling thread-id v3.2.0
[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] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustc-serialize` (lib) due to 2 previous errors
[INFO] [stdout] For more information about this error, try `rustc --explain E0310`.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "aca33da5235d01c6705be05ceab5d54ae02df4d325fcba2d9e223d34dd5f9ad5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aca33da5235d01c6705be05ceab5d54ae02df4d325fcba2d9e223d34dd5f9ad5", kill_on_drop: false }`
[INFO] [stdout] aca33da5235d01c6705be05ceab5d54ae02df4d325fcba2d9e223d34dd5f9ad5
