[INFO] fetching crate crack 0.1.0...
[INFO] checking crack-0.1.0 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate crack 0.1.0 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate crack 0.1.0 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate crack 0.1.0
[INFO] finished tweaking crates.io crate crack 0.1.0
[INFO] tweaked toml for crates.io crate crack 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 120 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding aho-corasick v0.5.3 (latest: v1.1.3)
[INFO] [stderr]       Adding aho-corasick v0.6.10 (latest: v1.1.3)
[INFO] [stderr]       Adding bincode v0.6.1 (latest: v1.3.3)
[INFO] [stderr]       Adding bincode v0.9.2 (latest: v1.3.3)
[INFO] [stderr]       Adding bitflags v1.3.2 (latest: v2.5.0)
[INFO] [stderr]       Adding bytes v0.4.12 (latest: v1.6.0)
[INFO] [stderr]       Adding cfg-if v0.1.10 (latest: v1.0.0)
[INFO] [stderr]       Adding cloudabi v0.0.3 (latest: v0.1.0)
[INFO] [stderr]       Adding crdts v1.3.0 (latest: v7.3.2)
[INFO] [stderr]       Adding crossbeam v0.2.12 (latest: v0.8.4)
[INFO] [stderr]       Adding crossbeam-deque v0.7.4 (latest: v0.8.5)
[INFO] [stderr]       Adding crossbeam-epoch v0.8.2 (latest: v0.9.18)
[INFO] [stderr]       Adding crossbeam-queue v0.2.3 (latest: v0.3.11)
[INFO] [stderr]       Adding crossbeam-utils v0.7.2 (latest: v0.8.19)
[INFO] [stderr]       Adding dtoa v0.4.8 (latest: v1.0.9)
[INFO] [stderr]       Adding env_logger v0.3.5 (latest: v0.11.3)
[INFO] [stderr]       Adding env_logger v0.4.3 (latest: v0.11.3)
[INFO] [stderr]       Adding error-chain v0.9.0 (latest: v0.12.4)
[INFO] [stderr]       Adding futures v0.1.31 (latest: v0.3.30)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding itoa v0.3.4 (latest: v1.0.11)
[INFO] [stderr]       Adding lock_api v0.3.4 (latest: v0.4.12)
[INFO] [stderr]       Adding log v0.3.9 (latest: v0.4.21)
[INFO] [stderr]       Adding memchr v0.1.11 (latest: v2.7.2)
[INFO] [stderr]       Adding memoffset v0.5.6 (latest: v0.9.1)
[INFO] [stderr]       Adding mio v0.6.23 (latest: v0.8.11)
[INFO] [stderr]       Adding miow v0.2.2 (latest: v0.6.0)
[INFO] [stderr]       Adding num-traits v0.1.43 (latest: v0.2.18)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding parking_lot v0.9.0 (latest: v0.12.2)
[INFO] [stderr]       Adding parking_lot_core v0.6.3 (latest: v0.9.10)
[INFO] [stderr]       Adding quickcheck v0.2.27 (latest: v1.0.3)
[INFO] [stderr]       Adding quote v0.3.15 (latest: v1.0.36)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] [stderr]       Adding redox_syscall v0.1.57 (latest: v0.5.1)
[INFO] [stderr]       Adding regex v0.1.80 (latest: v1.10.4)
[INFO] [stderr]       Adding regex v0.2.11 (latest: v1.10.4)
[INFO] [stderr]       Adding regex-syntax v0.3.9 (latest: v0.8.3)
[INFO] [stderr]       Adding regex-syntax v0.5.6 (latest: v0.8.3)
[INFO] [stderr]       Adding rustc_version v0.2.3 (latest: v0.4.0)
[INFO] [stderr]       Adding scoped-tls v0.1.2 (latest: v1.0.1)
[INFO] [stderr]       Adding semver v0.9.0 (latest: v1.0.22)
[INFO] [stderr]       Adding semver-parser v0.7.0 (latest: v0.10.2)
[INFO] [stderr]       Adding serde v0.8.23 (latest: v1.0.200)
[INFO] [stderr]       Adding serde v0.9.15 (latest: v1.0.200)
[INFO] [stderr]       Adding serde_derive v0.9.15 (latest: v1.0.200)
[INFO] [stderr]       Adding serde_json v0.9.10 (latest: v1.0.116)
[INFO] [stderr]       Adding smallvec v0.6.14 (latest: v1.13.2)
[INFO] [stderr]       Adding syn v0.11.11 (latest: v2.0.60)
[INFO] [stderr]       Adding thread-id v2.0.0 (latest: v4.2.1)
[INFO] [stderr]       Adding thread_local v0.2.7 (latest: v1.1.8)
[INFO] [stderr]       Adding thread_local v0.3.6 (latest: v1.1.8)
[INFO] [stderr]       Adding time v0.1.45 (latest: v0.3.36)
[INFO] [stderr]       Adding tokio v0.1.22 (latest: v1.37.0)
[INFO] [stderr]       Adding ucd-util v0.1.10 (latest: v0.2.1)
[INFO] [stderr]       Adding unicode-xid v0.0.4 (latest: v0.2.4)
[INFO] [stderr]       Adding utf8-ranges v0.1.3 (latest: v1.0.5)
[INFO] [stderr]       Adding uuid v0.4.0 (latest: v1.8.0)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (latest: v0.13.0+wasi-0.2.0)
[INFO] [stderr]       Adding winapi v0.2.8 (latest: v0.3.9)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_json v0.9.10
[INFO] [stderr]   Downloaded uuid v0.4.0
[INFO] [stderr]   Downloaded quickcheck v0.2.27
[INFO] [stderr]   Downloaded env_logger v0.3.5
[INFO] [stderr]   Downloaded serde_derive v0.9.15
[INFO] [stderr]   Downloaded serde v0.9.15
[INFO] [stderr]   Downloaded crossbeam v0.2.12
[INFO] [stderr]   Downloaded bincode v0.9.2
[INFO] [stderr]   Downloaded error-chain v0.9.0
[INFO] [stderr]   Downloaded serde_codegen_internals v0.14.2
[INFO] [stderr]   Downloaded itoa v0.3.4
[INFO] [stderr]   Downloaded crdts v1.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0fa0784156b96792d2d3e7b2a717103b3d14d97ee5db2205318da0b142d5f83c
[INFO] running `Command { std: "docker" "start" "-a" "0fa0784156b96792d2d3e7b2a717103b3d14d97ee5db2205318da0b142d5f83c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0fa0784156b96792d2d3e7b2a717103b3d14d97ee5db2205318da0b142d5f83c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0fa0784156b96792d2d3e7b2a717103b3d14d97ee5db2205318da0b142d5f83c", kill_on_drop: false }`
[INFO] [stdout] 0fa0784156b96792d2d3e7b2a717103b3d14d97ee5db2205318da0b142d5f83c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cca31af115eaa739c022f78dac2f65fbd6b4742a9baab2bf66e07c9395d1cdad
[INFO] running `Command { std: "docker" "start" "-a" "cca31af115eaa739c022f78dac2f65fbd6b4742a9baab2bf66e07c9395d1cdad", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking maybe-uninit v2.0.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling cc v1.0.96
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking ucd-util v0.1.10
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking regex-syntax v0.5.6
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking aho-corasick v0.6.10
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking utf8-ranges v1.0.5
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking serde v0.9.15
[INFO] [stderr]     Checking regex v0.2.11
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]    Compiling serde_codegen_internals v0.14.2
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking serde v0.8.23
[INFO] [stderr]     Checking itoa v0.3.4
[INFO] [stderr]     Checking env_logger v0.4.3
[INFO] [stderr]    Compiling serde_derive v0.9.15
[INFO] [stderr]     Checking tokio-core v0.1.18
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking crossbeam v0.2.12
[INFO] [stderr]     Checking quickcheck v0.2.27
[INFO] [stderr]     Checking serde_json v0.9.10
[INFO] [stderr]     Checking uuid v0.4.0
[INFO] [stderr]     Checking bincode v0.6.1
[INFO] [stderr]     Checking bincode v0.9.2
[INFO] [stderr]     Checking crdts v1.3.0
[INFO] [stderr]     Checking error-chain v0.9.0
[INFO] [stderr]     Checking crack v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]     = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert`
[INFO] [stdout]  --> src/transport.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transport.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/transport.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/transport.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/transport.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/transport.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Handle`
[INFO] [stdout]   --> src/transport.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio_core::reactor::{Core, Handle};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecodingResult`
[INFO] [stdout]   --> src/transport.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 | use bincode::rustc_serialize::{encode, decode, DecodingResult};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/transport.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`
[INFO] [stdout]   --> src/transport.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `Encoder`
[INFO] [stdout]   --> src/transport.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                       ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_io::AsyncRead`
[INFO] [stdout]   --> src/transport.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use tokio_io::AsyncRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `future`, `sink`
[INFO] [stdout]   --> src/transport.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use futures::{future, sink, Sink, Stream, Future, IntoFuture};
[INFO] [stdout]    |               ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]     = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SplitSink`, `SplitStream`, `self`
[INFO] [stdout]   --> src/transport.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 | use futures::stream::{self, SplitSink, SplitStream};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/transport.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `from_binary`, `to_binary`
[INFO] [stdout]   --> src/transport.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | use {to_binary, from_binary};
[INFO] [stdout]    |      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kernel::Peer`
[INFO] [stdout]   --> src/transport.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use kernel::Peer;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert`
[INFO] [stdout]  --> src/transport.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transport.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/transport.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/transport.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/transport.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/transport.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Handle`
[INFO] [stdout]   --> src/transport.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio_core::reactor::{Core, Handle};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecodingResult`
[INFO] [stdout]   --> src/transport.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 | use bincode::rustc_serialize::{encode, decode, DecodingResult};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/transport.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`
[INFO] [stdout]   --> src/transport.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `Encoder`
[INFO] [stdout]   --> src/transport.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                       ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_io::AsyncRead`
[INFO] [stdout]   --> src/transport.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use tokio_io::AsyncRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `future`, `sink`
[INFO] [stdout]   --> src/transport.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use futures::{future, sink, Sink, Stream, Future, IntoFuture};
[INFO] [stdout]    |               ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SplitSink`, `SplitStream`, `self`
[INFO] [stdout]   --> src/transport.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 | use futures::stream::{self, SplitSink, SplitStream};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/transport.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `from_binary`, `to_binary`
[INFO] [stdout]   --> src/transport.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | use {to_binary, from_binary};
[INFO] [stdout]    |      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kernel::Peer`
[INFO] [stdout]   --> src/transport.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use kernel::Peer;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |                    ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `crc16_arr`, `crc16`
[INFO] [stdout]   --> src/lib.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crc16::{crc16_arr, crc16};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |                    ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `crc16_arr`, `crc16`
[INFO] [stdout]   --> src/lib.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crc16::{crc16_arr, crc16};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `tokio_io::codec::length_delimited`: Moved to tokio-codec
[INFO] [stdout]   --> src/transport.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedRead`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let deframed = length_delimited::FramedRead::new(socket);
[INFO] [stdout]     |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `tokio_io::codec::length_delimited`: Moved to tokio-codec
[INFO] [stdout]   --> src/transport.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedWrite`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let framed = length_delimited::FramedWrite::new(socket);
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedRead`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let deframed = length_delimited::FramedRead::new(socket);
[INFO] [stdout]     |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedWrite`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let framed = length_delimited::FramedWrite::new(socket);
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/transport.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |         thread::sleep_ms(300);
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<dyn Fn(A) -> A>)>);
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<dyn Fn(A) -> A>)>);
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:72:29
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<Fn(&A) -> bool>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<dyn Fn(&A) -> bool>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:72:29
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<Fn(&A) -> bool>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<dyn Fn(&A) -> bool>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:73:49
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<Fn(A) -> A>)>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<dyn Fn(A) -> A>)>>,
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:73:49
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<Fn(A) -> A>)>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<dyn Fn(A) -> A>)>>,
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<dyn Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<dyn Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::sync::mpsc::UnboundedSender::<T>::send`: renamed to `unbounded_send`
[INFO] [stdout]   --> src/transport.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     tx.send(msg).unwrap();
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::sync::mpsc::UnboundedSender::<T>::send`: renamed to `unbounded_send`
[INFO] [stdout]   --> src/transport.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     tx.send(msg).unwrap();
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn ping(&self, peer: Peer) -> Result<(), ()> {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn purge(&self, peer: Peer) {}
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `note`
[INFO] [stdout]   --> src/model.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let (ref note, ref f) = self.processes[choice][*index];
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_note`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/transport.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         for i in 1..4 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn ping(&self, peer: Peer) -> Result<(), ()> {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn purge(&self, peer: Peer) {}
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Transport` is never used
[INFO] [stdout]   --> src/transport.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | trait Transport<Addr, Rx, Tx>: Sized {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCPTransport` is never constructed
[INFO] [stdout]   --> src/transport.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct TCPTransport<Rx, Tx> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/transport.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | / impl<Rx, Tx> TCPTransport<Rx, Tx>
[INFO] [stdout] 45 | |     where Rx: Decodable + Send + 'static,
[INFO] [stdout] 46 | |           Tx: Encodable + Send + 'static
[INFO] [stdout]    | |________________________________________- associated function in this implementation
[INFO] [stdout] 47 |   {
[INFO] [stdout] 48 |       pub fn new(addr: SocketAddr) -> TCPTransport<Rx, Tx> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recv` is never used
[INFO] [stdout]   --> src/transport.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn recv<T>(addr: SocketAddr) -> Arc<MsQueue<(SocketAddr, T)>>
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send` is never used
[INFO] [stdout]    --> src/transport.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn send<T>(addr: SocketAddr) -> mpsc::UnboundedSender<T>
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Connected` and `Disconnected` are never constructed
[INFO] [stdout]  --> src/kernel.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum PeerState {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] 2 |     Connected,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     Disconnected,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state` and `addr` are never read
[INFO] [stdout]  --> src/kernel.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Peer {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     state: PeerState,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     addr: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peers`, `ping`, and `purge` are never used
[INFO] [stdout]   --> src/kernel.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Kernel {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] 12 |     fn peers(&self) -> Vec<Peer>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peers` is never read
[INFO] [stdout]   --> src/kernel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct K {
[INFO] [stdout]    |            - field in this struct
[INFO] [stdout] 18 |     peers: Vec<Peer>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cron` is never used
[INFO] [stdout]   --> src/kernel.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl K {
[INFO] [stdout]    | ------ method in this implementation
[INFO] [stdout] 28 |     fn cron(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runs` is never constructed
[INFO] [stdout]  --> src/model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Runs {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Runs {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 14 |     fn new<I>(inner: &Vec<Vec<I>>) -> Runs {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Process` is never constructed
[INFO] [stdout]   --> src/model.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl<A> Process<A> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `System` is never constructed
[INFO] [stdout]   --> src/model.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct System<A> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `test` is never used
[INFO] [stdout]   --> src/model.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<A: Clone> System<A> {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] 77 |     fn test(&self) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fact` is never used
[INFO] [stdout]    --> src/model.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn fact(n: usize) -> usize {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!(e))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!("{}", e))
[INFO] [stdout]     |                                                  +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                                           ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:110:65
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!(e)));
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!("{}", e)));
[INFO] [stdout]     |                                                                 +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| std::panic::panic_any(e)));
[INFO] [stdout]     |                                                          ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!(e))
[INFO] [stdout]     |                                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `()`
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!("{:?}", e))
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `note`
[INFO] [stdout]   --> src/model.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let (ref note, ref f) = self.processes[choice][*index];
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_note`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `futures::stream::MapErr` in tuple element 0 that must be used
[INFO] [stdout]    --> src/transport.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         core.run(client).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: streams do nothing unless polled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 56 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Transport` is never used
[INFO] [stdout]   --> src/transport.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | trait Transport<Addr, Rx, Tx>: Sized {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCPTransport` is never constructed
[INFO] [stdout]   --> src/transport.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct TCPTransport<Rx, Tx> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/transport.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | / impl<Rx, Tx> TCPTransport<Rx, Tx>
[INFO] [stdout] 45 | |     where Rx: Decodable + Send + 'static,
[INFO] [stdout] 46 | |           Tx: Encodable + Send + 'static
[INFO] [stdout]    | |________________________________________- associated function in this implementation
[INFO] [stdout] 47 |   {
[INFO] [stdout] 48 |       pub fn new(addr: SocketAddr) -> TCPTransport<Rx, Tx> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Connected` and `Disconnected` are never constructed
[INFO] [stdout]  --> src/kernel.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum PeerState {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] 2 |     Connected,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     Disconnected,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state` and `addr` are never read
[INFO] [stdout]  --> src/kernel.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Peer {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     state: PeerState,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     addr: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peers`, `ping`, and `purge` are never used
[INFO] [stdout]   --> src/kernel.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Kernel {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] 12 |     fn peers(&self) -> Vec<Peer>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peers` is never read
[INFO] [stdout]   --> src/kernel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct K {
[INFO] [stdout]    |            - field in this struct
[INFO] [stdout] 18 |     peers: Vec<Peer>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cron` is never used
[INFO] [stdout]   --> src/kernel.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl K {
[INFO] [stdout]    | ------ method in this implementation
[INFO] [stdout] 28 |     fn cron(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inner` is never constructed
[INFO] [stdout]   --> src/fsm.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |         struct Inner {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fact` is never used
[INFO] [stdout]    --> src/model.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn fact(n: usize) -> usize {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!(e))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!("{}", e))
[INFO] [stdout]     |                                                  +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                                           ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:110:65
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!(e)));
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!("{}", e)));
[INFO] [stdout]     |                                                                 +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| std::panic::panic_any(e)));
[INFO] [stdout]     |                                                          ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!(e))
[INFO] [stdout]     |                                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `()`
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!("{:?}", e))
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `futures::stream::MapErr` in tuple element 0 that must be used
[INFO] [stdout]    --> src/transport.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         core.run(client).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: streams do nothing unless polled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `crack` (lib) due to 5 previous errors; 56 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 2 previous errors; 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `crack` (lib test) due to 5 previous errors; 51 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cca31af115eaa739c022f78dac2f65fbd6b4742a9baab2bf66e07c9395d1cdad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cca31af115eaa739c022f78dac2f65fbd6b4742a9baab2bf66e07c9395d1cdad", kill_on_drop: false }`
[INFO] [stdout] cca31af115eaa739c022f78dac2f65fbd6b4742a9baab2bf66e07c9395d1cdad
[INFO] checking crack-0.1.0 against try#9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88 for pr-124157
[INFO] extracting crate crack 0.1.0 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate crack 0.1.0 on toolchain 9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate crack 0.1.0
[INFO] finished tweaking crates.io crate crack 0.1.0
[INFO] tweaked toml for crates.io crate crack 0.1.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 120 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding aho-corasick v0.5.3 (latest: v1.1.3)
[INFO] [stderr]       Adding aho-corasick v0.6.10 (latest: v1.1.3)
[INFO] [stderr]       Adding bincode v0.6.1 (latest: v1.3.3)
[INFO] [stderr]       Adding bincode v0.9.2 (latest: v1.3.3)
[INFO] [stderr]       Adding bitflags v1.3.2 (latest: v2.5.0)
[INFO] [stderr]       Adding bytes v0.4.12 (latest: v1.6.0)
[INFO] [stderr]       Adding cfg-if v0.1.10 (latest: v1.0.0)
[INFO] [stderr]       Adding cloudabi v0.0.3 (latest: v0.1.0)
[INFO] [stderr]       Adding crdts v1.3.0 (latest: v7.3.2)
[INFO] [stderr]       Adding crossbeam v0.2.12 (latest: v0.8.4)
[INFO] [stderr]       Adding crossbeam-deque v0.7.4 (latest: v0.8.5)
[INFO] [stderr]       Adding crossbeam-epoch v0.8.2 (latest: v0.9.18)
[INFO] [stderr]       Adding crossbeam-queue v0.2.3 (latest: v0.3.11)
[INFO] [stderr]       Adding crossbeam-utils v0.7.2 (latest: v0.8.19)
[INFO] [stderr]       Adding dtoa v0.4.8 (latest: v1.0.9)
[INFO] [stderr]       Adding env_logger v0.3.5 (latest: v0.11.3)
[INFO] [stderr]       Adding env_logger v0.4.3 (latest: v0.11.3)
[INFO] [stderr]       Adding error-chain v0.9.0 (latest: v0.12.4)
[INFO] [stderr]       Adding futures v0.1.31 (latest: v0.3.30)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding itoa v0.3.4 (latest: v1.0.11)
[INFO] [stderr]       Adding lock_api v0.3.4 (latest: v0.4.12)
[INFO] [stderr]       Adding log v0.3.9 (latest: v0.4.21)
[INFO] [stderr]       Adding memchr v0.1.11 (latest: v2.7.2)
[INFO] [stderr]       Adding memoffset v0.5.6 (latest: v0.9.1)
[INFO] [stderr]       Adding mio v0.6.23 (latest: v0.8.11)
[INFO] [stderr]       Adding miow v0.2.2 (latest: v0.6.0)
[INFO] [stderr]       Adding num-traits v0.1.43 (latest: v0.2.18)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding parking_lot v0.9.0 (latest: v0.12.2)
[INFO] [stderr]       Adding parking_lot_core v0.6.3 (latest: v0.9.10)
[INFO] [stderr]       Adding quickcheck v0.2.27 (latest: v1.0.3)
[INFO] [stderr]       Adding quote v0.3.15 (latest: v1.0.36)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] [stderr]       Adding redox_syscall v0.1.57 (latest: v0.5.1)
[INFO] [stderr]       Adding regex v0.1.80 (latest: v1.10.4)
[INFO] [stderr]       Adding regex v0.2.11 (latest: v1.10.4)
[INFO] [stderr]       Adding regex-syntax v0.3.9 (latest: v0.8.3)
[INFO] [stderr]       Adding regex-syntax v0.5.6 (latest: v0.8.3)
[INFO] [stderr]       Adding rustc_version v0.2.3 (latest: v0.4.0)
[INFO] [stderr]       Adding scoped-tls v0.1.2 (latest: v1.0.1)
[INFO] [stderr]       Adding semver v0.9.0 (latest: v1.0.22)
[INFO] [stderr]       Adding semver-parser v0.7.0 (latest: v0.10.2)
[INFO] [stderr]       Adding serde v0.8.23 (latest: v1.0.200)
[INFO] [stderr]       Adding serde v0.9.15 (latest: v1.0.200)
[INFO] [stderr]       Adding serde_derive v0.9.15 (latest: v1.0.200)
[INFO] [stderr]       Adding serde_json v0.9.10 (latest: v1.0.116)
[INFO] [stderr]       Adding smallvec v0.6.14 (latest: v1.13.2)
[INFO] [stderr]       Adding syn v0.11.11 (latest: v2.0.60)
[INFO] [stderr]       Adding thread-id v2.0.0 (latest: v4.2.1)
[INFO] [stderr]       Adding thread_local v0.2.7 (latest: v1.1.8)
[INFO] [stderr]       Adding thread_local v0.3.6 (latest: v1.1.8)
[INFO] [stderr]       Adding time v0.1.45 (latest: v0.3.36)
[INFO] [stderr]       Adding tokio v0.1.22 (latest: v1.37.0)
[INFO] [stderr]       Adding ucd-util v0.1.10 (latest: v0.2.1)
[INFO] [stderr]       Adding unicode-xid v0.0.4 (latest: v0.2.4)
[INFO] [stderr]       Adding utf8-ranges v0.1.3 (latest: v1.0.5)
[INFO] [stderr]       Adding uuid v0.4.0 (latest: v1.8.0)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (latest: v0.13.0+wasi-0.2.0)
[INFO] [stderr]       Adding winapi v0.2.8 (latest: v0.3.9)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ab0991975745f1acbf3d67bb7e43250571543c5f90fbbc9e36081cbd7cdec626
[INFO] running `Command { std: "docker" "start" "-a" "ab0991975745f1acbf3d67bb7e43250571543c5f90fbbc9e36081cbd7cdec626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab0991975745f1acbf3d67bb7e43250571543c5f90fbbc9e36081cbd7cdec626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab0991975745f1acbf3d67bb7e43250571543c5f90fbbc9e36081cbd7cdec626", kill_on_drop: false }`
[INFO] [stdout] ab0991975745f1acbf3d67bb7e43250571543c5f90fbbc9e36081cbd7cdec626
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b8278a1e8fc4e0520596849fa9a8a660bcaa96d377032b0843417ef0e0578dbc
[INFO] running `Command { std: "docker" "start" "-a" "b8278a1e8fc4e0520596849fa9a8a660bcaa96d377032b0843417ef0e0578dbc", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking maybe-uninit v2.0.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling cc v1.0.96
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]     Checking ucd-util v0.1.10
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]     Checking regex-syntax v0.5.6
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking aho-corasick v0.6.10
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking utf8-ranges v1.0.5
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking serde v0.9.15
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]    Compiling serde_codegen_internals v0.14.2
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking regex v0.2.11
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking itoa v0.3.4
[INFO] [stderr]     Checking serde v0.8.23
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]    Compiling serde_derive v0.9.15
[INFO] [stderr]     Checking tokio-core v0.1.18
[INFO] [stderr]     Checking env_logger v0.4.3
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking crossbeam v0.2.12
[INFO] [stderr]     Checking quickcheck v0.2.27
[INFO] [stderr]     Checking uuid v0.4.0
[INFO] [stderr]     Checking serde_json v0.9.10
[INFO] [stderr]     Checking bincode v0.9.2
[INFO] [stderr]     Checking bincode v0.6.1
[INFO] [stderr]     Checking crdts v1.3.0
[INFO] [stderr]     Checking error-chain v0.9.0
[INFO] [stderr]     Checking crack v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]     = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert`
[INFO] [stdout]  --> src/transport.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transport.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/transport.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/transport.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/transport.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/transport.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Handle`
[INFO] [stdout]   --> src/transport.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio_core::reactor::{Core, Handle};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecodingResult`
[INFO] [stdout]   --> src/transport.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 | use bincode::rustc_serialize::{encode, decode, DecodingResult};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/transport.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`
[INFO] [stdout]   --> src/transport.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `Encoder`
[INFO] [stdout]   --> src/transport.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                       ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]     = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_io::AsyncRead`
[INFO] [stdout]   --> src/transport.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use tokio_io::AsyncRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcDecodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]    --> src/transport.rs:160:33
[INFO] [stdout]     |
[INFO] [stdout] 160 | #[derive(Debug, RustcEncodable, RustcDecodable)]
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `future`, `sink`
[INFO] [stdout]   --> src/transport.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use futures::{future, sink, Sink, Stream, Future, IntoFuture};
[INFO] [stdout]    |               ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert`
[INFO] [stdout]  --> src/transport.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/transport.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/transport.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SplitSink`, `SplitStream`, `self`
[INFO] [stdout]   --> src/transport.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 | use futures::stream::{self, SplitSink, SplitStream};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/transport.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `from_binary`, `to_binary`
[INFO] [stdout]   --> src/transport.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | use {to_binary, from_binary};
[INFO] [stdout]    |      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/transport.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kernel::Peer`
[INFO] [stdout]   --> src/transport.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use kernel::Peer;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/transport.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/transport.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Handle`
[INFO] [stdout]   --> src/transport.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio_core::reactor::{Core, Handle};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecodingResult`
[INFO] [stdout]   --> src/transport.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 | use bincode::rustc_serialize::{encode, decode, DecodingResult};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]   --> src/transport.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`
[INFO] [stdout]   --> src/transport.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use bytes::{BufMut, BytesMut};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `Encoder`
[INFO] [stdout]   --> src/transport.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                       ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_io::AsyncRead`
[INFO] [stdout]   --> src/transport.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use tokio_io::AsyncRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `future`, `sink`
[INFO] [stdout]   --> src/transport.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use futures::{future, sink, Sink, Stream, Future, IntoFuture};
[INFO] [stdout]    |               ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SplitSink`, `SplitStream`, `self`
[INFO] [stdout]   --> src/transport.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 | use futures::stream::{self, SplitSink, SplitStream};
[INFO] [stdout]    |                       ^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/transport.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `from_binary`, `to_binary`
[INFO] [stdout]   --> src/transport.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | use {to_binary, from_binary};
[INFO] [stdout]    |      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kernel::Peer`
[INFO] [stdout]   --> src/transport.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use kernel::Peer;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |                    ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `crc16_arr`, `crc16`
[INFO] [stdout]   --> src/lib.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crc16::{crc16_arr, crc16};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |                    ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/kernel.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Peer`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `crc16_arr`, `crc16`
[INFO] [stdout]   --> src/lib.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crc16::{crc16_arr, crc16};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `tokio_io::codec::length_delimited`: Moved to tokio-codec
[INFO] [stdout]   --> src/transport.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedRead`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let deframed = length_delimited::FramedRead::new(socket);
[INFO] [stdout]     |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedWrite`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let framed = length_delimited::FramedWrite::new(socket);
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `tokio_io::codec::length_delimited`: Moved to tokio-codec
[INFO] [stdout]   --> src/transport.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio_io::codec::{Encoder, Decoder, length_delimited};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<dyn Fn(A) -> A>)>);
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedRead`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let deframed = length_delimited::FramedRead::new(socket);
[INFO] [stdout]     |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `tokio_io::length_delimited::FramedWrite`: Moved to tokio-codec
[INFO] [stdout]    --> src/transport.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let framed = length_delimited::FramedWrite::new(socket);
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/transport.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |         thread::sleep_ms(300);
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:72:29
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<Fn(&A) -> bool>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<dyn Fn(&A) -> bool>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:73:49
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<Fn(A) -> A>)>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<dyn Fn(A) -> A>)>>,
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<dyn Fn(A) -> A>)>);
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:72:29
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<Fn(&A) -> bool>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub invariants: Vec<Box<dyn Fn(&A) -> bool>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:73:49
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<Fn(A) -> A>)>>,
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub processes: Vec<Vec<(Option<String>, Box<dyn Fn(A) -> A>)>>,
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<dyn Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[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: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<dyn Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::sync::mpsc::UnboundedSender::<T>::send`: renamed to `unbounded_send`
[INFO] [stdout]   --> src/transport.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     tx.send(msg).unwrap();
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::sync::mpsc::UnboundedSender::<T>::send`: renamed to `unbounded_send`
[INFO] [stdout]   --> src/transport.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     tx.send(msg).unwrap();
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn ping(&self, peer: Peer) -> Result<(), ()> {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn purge(&self, peer: Peer) {}
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `note`
[INFO] [stdout]   --> src/model.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let (ref note, ref f) = self.processes[choice][*index];
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_note`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Transport` is never used
[INFO] [stdout]   --> src/transport.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | trait Transport<Addr, Rx, Tx>: Sized {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCPTransport` is never constructed
[INFO] [stdout]   --> src/transport.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct TCPTransport<Rx, Tx> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/transport.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | / impl<Rx, Tx> TCPTransport<Rx, Tx>
[INFO] [stdout] 45 | |     where Rx: Decodable + Send + 'static,
[INFO] [stdout] 46 | |           Tx: Encodable + Send + 'static
[INFO] [stdout]    | |________________________________________- associated function in this implementation
[INFO] [stdout] 47 |   {
[INFO] [stdout] 48 |       pub fn new(addr: SocketAddr) -> TCPTransport<Rx, Tx> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recv` is never used
[INFO] [stdout]   --> src/transport.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn recv<T>(addr: SocketAddr) -> Arc<MsQueue<(SocketAddr, T)>>
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send` is never used
[INFO] [stdout]    --> src/transport.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn send<T>(addr: SocketAddr) -> mpsc::UnboundedSender<T>
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Connected` and `Disconnected` are never constructed
[INFO] [stdout]  --> src/kernel.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum PeerState {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] 2 |     Connected,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     Disconnected,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state` and `addr` are never read
[INFO] [stdout]  --> src/kernel.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Peer {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     state: PeerState,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     addr: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peers`, `ping`, and `purge` are never used
[INFO] [stdout]   --> src/kernel.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Kernel {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] 12 |     fn peers(&self) -> Vec<Peer>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peers` is never read
[INFO] [stdout]   --> src/kernel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct K {
[INFO] [stdout]    |            - field in this struct
[INFO] [stdout] 18 |     peers: Vec<Peer>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cron` is never used
[INFO] [stdout]   --> src/kernel.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl K {
[INFO] [stdout]    | ------ method in this implementation
[INFO] [stdout] 28 |     fn cron(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runs` is never constructed
[INFO] [stdout]  --> src/model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Runs {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Runs {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 14 |     fn new<I>(inner: &Vec<Vec<I>>) -> Runs {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Process` is never constructed
[INFO] [stdout]   --> src/model.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Process<A>(Vec<(Option<String>, Box<Fn(A) -> A>)>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl<A> Process<A> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 65 |     fn new<'a>(steps: Vec<(&'a str, Box<Fn(A) -> A>)>) -> Process<A> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `System` is never constructed
[INFO] [stdout]   --> src/model.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct System<A> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `test` is never used
[INFO] [stdout]   --> src/model.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<A: Clone> System<A> {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] 77 |     fn test(&self) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/transport.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         for i in 1..4 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fact` is never used
[INFO] [stdout]    --> src/model.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn fact(n: usize) -> usize {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!(e))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!("{}", e))
[INFO] [stdout]     |                                                  +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                                           ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:110:65
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!(e)));
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!("{}", e)));
[INFO] [stdout]     |                                                                 +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| std::panic::panic_any(e)));
[INFO] [stdout]     |                                                          ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!(e))
[INFO] [stdout]     |                                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `()`
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!("{:?}", e))
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `futures::stream::MapErr` in tuple element 0 that must be used
[INFO] [stdout]    --> src/transport.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         core.run(client).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: streams do nothing unless polled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn ping(&self, peer: Peer) -> Result<(), ()> {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]   --> src/kernel.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn purge(&self, peer: Peer) {}
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 56 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `note`
[INFO] [stdout]   --> src/model.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let (ref note, ref f) = self.processes[choice][*index];
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_note`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `crack` (lib) due to 5 previous errors; 56 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: trait `Transport` is never used
[INFO] [stdout]   --> src/transport.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | trait Transport<Addr, Rx, Tx>: Sized {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCPTransport` is never constructed
[INFO] [stdout]   --> src/transport.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct TCPTransport<Rx, Tx> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/transport.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | / impl<Rx, Tx> TCPTransport<Rx, Tx>
[INFO] [stdout] 45 | |     where Rx: Decodable + Send + 'static,
[INFO] [stdout] 46 | |           Tx: Encodable + Send + 'static
[INFO] [stdout]    | |________________________________________- associated function in this implementation
[INFO] [stdout] 47 |   {
[INFO] [stdout] 48 |       pub fn new(addr: SocketAddr) -> TCPTransport<Rx, Tx> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Connected` and `Disconnected` are never constructed
[INFO] [stdout]  --> src/kernel.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum PeerState {
[INFO] [stdout]   |          --------- variants in this enum
[INFO] [stdout] 2 |     Connected,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 3 |     Disconnected,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state` and `addr` are never read
[INFO] [stdout]  --> src/kernel.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Peer {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     state: PeerState,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     addr: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peers`, `ping`, and `purge` are never used
[INFO] [stdout]   --> src/kernel.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Kernel {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] 12 |     fn peers(&self) -> Vec<Peer>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 13 |     fn ping(&self, Peer) -> Result<(), ()>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 14 |     fn purge(&self, Peer);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peers` is never read
[INFO] [stdout]   --> src/kernel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct K {
[INFO] [stdout]    |            - field in this struct
[INFO] [stdout] 18 |     peers: Vec<Peer>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cron` is never used
[INFO] [stdout]   --> src/kernel.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl K {
[INFO] [stdout]    | ------ method in this implementation
[INFO] [stdout] 28 |     fn cron(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inner` is never constructed
[INFO] [stdout]   --> src/fsm.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |         struct Inner {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fact` is never used
[INFO] [stdout]    --> src/model.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn fact(n: usize) -> usize {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!(e))
[INFO] [stdout]     |                                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| panic!("{}", e))
[INFO] [stdout]     |                                                  +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let rx = deframed.map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                                           ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:110:65
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!(e)));
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| panic!("{}", e)));
[INFO] [stdout]     |                                                                 +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 .and_then(|buf| decode(&buf).map_err(|e| std::panic::panic_any(e)));
[INFO] [stdout]     |                                                          ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/transport.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!(e))
[INFO] [stdout]     |                                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `()`
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| panic!("{:?}", e))
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 .map_err(|e| std::panic::panic_any(e))
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `futures::stream::MapErr` in tuple element 0 that must be used
[INFO] [stdout]    --> src/transport.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         core.run(client).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: streams do nothing unless polled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `crack` (lib test) due to 5 previous errors; 51 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b8278a1e8fc4e0520596849fa9a8a660bcaa96d377032b0843417ef0e0578dbc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8278a1e8fc4e0520596849fa9a8a660bcaa96d377032b0843417ef0e0578dbc", kill_on_drop: false }`
[INFO] [stdout] b8278a1e8fc4e0520596849fa9a8a660bcaa96d377032b0843417ef0e0578dbc
