[INFO] cloning repository https://github.com/HotelCalifornia/riirc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HotelCalifornia/riirc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHotelCalifornia%2Friirc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHotelCalifornia%2Friirc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9b6981ad12165b9fcaca7176030418223b10569c
[INFO] checking HotelCalifornia/riirc against try#a3dffdb3a32d0dedc198f9de7d43173f3eb6727b for pr-136303
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHotelCalifornia%2Friirc" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/HotelCalifornia/riirc on toolchain a3dffdb3a32d0dedc198f9de7d43173f3eb6727b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/HotelCalifornia/riirc
[INFO] finished tweaking git repo https://github.com/HotelCalifornia/riirc
[INFO] tweaked toml for git repo https://github.com/HotelCalifornia/riirc written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/HotelCalifornia/riirc already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bfdba9b770dae681a219266e1696c9c3bd4fc0466a6fb5098a901e6467a6541d
[INFO] running `Command { std: "docker" "start" "-a" "bfdba9b770dae681a219266e1696c9c3bd4fc0466a6fb5098a901e6467a6541d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bfdba9b770dae681a219266e1696c9c3bd4fc0466a6fb5098a901e6467a6541d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bfdba9b770dae681a219266e1696c9c3bd4fc0466a6fb5098a901e6467a6541d", kill_on_drop: false }`
[INFO] [stdout] bfdba9b770dae681a219266e1696c9c3bd4fc0466a6fb5098a901e6467a6541d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6cf66bc24442ae60e020b21581b42431376ce3e3a5c025ef859ee87d52823110
[INFO] running `Command { std: "docker" "start" "-a" "6cf66bc24442ae60e020b21581b42431376ce3e3a5c025ef859ee87d52823110", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]     Checking futures-core v0.3.4
[INFO] [stderr]    Compiling serde v1.0.105
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]     Checking futures-sink v0.3.4
[INFO] [stderr]    Compiling proc-macro-nested v0.1.4
[INFO] [stderr]     Checking futures-channel v0.3.4
[INFO] [stderr]     Checking pin-utils v0.1.0-alpha.4
[INFO] [stderr]     Checking futures-io v0.3.4
[INFO] [stderr]     Checking futures-task v0.3.4
[INFO] [stderr]     Checking arc-swap v0.4.4
[INFO] [stderr]     Checking pin-project-lite v0.1.4
[INFO] [stderr]     Checking bytes v0.5.4
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking num_cpus v1.12.0
[INFO] [stderr]     Checking signal-hook-registry v1.2.0
[INFO] [stderr]     Checking mio v0.6.21
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]    Compiling toml v0.5.6
[INFO] [stderr]    Compiling proc-macro-crate v0.1.4
[INFO] [stderr]    Compiling proc-macro-hack v0.5.12
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]    Compiling derivative v2.0.2
[INFO] [stderr]    Compiling num_enum_derive v0.4.3
[INFO] [stderr]     Checking tokio v0.2.13
[INFO] [stderr]    Compiling futures-macro v0.3.4
[INFO] [stderr]     Checking num_enum v0.4.3
[INFO] [stderr]     Checking futures-util v0.3.4
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]     Checking futures-executor v0.3.4
[INFO] [stderr]     Checking futures v0.3.4
[INFO] [stderr]     Checking riirc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0428]: the name `Command` is defined multiple times
[INFO] [stdout]    --> src/irc/proto.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- previous definition of the type `Command` here
[INFO] [stdout] ...
[INFO] [stdout] 313 | pub enum Command {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ `Command` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Command` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `Command` is defined multiple times
[INFO] [stdout]    --> src/irc/proto.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- previous definition of the type `Command` here
[INFO] [stdout] ...
[INFO] [stdout] 313 | pub enum Command {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ `Command` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Command` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ready`
[INFO] [stdout]  --> src/irc/transport.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ready`
[INFO] [stdout]  --> src/irc/transport.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::codec::Framed`
[INFO] [stdout]  --> src/irc/transport.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_util::codec::Framed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/irc/transport.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::codec::Framed`
[INFO] [stdout]  --> src/irc/transport.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_util::codec::Framed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time`
[INFO] [stdout]  --> src/irc/transport.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>: tokio::io::AsyncRead` is not satisfied
[INFO] [stdout]    --> src/irc/mod.rs:17:66
[INFO] [stdout]     |
[INFO] [stdout] 17  |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stdout]     |                                                           ------ ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::AsyncRead` is not implemented for `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `tokio::io::AsyncRead`:
[INFO] [stdout]               &[u8]
[INFO] [stdout]               &mut T
[INFO] [stdout]               Box<T>
[INFO] [stdout]               BufStream<RW>
[INFO] [stdout]               Pin<P>
[INFO] [stdout]               PollEvented<E>
[INFO] [stdout]               Transport
[INFO] [stdout]               std::io::Cursor<T>
[INFO] [stdout]             and 15 others
[INFO] [stdout] note: required by a bound in `framed`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/decoder.rs:159:18
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn framed<T: AsyncRead + AsyncWrite + Sized>(self, io: T) -> Framed<T, Self>
[INFO] [stdout]     |                  ^^^^^^^^^ required by this bound in `Decoder::framed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>: tokio::io::AsyncWrite` is not satisfied
[INFO] [stdout]    --> src/irc/mod.rs:17:66
[INFO] [stdout]     |
[INFO] [stdout] 17  |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stdout]     |                                                           ------ ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::AsyncWrite` is not implemented for `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `tokio::io::AsyncWrite`:
[INFO] [stdout]               &mut T
[INFO] [stdout]               Box<T>
[INFO] [stdout]               BufStream<RW>
[INFO] [stdout]               Pin<P>
[INFO] [stdout]               PollEvented<E>
[INFO] [stdout]               Transport
[INFO] [stdout]               Vec<u8>
[INFO] [stdout]               std::io::Cursor<&mut Vec<u8>>
[INFO] [stdout]             and 15 others
[INFO] [stdout] note: required by a bound in `framed`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/decoder.rs:159:30
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn framed<T: AsyncRead + AsyncWrite + Sized>(self, io: T) -> Framed<T, Self>
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `Decoder::framed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>: tokio::io::AsyncRead` is not satisfied
[INFO] [stdout]    --> src/irc/mod.rs:17:66
[INFO] [stdout]     |
[INFO] [stdout] 17  |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stdout]     |                                                           ------ ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::AsyncRead` is not implemented for `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `tokio::io::AsyncRead`:
[INFO] [stdout]               &[u8]
[INFO] [stdout]               &mut T
[INFO] [stdout]               Box<T>
[INFO] [stdout]               BufStream<RW>
[INFO] [stdout]               Pin<P>
[INFO] [stdout]               PollEvented<E>
[INFO] [stdout]               Transport
[INFO] [stdout]               std::io::Cursor<T>
[INFO] [stdout]             and 15 others
[INFO] [stdout] note: required by a bound in `framed`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/decoder.rs:159:18
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn framed<T: AsyncRead + AsyncWrite + Sized>(self, io: T) -> Framed<T, Self>
[INFO] [stdout]     |                  ^^^^^^^^^ required by this bound in `Decoder::framed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>: tokio::io::AsyncWrite` is not satisfied
[INFO] [stdout]    --> src/irc/mod.rs:17:66
[INFO] [stdout]     |
[INFO] [stdout] 17  |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stdout]     |                                                           ------ ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::AsyncWrite` is not implemented for `impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `tokio::io::AsyncWrite`:
[INFO] [stdout]               &mut T
[INFO] [stdout]               Box<T>
[INFO] [stdout]               BufStream<RW>
[INFO] [stdout]               Pin<P>
[INFO] [stdout]               PollEvented<E>
[INFO] [stdout]               Transport
[INFO] [stdout]               Vec<u8>
[INFO] [stdout]               std::io::Cursor<&mut Vec<u8>>
[INFO] [stdout]             and 15 others
[INFO] [stdout] note: required by a bound in `framed`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/decoder.rs:159:30
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn framed<T: AsyncRead + AsyncWrite + Sized>(self, io: T) -> Framed<T, Self>
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `Decoder::framed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `split` exists for struct `Framed<impl Future<Output = Result<TcpStream, Error>>, ...>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/irc/mod.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let (sink, stream) = stream.split();
[INFO] [stdout]    |                                       ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/framed.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / pin_project! {
[INFO] [stdout] 21 | |     /// A unified [`Stream`] and [`Sink`] interface to an underlying I/O object, using
[INFO] [stdout] 22 | |     /// the `Encoder` and `Decoder` traits to encode and decode frames.
[INFO] [stdout] 23 | |     ///
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_- doesn't satisfy `_: StreamExt` or `_: Stream`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the full type name has been written to '/opt/rustwide/target/debug/deps/riirc-14db0bce3d25553c.long-type-12005804825860080511.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout]            `&Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `&Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout]            `&mut Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `&mut Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `split` exists for struct `Framed<impl Future<Output = Result<TcpStream, Error>>, ...>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/irc/mod.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let (sink, stream) = stream.split();
[INFO] [stdout]    |                                       ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.3.1/src/codec/framed.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / pin_project! {
[INFO] [stdout] 21 | |     /// A unified [`Stream`] and [`Sink`] interface to an underlying I/O object, using
[INFO] [stdout] 22 | |     /// the `Encoder` and `Decoder` traits to encode and decode frames.
[INFO] [stdout] 23 | |     ///
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_- doesn't satisfy `_: StreamExt` or `_: Stream`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the full type name has been written to '/opt/rustwide/target/debug/deps/riirc-181c4132a33f19b1.long-type-15351330191370210963.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout]            `&Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `&Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout]            `&mut Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: Stream`
[INFO] [stdout]            which is required by `&mut Framed<impl futures::Future<Output = Result<tokio::net::TcpStream, std::io::Error>>, ServerMessageCodec>: futures::StreamExt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]   --> src/irc/mod.rs:22:64
[INFO] [stdout]    |
[INFO] [stdout] 22 |             if let Ok(proto::Message {command: proto::Command::Cmd("PING"), params: params, ..}) = message {
[INFO] [stdout]    |                                                                ^^^ variant or associated item not found in `Command`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/irc/proto.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Command {
[INFO] [stdout]    | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]   --> src/irc/mod.rs:22:64
[INFO] [stdout]    |
[INFO] [stdout] 22 |             if let Ok(proto::Message {command: proto::Command::Cmd("PING"), params: params, ..}) = message {
[INFO] [stdout]    |                                                                ^^^ variant or associated item not found in `Command`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/irc/proto.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Command {
[INFO] [stdout]    | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 58 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 62 |             params: vec![self.user.nick],
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |             params: vec![self.user.nick],
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 62 |             params: vec![self.user.nick.clone()],
[INFO] [stdout]    |                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.name` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move out of `self.user.name` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.name` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |           ^^^^^^^^^^^^^^ --------------------- `self.user.name` moved due to this method call
[INFO] [stdout]    |           |
[INFO] [stdout]    |           help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout]    |           move occurs because `self.user.name` has type `Option<String>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: `Option::<T>::ok_or` takes ownership of the receiver `self`, which moves `self.user.name`
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/option.rs:1252:21
[INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![<Option<String> as Clone>::clone(&self.user.name).ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                          ++++++++++++++++++++++++++++++++++              +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.clone().ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick.clone())?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                                             ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.real_name` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:103
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^ move out of `self.user.real_name` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.real_name` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:103
[INFO] [stdout]    |
[INFO] [stdout] 68 | ... String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^ ------------------ `self.user.real_name` moved due to this method call
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout]    |                                           move occurs because `self.user.real_name` has type `Option<String>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), <Option<String> as Clone>::clone(&self.user.real_name).ok_or("Anonymous")?],
[INFO] [stdout]    |                                                                                                       ++++++++++++++++++++++++++++++++++                   +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.clone().ok_or("Anonymous")?],
[INFO] [stdout]    |                                                                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 58 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 62 |             params: vec![self.user.nick],
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |             params: vec![self.user.nick],
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 62 |             params: vec![self.user.nick.clone()],
[INFO] [stdout]    |                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.name` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^ move out of `self.user.name` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.name` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |           ^^^^^^^^^^^^^^ --------------------- `self.user.name` moved due to this method call
[INFO] [stdout]    |           |
[INFO] [stdout]    |           help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout]    |           move occurs because `self.user.name` has type `Option<String>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: `Option::<T>::ok_or` takes ownership of the receiver `self`, which moves `self.user.name`
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/option.rs:1252:21
[INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![<Option<String> as Clone>::clone(&self.user.name).ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                          ++++++++++++++++++++++++++++++++++              +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.clone().ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick.clone())?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                                             ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self.user.real_name` because it is borrowed
[INFO] [stdout]   --> src/irc/mod.rs:68:103
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub async fn send_registration(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                    --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |         self.send(proto::Message {
[INFO] [stdout]    |         ---- ---- borrow later used by call
[INFO] [stdout]    |         |
[INFO] [stdout]    |         borrow of `*self` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymou...
[INFO] [stdout]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^ move out of `self.user.real_name` occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.user.real_name` which is behind a mutable reference
[INFO] [stdout]   --> src/irc/mod.rs:68:103
[INFO] [stdout]    |
[INFO] [stdout] 68 | ... String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^ ------------------ `self.user.real_name` moved due to this method call
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout]    |                                           move occurs because `self.user.real_name` has type `Option<String>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), <Option<String> as Clone>::clone(&self.user.real_name).ok_or("Anonymous")?],
[INFO] [stdout]    |                                                                                                       ++++++++++++++++++++++++++++++++++                   +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.clone().ok_or("Anonymous")?],
[INFO] [stdout]    |                                                                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:314:5
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 314 |     Cmd(String),
[INFO] [stdout]     |     ^^^^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:315:5
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 315 |     Response(Reply),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 312 | #[derive(Clone, Debug)]
[INFO] [stdout]     |          ^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 312 | #[derive(Clone, Debug)]
[INFO] [stdout]     |          ^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:321:37
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 321 |             b'0'..=b'9' => Command::Response(Reply::from(String::from_utf8(src.to_vec()).unwrap().parse::<u16>().unwrap())),
[INFO] [stdout]     |                                     ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:322:27
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 322 |             _ => Command::Cmd(String::from_utf8(src.to_vec()).unwrap()),
[INFO] [stdout]     |                           ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:330:31
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 330 |             Ok(n) => Command::Response(Reply::from(n)),
[INFO] [stdout]     |                               ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:331:32
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 331 |             Err(_) => Command::Cmd(src),
[INFO] [stdout]     |                                ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:314:5
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 314 |     Cmd(String),
[INFO] [stdout]     |     ^^^^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:315:5
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 315 |     Response(Reply),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 312 | #[derive(Clone, Debug)]
[INFO] [stdout]     |          ^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:431:22
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 431 |             Command::Response(n) => format!("{:?}", n),
[INFO] [stdout]     |                      ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:432:22
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 432 |             Command::Cmd(s) => format!("{}", s),
[INFO] [stdout]     |                      ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 312 | #[derive(Clone, Debug)]
[INFO] [stdout]     |          ^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the function or associated item `poll_next` exists for struct `TcpStream`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/irc/transport.rs:16:20
[INFO] [stdout]     |
[INFO] [stdout] 16  |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]     |                    ^^^^^^^^^ function or associated item cannot be called on `TcpStream` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.13/src/net/tcp/stream.rs:45:5
[INFO] [stdout]     |
[INFO] [stdout] 45  |     pub struct TcpStream {
[INFO] [stdout]     |     -------------------- doesn't satisfy `tokio::net::TcpStream: Stream`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `tokio::net::TcpStream`, consider using `tokio::net::TcpStream::from_std` which returns `Result<tokio::net::TcpStream, std::io::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.13/src/net/tcp/stream.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn from_std(stream: net::TcpStream) -> io::Result<TcpStream> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `tokio::net::TcpStream: Stream`
[INFO] [stdout]             which is required by `&mut tokio::net::TcpStream: Stream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:321:37
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 321 |             b'0'..=b'9' => Command::Response(Reply::from(String::from_utf8(src.to_vec()).unwrap().parse::<u16>().unwrap())),
[INFO] [stdout]     |                                     ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:322:27
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 322 |             _ => Command::Cmd(String::from_utf8(src.to_vec()).unwrap()),
[INFO] [stdout]     |                           ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::net::TcpStream: Deref` is not satisfied
[INFO] [stdout]   --> src/irc/transport.rs:16:49
[INFO] [stdout]    |
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                              ------------------ ^^^^^^^^^^^^^^^^^^^^^ the trait `Deref` is not implemented for `tokio::net::TcpStream`
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `Pin::<Ptr>::new`
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:5
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(&self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                 +
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(&mut self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:330:31
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 330 |             Ok(n) => Command::Response(Reply::from(n)),
[INFO] [stdout]     |                               ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:331:32
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 331 |             Err(_) => Command::Cmd(src),
[INFO] [stdout]     |                                ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:26:50
[INFO] [stdout]    |
[INFO] [stdout] 26 |         TcpStream::poll_write(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                               ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 26 |         TcpStream::poll_write(std::pin::Pin::new(&mut self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:29:50
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TcpStream::poll_flush(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stdout]    |                               ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TcpStream::poll_flush(std::pin::Pin::new(&mut self.get_mut().stream), cx)
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stdout]    |                                  ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(&mut self.get_mut().stream), cx)
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Response` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:431:22
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Response` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 431 |             Command::Response(n) => format!("{:?}", n),
[INFO] [stdout]     |                      ^^^^^^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Cmd` found for enum `proto::Command` in the current scope
[INFO] [stdout]    --> src/irc/proto.rs:432:22
[INFO] [stdout]     |
[INFO] [stdout] 28  | pub enum Command {
[INFO] [stdout]     | ---------------- variant or associated item `Cmd` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 432 |             Command::Cmd(s) => format!("{}", s),
[INFO] [stdout]     |                      ^^^ variant or associated item not found in `Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the function or associated item `poll_next` exists for struct `TcpStream`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/irc/transport.rs:16:20
[INFO] [stdout]     |
[INFO] [stdout] 16  |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]     |                    ^^^^^^^^^ function or associated item cannot be called on `TcpStream` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.13/src/net/tcp/stream.rs:45:5
[INFO] [stdout]     |
[INFO] [stdout] 45  |     pub struct TcpStream {
[INFO] [stdout]     |     -------------------- doesn't satisfy `tokio::net::TcpStream: Stream`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `tokio::net::TcpStream`, consider using `tokio::net::TcpStream::from_std` which returns `Result<tokio::net::TcpStream, std::io::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.13/src/net/tcp/stream.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn from_std(stream: net::TcpStream) -> io::Result<TcpStream> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `tokio::net::TcpStream: Stream`
[INFO] [stdout]             which is required by `&mut tokio::net::TcpStream: Stream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::net::TcpStream: Deref` is not satisfied
[INFO] [stdout]   --> src/irc/transport.rs:16:49
[INFO] [stdout]    |
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                              ------------------ ^^^^^^^^^^^^^^^^^^^^^ the trait `Deref` is not implemented for `tokio::net::TcpStream`
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `Pin::<Ptr>::new`
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:5
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(&self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                 +
[INFO] [stdout] 16 |         TcpStream::poll_next(std::pin::Pin::new(&mut self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:26:50
[INFO] [stdout]    |
[INFO] [stdout] 26 |         TcpStream::poll_write(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                               ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 26 |         TcpStream::poll_write(std::pin::Pin::new(&mut self.get_mut().stream), cx, buf)
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0428, E0505, E0507, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:29:50
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TcpStream::poll_flush(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stdout]    |                               ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TcpStream::poll_flush(std::pin::Pin::new(&mut self.get_mut().stream), cx)
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/irc/transport.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stdout]    |                                  ------------------ ^^^^^^^^^^^^^^^^^^^^^ expected `&mut TcpStream`, found `TcpStream`
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/a3dffdb3a32d0dedc198f9de7d43173f3eb6727b/library/core/src/pin.rs:1191:18
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(&mut self.get_mut().stream), cx)
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `riirc` (bin "riirc") due to 28 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0428, E0505, E0507, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `riirc` (bin "riirc" test) due to 28 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6cf66bc24442ae60e020b21581b42431376ce3e3a5c025ef859ee87d52823110", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6cf66bc24442ae60e020b21581b42431376ce3e3a5c025ef859ee87d52823110", kill_on_drop: false }`
[INFO] [stdout] 6cf66bc24442ae60e020b21581b42431376ce3e3a5c025ef859ee87d52823110
