[INFO] fetching crate tokio-core 0.1.18...
[INFO] checking tokio-core-0.1.18 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate tokio-core 0.1.18 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate tokio-core 0.1.18
[INFO] finished tweaking crates.io crate tokio-core 0.1.18
[INFO] tweaked toml for crates.io crate tokio-core 0.1.18 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tokio-core 0.1.18 on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tokio-core 0.1.18 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `tokio-core` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8
[INFO] running `Command { std: "docker" "start" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `tokio-core` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.80
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]     Checking futures v0.1.30
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling miniz_oxide v0.4.3
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling syn v1.0.53
[INFO] [stderr]    Compiling serde v1.0.117
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]     Checking adler v0.2.3
[INFO] [stderr]    Compiling serde_derive v1.0.117
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]    Compiling serde_json v1.0.59
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking env_logger v0.4.3
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking net2 v0.2.36
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking http v0.1.21
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking flate2 v1.0.19
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking tokio-core v0.1.18 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `with-deprecated`
[INFO] [stdout]  --> src/channel.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | #![cfg(feature = "with-deprecated")]
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `with-deprecated` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/tcp.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let l = try!(mio::net::TcpListener::bind(addr));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/tcp.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let l = try!(mio::net::TcpListener::bind(addr));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/net/tcp.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let l = try!(mio::net::TcpListener::from_std(listener));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/net/tcp.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let io = try!(PollEvented2::new_with_handle(listener, handle.new_tokio_handle()));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/net/tcp.rs:301:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let inner = try!(mio::net::TcpStream::from_stream(stream));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/net/tcp.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |             io: try!(PollEvented2::new_with_handle(inner, handle.new_tokio_handle())),
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/net/tcp.rs:783:30
[INFO] [stdout]     |
[INFO] [stdout] 783 |             if let Some(e) = try!(stream.io.get_ref().take_error()) {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/udp/frame.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let frame = try!(self.codec.decode(&addr, &self.rd[..n]));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/udp/frame.rs:89:19
[INFO] [stdout]    |
[INFO] [stdout] 89 |             match try!(self.poll_complete()) {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/udp/mod.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let udp = try!(mio::net::UdpSocket::bind(addr));
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/udp/mod.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let io = try!(PollEvented2::new_with_handle(socket, handle.new_tokio_handle()));
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/net/udp/mod.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let udp = try!(mio::net::UdpSocket::from_socket(socket));
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reactor/mod.rs:231:27
[INFO] [stdout]     |
[INFO] [stdout] 231 |                 let res = try!(CURRENT_LOOP.set(self, || {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/reactor/mod.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::atomic::{AtomicUsize, AtomicBool, ATOMIC_USIZE_INIT, Ordering};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/reactor/mod.rs:36:36
[INFO] [stdout]    |
[INFO] [stdout] 36 | static NEXT_LOOP_ID: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]    |
[INFO] [stdout] 36 - static NEXT_LOOP_ID: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 36 + static NEXT_LOOP_ID: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/reactor/mod.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pending_spawn: Vec<Box<Future<Item = (), Error = ()>>>,
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pending_spawn: Vec<Box<dyn Future<Item = (), Error = ()>>>,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/reactor/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |     Run(Box<FnBox>),
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 |     Run(Box<dyn FnBox>),
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/tcp.rs:328:34
[INFO] [stdout]     |
[INFO] [stdout] 328 |                           -> Box<Future<Item=TcpStream, Error=io::Error> + Send> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 328 |                           -> Box<dyn Future<Item=TcpStream, Error=io::Error> + Send> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/net/tcp.rs:574:9
[INFO] [stdout]     |
[INFO] [stdout] 574 |         <&TcpStream>::read_buf(&mut &*self, buf)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `tokio_io::AsyncRead::read_buf(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] help: add `#![feature(read_buf)]` to the crate attributes to enable `std::io::Read::read_buf`
[INFO] [stdout]    --> src/lib.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 + #![feature(read_buf)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tokio::runtime::Runtime::reactor`: there is now a reactor per worker thread
[INFO] [stdout]    --> src/reactor/mod.rs:186:33
[INFO] [stdout]     |
[INFO] [stdout] 186 |             new_handle: self.rt.reactor().clone(),
[INFO] [stdout]     |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tokio::runtime::Runtime::reactor`: there is now a reactor per worker thread
[INFO] [stdout]    --> src/reactor/mod.rs:214:31
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let handle1 = self.rt.reactor().clone();
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tokio::runtime::Runtime::reactor`: there is now a reactor per worker thread
[INFO] [stdout]    --> src/reactor/mod.rs:215:31
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let handle2 = self.rt.reactor().clone();
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tokio::runtime::Runtime::reactor`: there is now a reactor per worker thread
[INFO] [stdout]    --> src/reactor/mod.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let handle = self.rt.reactor().clone();
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/copy.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let n = try_nb!(self.reader.read(&mut self.buf));
[INFO] [stdout]    |                         ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/copy.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let i = try_nb!(self.writer.write(&self.buf[self.pos..self.cap]));
[INFO] [stdout]    |                         --------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/copy.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 try_nb!(self.writer.flush());
[INFO] [stdout]    |                 ---------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/io/frame.rs:394:21
[INFO] [stdout]     |
[INFO] [stdout] 394 |             let n = try_nb!(self.upstream.write(&self.wr));
[INFO] [stdout]     |                     -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/io/frame.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         try_nb!(self.upstream.flush());
[INFO] [stdout]     |         ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/flush.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         try_nb!(self.a.as_mut().unwrap().flush());
[INFO] [stdout]    |         ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/read_exact.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |                     let n = try_nb!(a.read(&mut buf[*pos..]));
[INFO] [stdout]    |                             --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/read_to_end.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 try_nb!(a.read_to_end(buf));
[INFO] [stdout]    |                 --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/read.rs:43:59
[INFO] [stdout]    |
[INFO] [stdout] 43 |             State::Pending { ref mut rd, ref mut buf } => try_nb!(rd.read(&mut buf.as_mut()[..])),
[INFO] [stdout]    |                                                           --------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/read_until.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 try_nb!(a.read_until(byte, buf));
[INFO] [stdout]    |                 -------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/io/write_all.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     let n = try_nb!(a.write(&buf[*pos..]));
[INFO] [stdout]    |                             ------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/net/tcp.rs:224:30
[INFO] [stdout]     |
[INFO] [stdout] 224 |         Ok(Async::Ready(Some(try_nb!(self.inner.accept()))))
[INFO] [stdout]     |                              ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]   --> src/io/mod.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout] 41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/net/udp/frame.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let (n, addr) = try_nb!(self.socket.recv_from(&mut self.rd));
[INFO] [stdout]    |                         -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/net/udp/frame.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let n = try_nb!(self.socket.send_to(&self.wr, &self.out_addr));
[INFO] [stdout]     |                 ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/net/udp/mod.rs:418:21
[INFO] [stdout]     |
[INFO] [stdout] 418 |             let n = try_nb!(sock.send_to(buf.as_ref(), addr));
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::io::Error`
[INFO] [stdout]    --> src/io/mod.rs:41:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! try_nb {
[INFO] [stdout] ...
[INFO] [stdout]  41 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/net/udp/mod.rs:447:13
[INFO] [stdout]     |
[INFO] [stdout] 447 |             try_nb!(socket.recv_from(buf.as_mut()))
[INFO] [stdout]     |             --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<std::io::Error as Into<std::io::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/frame.rs:142:20
[INFO] [stdout]     |
[INFO] [stdout] 142 |     pub fn get_mut(&mut self) -> EasyBufMut {
[INFO] [stdout]     |                    ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 142 |     pub fn get_mut(&mut self) -> EasyBufMut<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tokio-core` (lib) due to 16 previous errors; 25 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8", kill_on_drop: false }`
[INFO] [stdout] f7f7e33598aa6fb0f8a9de9a34e694cfce9d5c7292768e59a70534744468bfb8
