[INFO] fetching crate fastcgi 1.0.0...
[INFO] testing fastcgi-1.0.0 against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] extracting crate fastcgi 1.0.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate fastcgi 1.0.0
[INFO] finished tweaking crates.io crate fastcgi 1.0.0
[INFO] tweaked toml for crates.io crate fastcgi 1.0.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate fastcgi 1.0.0 on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 41b55e133f43318b969d5baac72df7bec24ec2d5af313219d5f1971509930c73
[INFO] running `Command { std: "docker" "start" "-a" "41b55e133f43318b969d5baac72df7bec24ec2d5af313219d5f1971509930c73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41b55e133f43318b969d5baac72df7bec24ec2d5af313219d5f1971509930c73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41b55e133f43318b969d5baac72df7bec24ec2d5af313219d5f1971509930c73", kill_on_drop: false }`
[INFO] [stdout] 41b55e133f43318b969d5baac72df7bec24ec2d5af313219d5f1971509930c73
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 80fb05dfd1d818c0c306706fa30db8abc8eff6f40094a0e0817c4a9fd596deb9
[INFO] running `Command { std: "docker" "start" "-a" "80fb05dfd1d818c0c306706fa30db8abc8eff6f40094a0e0817c4a9fd596deb9", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling fastcgi v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     try!((&mut r).take(1).read_to_end(&mut buf));
[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/lib.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |             assert!(try!((&mut r).take(3).read_to_end(&mut buf)) == 3);
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:111:19
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let key_len = try!(read_len(r));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let value_len = try!(read_len(r));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |     assert!(try!((&mut r).take(key_len as u64).read_to_string(&mut key)) == key_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |     assert!(try!((&mut r).take(value_len as u64).read_to_string(&mut value)) == value_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |             params.extend(try!(read_pairs(r)).into_iter());
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         try!(w.write_all(&[n as u8]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         try!(w.write_all(&buf));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(write_len(w, key.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         try!(write_len(w, value.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         try!(write!(w, "{}{}", key, value));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     try!(w.write_all(&[
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     try!(w.write_all(content));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |     assert!(try!(r.take(HEADER_LEN as u64).read_to_end(&mut header)) == HEADER_LEN);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     assert!(try!(r.take(content_length as u64).read_to_end(&mut content)) == content_length as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     assert!(try!(r.take(padding_length as u64).read_to_end(&mut Vec::with_capacity(padding_length as usize))) == padding_length as ...
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 try!(write_record(w, 3, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 try!(write_record(w, 6, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 try!(write_record(w, 7, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 try!(write_pairs(&mut content, items));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 try!(write_record(w, 10, 0, &content.into_inner()));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 try!(write_record(w, 11, 0, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:226:50
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let (record_type, request_id, content) = try!(read_record(r));
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:250:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 let items = try!(read_pairs(&mut Cursor::new(content)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:287:24
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 match (try!(Record::receive(&mut sock)), self.req.filter_data) {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:289:25
[INFO] [stdout]     |
[INFO] [stdout] 289 |                         try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:292:25
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         try!(
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |                         try!(Record::EndRequest {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             try!(chunk.read(buf))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:340:29
[INFO] [stdout]     |
[INFO] [stdout] 340 |             let mut chunk = try!(self.fill_buf());
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | writer!(Stdout);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | writer!(Stderr);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:419:19
[INFO] [stdout]     |
[INFO] [stdout] 419 |             match try!(Record::receive(&mut sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:421:21
[INFO] [stdout]     |
[INFO] [stdout] 421 |                     try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     try!(Record::GetValuesResult(get_values(keys)).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 430 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:446:19
[INFO] [stdout]     |
[INFO] [stdout] 446 |             match try!(Record::receive(&mut &*sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:448:21
[INFO] [stdout]     |
[INFO] [stdout] 448 |                     try!(Record::UnknownType(rec_type).send(&mut &*sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:451:21
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     try!(
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:477:39
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         params.extend(try!(read_pairs(&mut Cursor::new(&buf))));
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:403:27
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub type Params<'a> = Box<Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] 403 | pub type Params<'a> = Box<dyn Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:132:24
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn write_len<W: Write>(mut w: &mut W, n: u32) -> io::Result<()> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             mem::transmute::<u32, [u8; 4]>((0x80000000 & n).to_be())
[INFO] [stdout]     |             ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `u32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         mem::transmute::<_, [u8; 2]>(request_id.to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         mem::transmute::<_, [u8; 2]>((content.len() as u16).to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:177:44
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let request_id = unsafe { u16::from_be(mem::transmute([header[2], header[3]])) };
[INFO] [stdout]     |                                            --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:178:48
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let content_length = unsafe { u16::from_be(mem::transmute([header[4], header[5]])) };
[INFO] [stdout]     |                                                --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:191:21
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     mem::transmute::<_, [u8; 4]>(app_status.to_be())
[INFO] [stdout]     |                     ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: replace this with: `i32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:230:34
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     u16::from_be(mem::transmute([content[0], content[1]]))
[INFO] [stdout]     |                                  --------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:510:19
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn params(&self) -> Params {
[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] 510 |     pub fn params(&self) -> Params<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:520:19
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/lib.rs:578:30
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!(e.to_string()),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!("{}", e.to_string()),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] running `Command { std: "docker" "inspect" "80fb05dfd1d818c0c306706fa30db8abc8eff6f40094a0e0817c4a9fd596deb9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "80fb05dfd1d818c0c306706fa30db8abc8eff6f40094a0e0817c4a9fd596deb9", kill_on_drop: false }`
[INFO] [stdout] 80fb05dfd1d818c0c306706fa30db8abc8eff6f40094a0e0817c4a9fd596deb9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 9e7f66916c15d85b88d0df844b085ca806914549aad9b94a6a4424ff987c93b7
[INFO] running `Command { std: "docker" "start" "-a" "9e7f66916c15d85b88d0df844b085ca806914549aad9b94a6a4424ff987c93b7", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     try!((&mut r).take(1).read_to_end(&mut buf));
[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/lib.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |             assert!(try!((&mut r).take(3).read_to_end(&mut buf)) == 3);
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:111:19
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let key_len = try!(read_len(r));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let value_len = try!(read_len(r));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |     assert!(try!((&mut r).take(key_len as u64).read_to_string(&mut key)) == key_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |     assert!(try!((&mut r).take(value_len as u64).read_to_string(&mut value)) == value_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |             params.extend(try!(read_pairs(r)).into_iter());
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         try!(w.write_all(&[n as u8]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         try!(w.write_all(&buf));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(write_len(w, key.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         try!(write_len(w, value.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         try!(write!(w, "{}{}", key, value));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     try!(w.write_all(&[
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     try!(w.write_all(content));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |     assert!(try!(r.take(HEADER_LEN as u64).read_to_end(&mut header)) == HEADER_LEN);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     assert!(try!(r.take(content_length as u64).read_to_end(&mut content)) == content_length as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     assert!(try!(r.take(padding_length as u64).read_to_end(&mut Vec::with_capacity(padding_length as usize))) == padding_length as ...
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 try!(write_record(w, 3, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 try!(write_record(w, 6, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 try!(write_record(w, 7, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 try!(write_pairs(&mut content, items));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 try!(write_record(w, 10, 0, &content.into_inner()));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 try!(write_record(w, 11, 0, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:226:50
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let (record_type, request_id, content) = try!(read_record(r));
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:250:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 let items = try!(read_pairs(&mut Cursor::new(content)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:287:24
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 match (try!(Record::receive(&mut sock)), self.req.filter_data) {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:289:25
[INFO] [stdout]     |
[INFO] [stdout] 289 |                         try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:292:25
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         try!(
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |                         try!(Record::EndRequest {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             try!(chunk.read(buf))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:340:29
[INFO] [stdout]     |
[INFO] [stdout] 340 |             let mut chunk = try!(self.fill_buf());
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | writer!(Stdout);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | writer!(Stderr);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:419:19
[INFO] [stdout]     |
[INFO] [stdout] 419 |             match try!(Record::receive(&mut sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:421:21
[INFO] [stdout]     |
[INFO] [stdout] 421 |                     try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     try!(Record::GetValuesResult(get_values(keys)).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 430 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:446:19
[INFO] [stdout]     |
[INFO] [stdout] 446 |             match try!(Record::receive(&mut &*sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:448:21
[INFO] [stdout]     |
[INFO] [stdout] 448 |                     try!(Record::UnknownType(rec_type).send(&mut &*sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:451:21
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     try!(
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:477:39
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         params.extend(try!(read_pairs(&mut Cursor::new(&buf))));
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:403:27
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub type Params<'a> = Box<Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] 403 | pub type Params<'a> = Box<dyn Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:132:24
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn write_len<W: Write>(mut w: &mut W, n: u32) -> io::Result<()> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             mem::transmute::<u32, [u8; 4]>((0x80000000 & n).to_be())
[INFO] [stdout]     |             ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `u32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         mem::transmute::<_, [u8; 2]>(request_id.to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         mem::transmute::<_, [u8; 2]>((content.len() as u16).to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:177:44
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let request_id = unsafe { u16::from_be(mem::transmute([header[2], header[3]])) };
[INFO] [stdout]     |                                            --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:178:48
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let content_length = unsafe { u16::from_be(mem::transmute([header[4], header[5]])) };
[INFO] [stdout]     |                                                --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:191:21
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     mem::transmute::<_, [u8; 4]>(app_status.to_be())
[INFO] [stdout]     |                     ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: replace this with: `i32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:230:34
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     u16::from_be(mem::transmute([content[0], content[1]]))
[INFO] [stdout]     |                                  --------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:510:19
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn params(&self) -> Params {
[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] 510 |     pub fn params(&self) -> Params<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:520:19
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fastcgi v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/lib.rs:578:30
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!(e.to_string()),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!("{}", e.to_string()),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     try!((&mut r).take(1).read_to_end(&mut buf));
[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/lib.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |             assert!(try!((&mut r).take(3).read_to_end(&mut buf)) == 3);
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:111:19
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let key_len = try!(read_len(r));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let value_len = try!(read_len(r));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |     assert!(try!((&mut r).take(key_len as u64).read_to_string(&mut key)) == key_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |     assert!(try!((&mut r).take(value_len as u64).read_to_string(&mut value)) == value_len as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |             params.extend(try!(read_pairs(r)).into_iter());
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         try!(w.write_all(&[n as u8]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         try!(w.write_all(&buf));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(write_len(w, key.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         try!(write_len(w, value.len() as u32));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         try!(write!(w, "{}{}", key, value));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     try!(w.write_all(&[
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     try!(w.write_all(content));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |     assert!(try!(r.take(HEADER_LEN as u64).read_to_end(&mut header)) == HEADER_LEN);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     assert!(try!(r.take(content_length as u64).read_to_end(&mut content)) == content_length as usize);
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     assert!(try!(r.take(padding_length as u64).read_to_end(&mut Vec::with_capacity(padding_length as usize))) == padding_length as ...
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 try!(write_record(w, 3, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 try!(write_record(w, 6, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 try!(write_record(w, 7, request_id, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 try!(write_pairs(&mut content, items));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 try!(write_record(w, 10, 0, &content.into_inner()));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 try!(write_record(w, 11, 0, &content));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:226:50
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let (record_type, request_id, content) = try!(read_record(r));
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:250:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 let items = try!(read_pairs(&mut Cursor::new(content)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:287:24
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 match (try!(Record::receive(&mut sock)), self.req.filter_data) {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:289:25
[INFO] [stdout]     |
[INFO] [stdout] 289 |                         try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:292:25
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         try!(
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |                         try!(Record::EndRequest {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             try!(chunk.read(buf))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:340:29
[INFO] [stdout]     |
[INFO] [stdout] 340 |             let mut chunk = try!(self.fill_buf());
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | writer!(Stdout);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:367:25
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | writer!(Stderr);
[INFO] [stdout]     | --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:419:19
[INFO] [stdout]     |
[INFO] [stdout] 419 |             match try!(Record::receive(&mut sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:421:21
[INFO] [stdout]     |
[INFO] [stdout] 421 |                     try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     try!(Record::GetValuesResult(get_values(keys)).send(&mut sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 430 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:446:19
[INFO] [stdout]     |
[INFO] [stdout] 446 |             match try!(Record::receive(&mut &*sock)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:448:21
[INFO] [stdout]     |
[INFO] [stdout] 448 |                     try!(Record::UnknownType(rec_type).send(&mut &*sock));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:451:21
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     try!(
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     try!(Record::EndRequest {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:477:39
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         params.extend(try!(read_pairs(&mut Cursor::new(&buf))));
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:403:27
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub type Params<'a> = Box<Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] 403 | pub type Params<'a> = Box<dyn Iterator<Item = (String, String)> + 'a>;
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:132:24
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn write_len<W: Write>(mut w: &mut W, n: u32) -> io::Result<()> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             mem::transmute::<u32, [u8; 4]>((0x80000000 & n).to_be())
[INFO] [stdout]     |             ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `u32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         mem::transmute::<_, [u8; 2]>(request_id.to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         mem::transmute::<_, [u8; 2]>((content.len() as u16).to_be())
[INFO] [stdout]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:177:44
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let request_id = unsafe { u16::from_be(mem::transmute([header[2], header[3]])) };
[INFO] [stdout]     |                                            --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:178:48
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let content_length = unsafe { u16::from_be(mem::transmute([header[4], header[5]])) };
[INFO] [stdout]     |                                                --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:191:21
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     mem::transmute::<_, [u8; 4]>(app_status.to_be())
[INFO] [stdout]     |                     ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: replace this with: `i32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/lib.rs:230:34
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     u16::from_be(mem::transmute([content[0], content[1]]))
[INFO] [stdout]     |                                  --------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: replace this with: `u16::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:510:19
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn params(&self) -> Params {
[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] 510 |     pub fn params(&self) -> Params<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn stdin(&mut self) -> Stdin<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:520:19
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn stdout(&mut self) -> Stdout<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 525 |     pub fn stderr(&mut self) -> Stderr<'_> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/lib.rs:578:30
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!(e.to_string()),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 578 |             Err(e) => panic!("{}", e.to_string()),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] running `Command { std: "docker" "inspect" "9e7f66916c15d85b88d0df844b085ca806914549aad9b94a6a4424ff987c93b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e7f66916c15d85b88d0df844b085ca806914549aad9b94a6a4424ff987c93b7", kill_on_drop: false }`
[INFO] [stdout] 9e7f66916c15d85b88d0df844b085ca806914549aad9b94a6a4424ff987c93b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 57dcbaa3f994d2b1ee7483201b16e0c99a51124b58af43685b022aee8a7d0906
[INFO] running `Command { std: "docker" "start" "-a" "57dcbaa3f994d2b1ee7483201b16e0c99a51124b58af43685b022aee8a7d0906", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 92 |     try!((&mut r).take(1).read_to_end(&mut buf));
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:95:21
[INFO] [stderr]    |
[INFO] [stderr] 95 |             assert!(try!((&mut r).take(3).read_to_end(&mut buf)) == 3);
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:111:19
[INFO] [stderr]     |
[INFO] [stderr] 111 |     let key_len = try!(read_len(r));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:112:21
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let value_len = try!(read_len(r));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |     assert!(try!((&mut r).take(key_len as u64).read_to_string(&mut key)) == key_len as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:116:13
[INFO] [stderr]     |
[INFO] [stderr] 116 |     assert!(try!((&mut r).take(value_len as u64).read_to_string(&mut value)) == value_len as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:125:27
[INFO] [stderr]     |
[INFO] [stderr] 125 |             params.extend(try!(read_pairs(r)).into_iter());
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:134:9
[INFO] [stderr]     |
[INFO] [stderr] 134 |         try!(w.write_all(&[n as u8]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |         try!(w.write_all(&buf));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |         try!(write_len(w, key.len() as u32));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:148:9
[INFO] [stderr]     |
[INFO] [stderr] 148 |         try!(write_len(w, value.len() as u32));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 |         try!(write!(w, "{}{}", key, value));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:163:5
[INFO] [stderr]     |
[INFO] [stderr] 163 |     try!(w.write_all(&[
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:167:5
[INFO] [stderr]     |
[INFO] [stderr] 167 |     try!(w.write_all(content));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:174:13
[INFO] [stderr]     |
[INFO] [stderr] 174 |     assert!(try!(r.take(HEADER_LEN as u64).read_to_end(&mut header)) == HEADER_LEN);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |     assert!(try!(r.take(content_length as u64).read_to_end(&mut content)) == content_length as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:182:13
[INFO] [stderr]     |
[INFO] [stderr] 182 |     assert!(try!(r.take(padding_length as u64).read_to_end(&mut Vec::with_capacity(padding_length as usize))) == padding_length as ...
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:203:17
[INFO] [stderr]     |
[INFO] [stderr] 203 |                 try!(write_record(w, 3, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:206:17
[INFO] [stderr]     |
[INFO] [stderr] 206 |                 try!(write_record(w, 6, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:209:17
[INFO] [stderr]     |
[INFO] [stderr] 209 |                 try!(write_record(w, 7, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:213:17
[INFO] [stderr]     |
[INFO] [stderr] 213 |                 try!(write_pairs(&mut content, items));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:214:17
[INFO] [stderr]     |
[INFO] [stderr] 214 |                 try!(write_record(w, 10, 0, &content.into_inner()));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:218:17
[INFO] [stderr]     |
[INFO] [stderr] 218 |                 try!(write_record(w, 11, 0, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:226:50
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let (record_type, request_id, content) = try!(read_record(r));
[INFO] [stderr]     |                                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:250:29
[INFO] [stderr]     |
[INFO] [stderr] 250 |                 let items = try!(read_pairs(&mut Cursor::new(content)));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:287:24
[INFO] [stderr]     |
[INFO] [stderr] 287 |                 match (try!(Record::receive(&mut sock)), self.req.filter_data) {
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:289:25
[INFO] [stderr]     |
[INFO] [stderr] 289 |                         try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:292:25
[INFO] [stderr]     |
[INFO] [stderr] 292 |                         try!(
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:298:25
[INFO] [stderr]     |
[INFO] [stderr] 298 |                         try!(Record::EndRequest {
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:341:13
[INFO] [stderr]     |
[INFO] [stderr] 341 |             try!(chunk.read(buf))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:340:29
[INFO] [stderr]     |
[INFO] [stderr] 340 |             let mut chunk = try!(self.fill_buf());
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:367:25
[INFO] [stderr]     |
[INFO] [stderr] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 380 | writer!(Stdout);
[INFO] [stderr]     | --------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:367:25
[INFO] [stderr]     |
[INFO] [stderr] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 382 | writer!(Stderr);
[INFO] [stderr]     | --------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:419:19
[INFO] [stderr]     |
[INFO] [stderr] 419 |             match try!(Record::receive(&mut sock)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:421:21
[INFO] [stderr]     |
[INFO] [stderr] 421 |                     try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:424:21
[INFO] [stderr]     |
[INFO] [stderr] 424 |                     try!(Record::GetValuesResult(get_values(keys)).send(&mut sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:430:21
[INFO] [stderr]     |
[INFO] [stderr] 430 |                     try!(Record::EndRequest {
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:446:19
[INFO] [stderr]     |
[INFO] [stderr] 446 |             match try!(Record::receive(&mut &*sock)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:448:21
[INFO] [stderr]     |
[INFO] [stderr] 448 |                     try!(Record::UnknownType(rec_type).send(&mut &*sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:451:21
[INFO] [stderr]     |
[INFO] [stderr] 451 |                     try!(
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:457:21
[INFO] [stderr]     |
[INFO] [stderr] 457 |                     try!(Record::EndRequest {
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:477:39
[INFO] [stderr]     |
[INFO] [stderr] 477 |                         params.extend(try!(read_pairs(&mut Cursor::new(&buf))));
[INFO] [stderr]     |                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:403:27
[INFO] [stderr]     |
[INFO] [stderr] 403 | pub type Params<'a> = Box<Iterator<Item = (String, String)> + 'a>;
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 403 | pub type Params<'a> = Box<dyn Iterator<Item = (String, String)> + 'a>;
[INFO] [stderr]     |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:132:24
[INFO] [stderr]     |
[INFO] [stderr] 132 | fn write_len<W: Write>(mut w: &mut W, n: u32) -> io::Result<()> {
[INFO] [stderr]     |                        ----^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |             mem::transmute::<u32, [u8; 4]>((0x80000000 & n).to_be())
[INFO] [stderr]     |             ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: replace this with: `u32::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |         mem::transmute::<_, [u8; 2]>(request_id.to_be())
[INFO] [stderr]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:161:9
[INFO] [stderr]     |
[INFO] [stderr] 161 |         mem::transmute::<_, [u8; 2]>((content.len() as u16).to_be())
[INFO] [stderr]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:177:44
[INFO] [stderr]     |
[INFO] [stderr] 177 |     let request_id = unsafe { u16::from_be(mem::transmute([header[2], header[3]])) };
[INFO] [stderr]     |                                            --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:178:48
[INFO] [stderr]     |
[INFO] [stderr] 178 |     let content_length = unsafe { u16::from_be(mem::transmute([header[4], header[5]])) };
[INFO] [stderr]     |                                                --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                |
[INFO] [stderr]     |                                                help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:191:21
[INFO] [stderr]     |
[INFO] [stderr] 191 |                     mem::transmute::<_, [u8; 4]>(app_status.to_be())
[INFO] [stderr]     |                     ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: replace this with: `i32::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:230:34
[INFO] [stderr]     |
[INFO] [stderr] 230 |                     u16::from_be(mem::transmute([content[0], content[1]]))
[INFO] [stderr]     |                                  --------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:510:19
[INFO] [stderr]     |
[INFO] [stderr] 510 |     pub fn params(&self) -> Params {
[INFO] [stderr]     |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 510 |     pub fn params(&self) -> Params<'_> {
[INFO] [stderr]     |                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:515:18
[INFO] [stderr]     |
[INFO] [stderr] 515 |     pub fn stdin(&mut self) -> Stdin {
[INFO] [stderr]     |                  ^^^^^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 515 |     pub fn stdin(&mut self) -> Stdin<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:520:19
[INFO] [stderr]     |
[INFO] [stderr] 520 |     pub fn stdout(&mut self) -> Stdout {
[INFO] [stderr]     |                   ^^^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 520 |     pub fn stdout(&mut self) -> Stdout<'_> {
[INFO] [stderr]     |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:525:19
[INFO] [stderr]     |
[INFO] [stderr] 525 |     pub fn stderr(&mut self) -> Stderr {
[INFO] [stderr]     |                   ^^^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 525 |     pub fn stderr(&mut self) -> Stderr<'_> {
[INFO] [stderr]     |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:578:30
[INFO] [stderr]     |
[INFO] [stderr] 578 |             Err(e) => panic!(e.to_string()),
[INFO] [stderr]     |                              ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 578 |             Err(e) => panic!("{}", e.to_string()),
[INFO] [stderr]     |                              +++++
[INFO] [stderr] 
[INFO] [stderr] warning: `fastcgi` (lib) generated 56 warnings (run `cargo fix --lib -p fastcgi` to apply 14 suggestions)
[INFO] [stderr] warning: `fastcgi` (lib test) generated 56 warnings (56 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/fastcgi/8b56a1694802b984/deps/fastcgi-8b56a1694802b984)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests fastcgi
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 30) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 30) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (55) panicked at src/lib.rs:578:23:
[INFO] [stdout] Socket operation on non-socket (os error 88)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5ffd50f005d2 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5ffd50f005d2 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized::<std[840933623431fd06]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5ffd50f005d2 - std[840933623431fd06]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5ffd50f005d2 - <<std[840933623431fd06]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5ffd50f11b9a - <core[8f93d80df273fe75]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5ffd50f11b9a - core[8f93d80df273fe75]::fmt::write
[INFO] [stdout]    6:     0x5ffd50f04756 - std[840933623431fd06]::io::default_write_fmt::<std[840933623431fd06]::sys::stdio::unix::Stderr>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5ffd50f04756 - <std[840933623431fd06]::sys::stdio::unix::Stderr as std[840933623431fd06]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5ffd50eea46f - <std[840933623431fd06]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5ffd50eea46f - std[840933623431fd06]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5ffd50efbdf1 - std[840933623431fd06]::panicking::default_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:319:9
[INFO] [stdout]   11:     0x5ffd50efbfab - std[840933623431fd06]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:825:13
[INFO] [stdout]   12:     0x5ffd50eb4d5b - std[840933623431fd06]::panicking::begin_panic::<alloc[40b2bae28975ac47]::string::String>::{closure#0}
[INFO] [stdout]   13:     0x5ffd50eb37b6 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace::<std[840933623431fd06]::panicking::begin_panic<alloc[40b2bae28975ac47]::string::String>::{closure#0}, !>
[INFO] [stdout]   14:     0x5ffd50eb3010 - std[840933623431fd06]::panicking::begin_panic::<alloc[40b2bae28975ac47]::string::String>
[INFO] [stdout]   15:     0x5ffd50eb1795 - fastcgi[24c99aabf3c584c8]::run_transport::<rust_out[c8cdd22bfd421af4]::main::{closure#0}>
[INFO] [stdout]   16:     0x5ffd50eb17fd - fastcgi[24c99aabf3c584c8]::run::<rust_out[c8cdd22bfd421af4]::main::{closure#0}>
[INFO] [stdout]   17:     0x5ffd50eb5636 - rust_out[c8cdd22bfd421af4]::main
[INFO] [stdout]   18:     0x5ffd50eb96b3 - <fn() as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5ffd50eb37c6 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[INFO] [stdout]   20:     0x5ffd50eb4ce9 - std[840933623431fd06]::rt::lang_start::<()>::{closure#0}
[INFO] [stdout]   21:     0x5ffd50efb346 - <&dyn core[8f93d80df273fe75]::ops::function::Fn<(), Output = i32> + core[8f93d80df273fe75]::panic::unwind_safe::RefUnwindSafe + core[8f93d80df273fe75]::marker::Sync as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   22:     0x5ffd50efb346 - std[840933623431fd06]::panicking::catch_unwind::do_call::<&dyn core[8f93d80df273fe75]::ops::function::Fn<(), Output = i32> + core[8f93d80df273fe75]::panic::unwind_safe::RefUnwindSafe + core[8f93d80df273fe75]::marker::Sync, i32>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   23:     0x5ffd50efb346 - std[840933623431fd06]::panicking::catch_unwind::<i32, &dyn core[8f93d80df273fe75]::ops::function::Fn<(), Output = i32> + core[8f93d80df273fe75]::panic::unwind_safe::RefUnwindSafe + core[8f93d80df273fe75]::marker::Sync>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   24:     0x5ffd50efb346 - std[840933623431fd06]::panic::catch_unwind::<&dyn core[8f93d80df273fe75]::ops::function::Fn<(), Output = i32> + core[8f93d80df273fe75]::panic::unwind_safe::RefUnwindSafe + core[8f93d80df273fe75]::marker::Sync, i32>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   25:     0x5ffd50efb346 - std[840933623431fd06]::rt::lang_start_internal::{closure#0}
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/rt.rs:175:24
[INFO] [stdout]   26:     0x5ffd50efb346 - std[840933623431fd06]::panicking::catch_unwind::do_call::<std[840933623431fd06]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5ffd50efb346 - std[840933623431fd06]::panicking::catch_unwind::<isize, std[840933623431fd06]::rt::lang_start_internal::{closure#0}>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5ffd50efb346 - std[840933623431fd06]::panic::catch_unwind::<std[840933623431fd06]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5ffd50efb346 - std[840933623431fd06]::rt::lang_start_internal
[INFO] [stdout]                                at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/rt.rs:171:5
[INFO] [stdout]   30:     0x5ffd50eb2ef1 - std[840933623431fd06]::rt::lang_start::<()>
[INFO] [stdout]   31:     0x5ffd50eb9f15 - main
[INFO] [stdout]   32:     0x7bb7139b01ca - <unknown>
[INFO] [stdout]   33:     0x7bb7139b028b - __libc_start_main
[INFO] [stdout]   34:     0x5ffd50eb1105 - _start
[INFO] [stdout]   35:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 30)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "57dcbaa3f994d2b1ee7483201b16e0c99a51124b58af43685b022aee8a7d0906", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57dcbaa3f994d2b1ee7483201b16e0c99a51124b58af43685b022aee8a7d0906", kill_on_drop: false }`
[INFO] [stdout] 57dcbaa3f994d2b1ee7483201b16e0c99a51124b58af43685b022aee8a7d0906
