[INFO] updating cached repository https://github.com/HotelCalifornia/riirc
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 9b6981ad12165b9fcaca7176030418223b10569c
[INFO] checking HotelCalifornia/riirc against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHotelCalifornia%2Friirc" "/workspace/builds/worker-3/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/HotelCalifornia/riirc on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[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-3/source/Cargo.toml
[INFO] crate git repo https://github.com/HotelCalifornia/riirc already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 2260eea98a309be0a2160fb0d13e6aa4b958dd04fd5684038724c4ac75076958
[INFO] running `"docker" "start" "-a" "2260eea98a309be0a2160fb0d13e6aa4b958dd04fd5684038724c4ac75076958"`
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]     Checking futures-channel v0.3.4
[INFO] [stderr]    Compiling serde v1.0.105
[INFO] [stderr]     Checking signal-hook-registry v1.2.0
[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 futures-util v0.3.4
[INFO] [stderr]     Checking num_enum v0.4.3
[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] [stderr] error[E0428]: the name `Command` is defined multiple times
[INFO] [stderr]    --> src/irc/proto.rs:313:1
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- previous definition of the type `Command` here
[INFO] [stderr] ...
[INFO] [stderr] 313 | pub enum Command {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^ `Command` redefined here
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Command` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ready`
[INFO] [stderr]  --> src/irc/transport.rs:1:15
[INFO] [stderr]   |
[INFO] [stderr] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio_util::codec::Framed`
[INFO] [stderr]  --> src/irc/transport.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use tokio_util::codec::Framed;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time`
[INFO] [stderr]  --> src/irc/transport.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::time;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `impl core::future::future::Future: tokio::io::async_read::AsyncRead` is not satisfied
[INFO] [stderr]   --> src/irc/mod.rs:17:66
[INFO] [stderr]    |
[INFO] [stderr] 17 |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::async_read::AsyncRead` is not implemented for `impl core::future::future::Future`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `impl core::future::future::Future: tokio::io::async_write::AsyncWrite` is not satisfied
[INFO] [stderr]   --> src/irc/mod.rs:17:66
[INFO] [stderr]    |
[INFO] [stderr] 17 |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::async_write::AsyncWrite` is not implemented for `impl core::future::future::Future`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `split` found for struct `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>` in the current scope
[INFO] [stderr]    --> src/irc/mod.rs:18:37
[INFO] [stderr]     |
[INFO] [stderr] 18  |           let (sink, stream) = stream.split();
[INFO] [stderr]     |                                       ^^^^^ method not found in `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>`
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/pin-project-lite-0.1.4/src/lib.rs:241:9
[INFO] [stderr]     |
[INFO] [stderr] 241 | /         $vis struct $ident
[INFO] [stderr] 242 | |             $(< $( $lifetime $(: $lifetime_bound)? ,)* $( $generics $(: $generics_bound)? $(: ?$generics_unsized_bound)? $(: $generics_lifetime_bound)? $(= $generics_default)? ,)* >)?
[INFO] [stderr] 243 | |             $(where
[INFO] [stderr] 244 | |                 $($where_clause_ty: $where_clause_bound),*
[INFO] [stderr] ...   |
[INFO] [stderr] 249 | |             ),+
[INFO] [stderr] 250 | |         }
[INFO] [stderr]     | |         -
[INFO] [stderr]     | |         |
[INFO] [stderr]     | |_________doesn't satisfy `_: futures_core::stream::Stream`
[INFO] [stderr]     |           doesn't satisfy `_: futures_util::stream::stream::StreamExt`
[INFO] [stderr]     |
[INFO] [stderr]     = note: the method `split` exists but the following trait bounds were not satisfied:
[INFO] [stderr]             `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr]             `&tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `&tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr]             `&mut tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `&mut tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]   --> src/irc/mod.rs:22:64
[INFO] [stderr]    |
[INFO] [stderr] 22 |             if let Ok(proto::Message {command: proto::Command::Cmd("PING"), params: params, ..}) = message {
[INFO] [stderr]    |                                                                ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/irc/proto.rs:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub enum Command {
[INFO] [stderr]    | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:62:26
[INFO] [stderr]    |
[INFO] [stderr] 62 |             params: vec![self.user.nick],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `std::string::String`, which does not implement the `Copy` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:62:26
[INFO] [stderr]    |
[INFO] [stderr] 58 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 62 |             params: vec![self.user.nick],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.name` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:26
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          move occurs because `self.user.name` has type `std::option::Option<std::string::String>`, which does not implement the `Copy` trait
[INFO] [stderr]    |                          help: consider borrowing the `Option`'s content: `self.user.name.as_ref()`
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.name` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:26
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move out of `self.user.name` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `std::string::String`, which does not implement the `Copy` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.real_name` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:103
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                                                                       |
[INFO] [stderr]    |                                                                                                       move occurs because `self.user.real_name` has type `std::option::Option<std::string::String>`, which does not implement the `Copy` trait
[INFO] [stderr]    |                                                                                                       help: consider borrowing the `Option`'s content: `self.user.real_name.as_ref()`
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.real_name` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:103
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^ move out of `self.user.real_name` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:314:5
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 314 |     Cmd(String),
[INFO] [stderr]     |     ^^^^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:315:5
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 315 |     Response(Reply),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:312:10
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 312 | #[derive(Clone, Debug)]
[INFO] [stderr]     |          ^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:312:10
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 312 | #[derive(Clone, Debug)]
[INFO] [stderr]     |          ^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:321:37
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 321 |             b'0'..=b'9' => Command::Response(Reply::from(String::from_utf8(src.to_vec()).unwrap().parse::<u16>().unwrap())),
[INFO] [stderr]     |                                     ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:322:27
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 322 |             _ => Command::Cmd(String::from_utf8(src.to_vec()).unwrap()),
[INFO] [stderr]     |                           ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:330:31
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 330 |             Ok(n) => Command::Response(Reply::from(n)),
[INFO] [stderr]     |                               ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:331:32
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 331 |             Err(_) => Command::Cmd(src),
[INFO] [stderr]     |                                ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:431:22
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 431 |             Command::Response(n) => format!("{:?}", n),
[INFO] [stderr]     |                      ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:432:22
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 432 |             Command::Cmd(s) => format!("{}", s),
[INFO] [stderr]     |                      ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `poll_next` found for struct `tokio::net::tcp::stream::TcpStream` in the current scope
[INFO] [stderr]   --> src/irc/transport.rs:16:20
[INFO] [stderr]    |
[INFO] [stderr] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                    ^^^^^^^^^
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    function or associated item not found in `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                    help: there is an associated function with a similar name: `poll_peek`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/net/tcp/stream.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub struct TcpStream {
[INFO] [stderr]    |     -------------------- doesn't satisfy `_: futures_core::stream::Stream`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the method `poll_next` exists but the following trait bounds were not satisfied:
[INFO] [stderr]            `tokio::net::tcp::stream::TcpStream: futures_core::stream::Stream`
[INFO] [stderr]            which is required by `&mut tokio::net::tcp::stream::TcpStream: futures_core::stream::Stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `tokio::net::tcp::stream::TcpStream: std::ops::Deref` is not satisfied
[INFO] [stderr]   --> src/irc/transport.rs:16:49
[INFO] [stderr]    |
[INFO] [stderr] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^ the trait `std::ops::Deref` is not implemented for `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required by `std::pin::Pin::<P>::new`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:26:50
[INFO] [stderr]    |
[INFO] [stderr] 26 |         TcpStream::poll_write(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                  |
[INFO] [stderr]    |                                                  expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                  help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:29:50
[INFO] [stderr]    |
[INFO] [stderr] 29 |         TcpStream::poll_flush(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                  |
[INFO] [stderr]    |                                                  expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                  help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:32:53
[INFO] [stderr]    |
[INFO] [stderr] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stderr]    |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                     |
[INFO] [stderr]    |                                                     expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                     help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Stream`
[INFO] [stderr]  --> src/irc/transport.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stderr]   |                      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 28 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0428, E0505, E0507, E0599.
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error[E0428]: the name `Command` is defined multiple times
[INFO] [stderr]    --> src/irc/proto.rs:313:1
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- previous definition of the type `Command` here
[INFO] [stderr] ...
[INFO] [stderr] 313 | pub enum Command {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^ `Command` redefined here
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Command` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] error: could not compile `riirc`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: unused import: `ready`
[INFO] [stderr]  --> src/irc/transport.rs:1:15
[INFO] [stderr]   |
[INFO] [stderr] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio_util::codec::Framed`
[INFO] [stderr]  --> src/irc/transport.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use tokio_util::codec::Framed;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time`
[INFO] [stderr]  --> src/irc/transport.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::time;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `impl core::future::future::Future: tokio::io::async_read::AsyncRead` is not satisfied
[INFO] [stderr]   --> src/irc/mod.rs:17:66
[INFO] [stderr]    |
[INFO] [stderr] 17 |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::async_read::AsyncRead` is not implemented for `impl core::future::future::Future`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `impl core::future::future::Future: tokio::io::async_write::AsyncWrite` is not satisfied
[INFO] [stderr]   --> src/irc/mod.rs:17:66
[INFO] [stderr]    |
[INFO] [stderr] 17 |         let stream = codec::ServerMessageCodec::default().framed(TcpStream::connect(addr));
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `tokio::io::async_write::AsyncWrite` is not implemented for `impl core::future::future::Future`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `split` found for struct `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>` in the current scope
[INFO] [stderr]    --> src/irc/mod.rs:18:37
[INFO] [stderr]     |
[INFO] [stderr] 18  |           let (sink, stream) = stream.split();
[INFO] [stderr]     |                                       ^^^^^ method not found in `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>`
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/pin-project-lite-0.1.4/src/lib.rs:241:9
[INFO] [stderr]     |
[INFO] [stderr] 241 | /         $vis struct $ident
[INFO] [stderr] 242 | |             $(< $( $lifetime $(: $lifetime_bound)? ,)* $( $generics $(: $generics_bound)? $(: ?$generics_unsized_bound)? $(: $generics_lifetime_bound)? $(= $generics_default)? ,)* >)?
[INFO] [stderr] 243 | |             $(where
[INFO] [stderr] 244 | |                 $($where_clause_ty: $where_clause_bound),*
[INFO] [stderr] ...   |
[INFO] [stderr] 249 | |             ),+
[INFO] [stderr] 250 | |         }
[INFO] [stderr]     | |         -
[INFO] [stderr]     | |         |
[INFO] [stderr]     | |_________doesn't satisfy `_: futures_core::stream::Stream`
[INFO] [stderr]     |           doesn't satisfy `_: futures_util::stream::stream::StreamExt`
[INFO] [stderr]     |
[INFO] [stderr]     = note: the method `split` exists but the following trait bounds were not satisfied:
[INFO] [stderr]             `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr]             `&tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `&tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr]             `&mut tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_core::stream::Stream`
[INFO] [stderr]             which is required by `&mut tokio_util::codec::framed::Framed<impl core::future::future::Future, irc::codec::ServerMessageCodec>: futures_util::stream::stream::StreamExt`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]   --> src/irc/mod.rs:22:64
[INFO] [stderr]    |
[INFO] [stderr] 22 |             if let Ok(proto::Message {command: proto::Command::Cmd("PING"), params: params, ..}) = message {
[INFO] [stderr]    |                                                                ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/irc/proto.rs:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub enum Command {
[INFO] [stderr]    | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:62:26
[INFO] [stderr]    |
[INFO] [stderr] 62 |             params: vec![self.user.nick],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `std::string::String`, which does not implement the `Copy` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:62:26
[INFO] [stderr]    |
[INFO] [stderr] 58 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 62 |             params: vec![self.user.nick],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.name` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:26
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          move occurs because `self.user.name` has type `std::option::Option<std::string::String>`, which does not implement the `Copy` trait
[INFO] [stderr]    |                          help: consider borrowing the `Option`'s content: `self.user.name.as_ref()`
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.name` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:26
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^ move out of `self.user.name` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.nick` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^ move occurs because `self.user.nick` has type `std::string::String`, which does not implement the `Copy` trait
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.nick` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^ move out of `self.user.nick` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0507]: cannot move out of `self.user.real_name` which is behind a mutable reference
[INFO] [stderr]   --> src/irc/mod.rs:68:103
[INFO] [stderr]    |
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                                                                       |
[INFO] [stderr]    |                                                                                                       move occurs because `self.user.real_name` has type `std::option::Option<std::string::String>`, which does not implement the `Copy` trait
[INFO] [stderr]    |                                                                                                       help: consider borrowing the `Option`'s content: `self.user.real_name.as_ref()`
[INFO] [stderr] 
[INFO] [stderr] error[E0505]: cannot move out of `self.user.real_name` because it is borrowed
[INFO] [stderr]   --> src/irc/mod.rs:68:103
[INFO] [stderr]    |
[INFO] [stderr] 64 |         self.send(proto::Message {
[INFO] [stderr]    |         ---- ---- borrow later used by call
[INFO] [stderr]    |         |
[INFO] [stderr]    |         borrow of `*self` occurs here
[INFO] [stderr] ...
[INFO] [stderr] 68 |             params: vec![self.user.name.ok_or(self.user.nick)?, String::from("0"), String::from("*"), self.user.real_name.ok_or("Anonymous")?],
[INFO] [stderr]    |                                                                                                       ^^^^^^^^^^^^^^^^^^^ move out of `self.user.real_name` occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:314:5
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 314 |     Cmd(String),
[INFO] [stderr]     |     ^^^^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:315:5
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 315 |     Response(Reply),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:312:10
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 312 | #[derive(Clone, Debug)]
[INFO] [stderr]     |          ^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:312:10
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 312 | #[derive(Clone, Debug)]
[INFO] [stderr]     |          ^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:321:37
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 321 |             b'0'..=b'9' => Command::Response(Reply::from(String::from_utf8(src.to_vec()).unwrap().parse::<u16>().unwrap())),
[INFO] [stderr]     |                                     ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:322:27
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 322 |             _ => Command::Cmd(String::from_utf8(src.to_vec()).unwrap()),
[INFO] [stderr]     |                           ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:330:31
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 330 |             Ok(n) => Command::Response(Reply::from(n)),
[INFO] [stderr]     |                               ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:331:32
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 331 |             Err(_) => Command::Cmd(src),
[INFO] [stderr]     |                                ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Response` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:431:22
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Response` not found here
[INFO] [stderr] ...
[INFO] [stderr] 431 |             Command::Response(n) => format!("{:?}", n),
[INFO] [stderr]     |                      ^^^^^^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `Cmd` found for enum `irc::proto::Command` in the current scope
[INFO] [stderr]    --> src/irc/proto.rs:432:22
[INFO] [stderr]     |
[INFO] [stderr] 28  | pub enum Command {
[INFO] [stderr]     | ---------------- variant or associated item `Cmd` not found here
[INFO] [stderr] ...
[INFO] [stderr] 432 |             Command::Cmd(s) => format!("{}", s),
[INFO] [stderr]     |                      ^^^ variant or associated item not found in `irc::proto::Command`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `poll_next` found for struct `tokio::net::tcp::stream::TcpStream` in the current scope
[INFO] [stderr]   --> src/irc/transport.rs:16:20
[INFO] [stderr]    |
[INFO] [stderr] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                    ^^^^^^^^^
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    function or associated item not found in `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                    help: there is an associated function with a similar name: `poll_peek`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/net/tcp/stream.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub struct TcpStream {
[INFO] [stderr]    |     -------------------- doesn't satisfy `_: futures_core::stream::Stream`
[INFO] [stderr]    |
[INFO] [stderr]    = note: the method `poll_next` exists but the following trait bounds were not satisfied:
[INFO] [stderr]            `tokio::net::tcp::stream::TcpStream: futures_core::stream::Stream`
[INFO] [stderr]            which is required by `&mut tokio::net::tcp::stream::TcpStream: futures_core::stream::Stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `tokio::net::tcp::stream::TcpStream: std::ops::Deref` is not satisfied
[INFO] [stderr]   --> src/irc/transport.rs:16:49
[INFO] [stderr]    |
[INFO] [stderr] 16 |         TcpStream::poll_next(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^ the trait `std::ops::Deref` is not implemented for `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required by `std::pin::Pin::<P>::new`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:26:50
[INFO] [stderr]    |
[INFO] [stderr] 26 |         TcpStream::poll_write(std::pin::Pin::new(self.get_mut().stream), cx, buf)
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                  |
[INFO] [stderr]    |                                                  expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                  help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:29:50
[INFO] [stderr]    |
[INFO] [stderr] 29 |         TcpStream::poll_flush(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                  |
[INFO] [stderr]    |                                                  expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                  help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/irc/transport.rs:32:53
[INFO] [stderr]    |
[INFO] [stderr] 32 |         TcpStream::poll_shutdown(std::pin::Pin::new(self.get_mut().stream), cx)
[INFO] [stderr]    |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                     |
[INFO] [stderr]    |                                                     expected `&mut tokio::net::tcp::stream::TcpStream`, found struct `tokio::net::tcp::stream::TcpStream`
[INFO] [stderr]    |                                                     help: consider mutably borrowing here: `&mut self.get_mut().stream`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Stream`
[INFO] [stderr]  --> src/irc/transport.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use futures::{ready, Stream, task::Poll};
[INFO] [stderr]   |                      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 28 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0428, E0505, E0507, E0599.
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `riirc`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "2260eea98a309be0a2160fb0d13e6aa4b958dd04fd5684038724c4ac75076958"`
[INFO] running `"docker" "rm" "-f" "2260eea98a309be0a2160fb0d13e6aa4b958dd04fd5684038724c4ac75076958"`
[INFO] [stdout] 2260eea98a309be0a2160fb0d13e6aa4b958dd04fd5684038724c4ac75076958
