[INFO] crate rouille 3.0.0 is already in cache [INFO] testing rouille-3.0.0 against try#03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 for pr-74409 [INFO] extracting crate rouille 3.0.0 into /workspace/builds/worker-12/source [INFO] validating manifest of crates.io crate rouille 3.0.0 on toolchain 03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate rouille 3.0.0 [INFO] finished tweaking crates.io crate rouille 3.0.0 [INFO] tweaked toml for crates.io crate rouille 3.0.0 written to /workspace/builds/worker-12/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:d9fbb4e2287ab3795bdefaf705efb7541a8875c13bce71e067d6b01dc5ed759b" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c9660cf8186d739ef590cd4ac7acd660271d2c56c038809e9b9dd4da75e7ec04 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "c9660cf8186d739ef590cd4ac7acd660271d2c56c038809e9b9dd4da75e7ec04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c9660cf8186d739ef590cd4ac7acd660271d2c56c038809e9b9dd4da75e7ec04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c9660cf8186d739ef590cd4ac7acd660271d2c56c038809e9b9dd4da75e7ec04", kill_on_drop: false }` [INFO] [stdout] c9660cf8186d739ef590cd4ac7acd660271d2c56c038809e9b9dd4da75e7ec04 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:d9fbb4e2287ab3795bdefaf705efb7541a8875c13bce71e067d6b01dc5ed759b" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 87f638958be0b95c48ab84d1505835a116f763623430aaa86d83ed927ba3541e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "87f638958be0b95c48ab84d1505835a116f763623430aaa86d83ed927ba3541e", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.73 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling siphasher v0.2.3 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Compiling serde v1.0.114 [INFO] [stderr] Compiling syn v1.0.35 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling chunked_transfer v0.3.1 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling ascii v0.8.7 [INFO] [stderr] Compiling sha1 v0.6.0 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling brotli-sys v0.3.2 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Compiling gzip-header v0.3.0 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stderr] Compiling unicase v1.4.2 [INFO] [stderr] Compiling mime v0.2.6 [INFO] [stderr] Compiling twoway v0.1.8 [INFO] [stderr] Compiling buf_redux v0.8.4 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling phf_shared v0.7.24 [INFO] [stderr] Compiling phf v0.7.24 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling time v0.1.43 [INFO] [stderr] Compiling dirs v1.0.5 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling filetime v0.2.10 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling term v0.5.2 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling chrono v0.4.13 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling mime_guess v1.8.8 [INFO] [stderr] Compiling tiny_http v0.6.2 [INFO] [stderr] Compiling multipart v0.15.4 [INFO] [stderr] Compiling brotli2 v0.3.2 [INFO] [stderr] Compiling serde_derive v1.0.114 [INFO] [stderr] Compiling serde_json v1.0.56 [INFO] [stderr] Compiling rouille v3.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 134 | let mut child = try!(self.spawn()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | try!(io::copy(&mut body, child.stdin.as_mut().unwrap())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:148:30 [INFO] [stdout] | [INFO] [stdout] 148 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | Ok(vec![try!(DecodePostField::from_field(config, content))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | Ok(vec![try!(DecodePostField::from_file(config, file, filename, mime))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | try!(file.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/plain.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | try!(body.take(limit.saturating_add(1) as u64).read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:152:22 [INFO] [stdout] | [INFO] [stdout] 152 | let mut socket = try!(TcpStream::connect(config.addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | try!(socket.set_read_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | try!(socket.set_write_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | try!(socket.write_all(format!("{} {} HTTP/1.1\r\n", request.method(), request.raw_url()).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | try!(socket.write_all(format!("{}: {}\r\n", header, value).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | try!(socket.write_all(b"Connection: close\r\n\r\n")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | try!(io::copy(&mut data, &mut socket)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:189:24 [INFO] [stdout] | [INFO] [stdout] 189 | let line = try!(match lines.next() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:206:26 [INFO] [stdout] | [INFO] [stdout] 206 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | try!(send(data.as_bytes(), Write::by_ref(socket), 0x1)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | try!(send(data, Write::by_ref(socket), 0x2)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:310:5 [INFO] [stdout] | [INFO] [stdout] 310 | try!(dest.write_all(&[first_byte])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | try!(dest.write_all(&[127u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | try!(dest.write_all(&[len1, len2, len3, len4, len5, len6, len7, len8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | try!(dest.write_all(&[126u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | try!(dest.write_all(&[len1, len2])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | try!(dest.write_all(&[data.len() as u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 339 | try!(dest.write_all(data)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | try!(dest.flush()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/lib.rs:297:22 [INFO] [stdout] | [INFO] [stdout] 297 | let server = try!(tiny_http::Server::http(addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cgi.rs:83:32 [INFO] [stdout] | [INFO] [stdout] 83 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/json.rs:92:32 [INFO] [stdout] | [INFO] [stdout] 92 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:170:32 [INFO] [stdout] | [INFO] [stdout] 170 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:255:32 [INFO] [stdout] | [INFO] [stdout] 255 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/plain.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/proxy.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | socket: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | fn build(&mut self, socket: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | pub upgrade: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Upgrade + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:692:15 [INFO] [stdout] | [INFO] [stdout] 692 | data: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:793:47 [INFO] [stdout] | [INFO] [stdout] 793 | pub fn into_reader_and_size(self) -> (Box, Option) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:294:65 [INFO] [stdout] | [INFO] [stdout] 294 | pub fn new(addr: A, handler: F) -> Result, Box> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Error + Send + Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:464:37 [INFO] [stdout] | [INFO] [stdout] 464 | fn build(&mut self, socket: Box); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:476:32 [INFO] [stdout] | [INFO] [stdout] 476 | data: Arc>>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:827:15 [INFO] [stdout] | [INFO] [stdout] 827 | body: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/cgi.rs:94:27 [INFO] [stdout] | [INFO] [stdout] 94 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/content_encoding.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/json.rs:104:27 [INFO] [stdout] | [INFO] [stdout] 104 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/multipart.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:268:27 [INFO] [stdout] | [INFO] [stdout] 268 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/plain.rs:75:27 [INFO] [stdout] | [INFO] [stdout] 75 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:253:27 [INFO] [stdout] | [INFO] [stdout] 253 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/websocket/mod.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/websocket/mod.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/response.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'core::str::::trim_left': superseded by `trim_start` [INFO] [stdout] --> src/input/priority_header.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | let trimmed_p = p.trim_left(); [INFO] [stdout] | ^^^^^^^^^ help: replace the use of the deprecated item: `trim_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/try_or_400.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | let cause = err.cause().map(ErrJson::from_err).map(Box::new); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/try_or_400.rs:59:36 [INFO] [stdout] | [INFO] [stdout] 59 | ErrJson { description: err.description(), cause } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 59 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 35.36s [INFO] running `Command { std: "docker" "inspect" "87f638958be0b95c48ab84d1505835a116f763623430aaa86d83ed927ba3541e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87f638958be0b95c48ab84d1505835a116f763623430aaa86d83ed927ba3541e", kill_on_drop: false }` [INFO] [stdout] 87f638958be0b95c48ab84d1505835a116f763623430aaa86d83ed927ba3541e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:d9fbb4e2287ab3795bdefaf705efb7541a8875c13bce71e067d6b01dc5ed759b" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 225d86eb63e15ea8c5d9f9d8c99fbdccbd48dc07e8bcdac8199d21581f6052d3 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "225d86eb63e15ea8c5d9f9d8c99fbdccbd48dc07e8bcdac8199d21581f6052d3", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling byte-tools v0.2.0 [INFO] [stderr] Compiling constant_time_eq v0.1.5 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Compiling safemem v0.2.0 [INFO] [stderr] Compiling fallible-iterator v0.1.6 [INFO] [stderr] Compiling md5 v0.3.8 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling memchr v1.0.2 [INFO] [stderr] Compiling socket2 v0.3.12 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling stringprep v0.1.2 [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 134 | let mut child = try!(self.spawn()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | try!(io::copy(&mut body, child.stdin.as_mut().unwrap())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:148:30 [INFO] [stdout] | [INFO] [stdout] 148 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | Ok(vec![try!(DecodePostField::from_field(config, content))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | Ok(vec![try!(DecodePostField::from_file(config, file, filename, mime))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | try!(file.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/plain.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | try!(body.take(limit.saturating_add(1) as u64).read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:152:22 [INFO] [stdout] | [INFO] [stdout] 152 | let mut socket = try!(TcpStream::connect(config.addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | try!(socket.set_read_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | try!(socket.set_write_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | try!(socket.write_all(format!("{} {} HTTP/1.1\r\n", request.method(), request.raw_url()).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | try!(socket.write_all(format!("{}: {}\r\n", header, value).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | try!(socket.write_all(b"Connection: close\r\n\r\n")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | try!(io::copy(&mut data, &mut socket)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:189:24 [INFO] [stdout] | [INFO] [stdout] 189 | let line = try!(match lines.next() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:206:26 [INFO] [stdout] | [INFO] [stdout] 206 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | try!(send(data.as_bytes(), Write::by_ref(socket), 0x1)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | try!(send(data, Write::by_ref(socket), 0x2)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:310:5 [INFO] [stdout] | [INFO] [stdout] 310 | try!(dest.write_all(&[first_byte])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | try!(dest.write_all(&[127u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | try!(dest.write_all(&[len1, len2, len3, len4, len5, len6, len7, len8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | try!(dest.write_all(&[126u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | try!(dest.write_all(&[len1, len2])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | try!(dest.write_all(&[data.len() as u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 339 | try!(dest.write_all(data)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | try!(dest.flush()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/lib.rs:297:22 [INFO] [stdout] | [INFO] [stdout] 297 | let server = try!(tiny_http::Server::http(addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cgi.rs:83:32 [INFO] [stdout] | [INFO] [stdout] 83 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/json.rs:92:32 [INFO] [stdout] | [INFO] [stdout] 92 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:170:32 [INFO] [stdout] | [INFO] [stdout] 170 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:255:32 [INFO] [stdout] | [INFO] [stdout] 255 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/plain.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/proxy.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | socket: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | fn build(&mut self, socket: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | pub upgrade: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Upgrade + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:692:15 [INFO] [stdout] | [INFO] [stdout] 692 | data: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:793:47 [INFO] [stdout] | [INFO] [stdout] 793 | pub fn into_reader_and_size(self) -> (Box, Option) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:294:65 [INFO] [stdout] | [INFO] [stdout] 294 | pub fn new(addr: A, handler: F) -> Result, Box> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Error + Send + Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:464:37 [INFO] [stdout] | [INFO] [stdout] 464 | fn build(&mut self, socket: Box); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:476:32 [INFO] [stdout] | [INFO] [stdout] 476 | data: Arc>>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:827:15 [INFO] [stdout] | [INFO] [stdout] 827 | body: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/cgi.rs:94:27 [INFO] [stdout] | [INFO] [stdout] 94 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/content_encoding.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/json.rs:104:27 [INFO] [stdout] | [INFO] [stdout] 104 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/multipart.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:268:27 [INFO] [stdout] | [INFO] [stdout] 268 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/plain.rs:75:27 [INFO] [stdout] | [INFO] [stdout] 75 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:253:27 [INFO] [stdout] | [INFO] [stdout] 253 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/websocket/mod.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/websocket/mod.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/response.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'core::str::::trim_left': superseded by `trim_start` [INFO] [stdout] --> src/input/priority_header.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | let trimmed_p = p.trim_left(); [INFO] [stdout] | ^^^^^^^^^ help: replace the use of the deprecated item: `trim_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/try_or_400.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | let cause = err.cause().map(ErrJson::from_err).map(Box::new); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/try_or_400.rs:59:36 [INFO] [stdout] | [INFO] [stdout] 59 | ErrJson { description: err.description(), cause } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 59 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling base64 v0.6.0 [INFO] [stderr] Compiling block-buffer v0.3.3 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling generic-array v0.9.0 [INFO] [stderr] Compiling digest v0.7.6 [INFO] [stderr] Compiling crypto-mac v0.5.2 [INFO] [stderr] Compiling sha2 v0.7.1 [INFO] [stderr] Compiling hmac v0.5.0 [INFO] [stderr] Compiling postgres-protocol v0.3.2 [INFO] [stderr] Compiling postgres-shared v0.4.2 [INFO] [stderr] Compiling postgres v0.15.2 [INFO] [stderr] Compiling rouille v3.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> examples/simple-form.rs:30:44 [INFO] [stdout] | [INFO] [stdout] 30 | let data = try_or_400!(post_input!(request, { [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 31 | | txt: String, [INFO] [stdout] 32 | | files: Vec, [INFO] [stdout] 33 | | })); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> examples/simple-form.rs:30:44 [INFO] [stdout] | [INFO] [stdout] 30 | let data = try_or_400!(post_input!(request, { [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 31 | | txt: String, [INFO] [stdout] 32 | | files: Vec, [INFO] [stdout] 33 | | })); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> examples/hello-world.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / router!(request, [INFO] [stdout] 32 | | (GET) (/) => { [INFO] [stdout] 33 | | // If the request's URL is `/`, we jump here. [INFO] [stdout] 34 | | // This block builds a `Response` object that redirects to the `/hello/world`. [INFO] [stdout] ... | [INFO] [stdout] 52 | | panic!("Oops!") [INFO] [stdout] | | --------------- any code following this expression is unreachable [INFO] [stdout] ... | [INFO] [stdout] 81 | | _ => rouille::Response::empty_404() [INFO] [stdout] 82 | | ) [INFO] [stdout] | |_________^ unreachable call [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> examples/login-session.rs:103:36 [INFO] [stdout] | [INFO] [stdout] 103 | let data = try_or_400!(post_input!(request, { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 104 | | login: String, [INFO] [stdout] 105 | | password: String, [INFO] [stdout] 106 | | })); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> examples/login-session.rs:103:36 [INFO] [stdout] | [INFO] [stdout] 103 | let data = try_or_400!(post_input!(request, { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 104 | | login: String, [INFO] [stdout] 105 | | password: String, [INFO] [stdout] 106 | | })); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> examples/login-session.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | / router!(request, [INFO] [stdout] 94 | | (POST) (/login) => { [INFO] [stdout] 95 | | // This is the route that is called when the user wants to log in. [INFO] [stdout] 96 | | [INFO] [stdout] ... | [INFO] [stdout] 123 | | return Response::redirect_303("/"); [INFO] [stdout] | | ---------------------------------- any code following this expression is unreachable [INFO] [stdout] ... | [INFO] [stdout] 143 | | _ => () [INFO] [stdout] 144 | | ); [INFO] [stdout] | |______^ unreachable call [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> examples/login-session.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | / router!(request, [INFO] [stdout] 94 | | (POST) (/login) => { [INFO] [stdout] 95 | | // This is the route that is called when the user wants to log in. [INFO] [stdout] 96 | | [INFO] [stdout] ... | [INFO] [stdout] 143 | | _ => () [INFO] [stdout] 144 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______unreachable call [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 134 | let mut child = try!(self.spawn()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | try!(io::copy(&mut body, child.stdin.as_mut().unwrap())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/cgi.rs:148:30 [INFO] [stdout] | [INFO] [stdout] 148 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | Ok(vec![try!(DecodePostField::from_field(config, content))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | Ok(vec![try!(DecodePostField::from_file(config, file, filename, mime))]) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | try!(file.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 693 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 694 | | field: u32 [INFO] [stdout] 695 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 693 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 694 | | field: u32 [INFO] [stdout] 695 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 707 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 708 | | field: f32 [INFO] [stdout] 709 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 707 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 708 | | field: f32 [INFO] [stdout] 709 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 721 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 722 | | field: String [INFO] [stdout] 723 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 721 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 722 | | field: String [INFO] [stdout] 723 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 736 | | field: Option [INFO] [stdout] 737 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 736 | | field: Option [INFO] [stdout] 737 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 749 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 750 | | field: bool [INFO] [stdout] 751 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 749 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 750 | | field: bool [INFO] [stdout] 751 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 763 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 764 | | field: String [INFO] [stdout] 765 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 763 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 764 | | field: String [INFO] [stdout] 765 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 777 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 778 | | field: String [INFO] [stdout] 779 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 777 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 778 | | field: String [INFO] [stdout] 779 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 794 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 795 | | field: u32 [INFO] [stdout] 796 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 794 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 795 | | field: u32 [INFO] [stdout] 796 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 808 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 809 | | field: u32 [INFO] [stdout] 810 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 808 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 809 | | field: u32 [INFO] [stdout] 810 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 826 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 827 | | field: bool [INFO] [stdout] 828 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 826 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 827 | | field: bool [INFO] [stdout] 828 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 840 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 841 | | field: Vec [INFO] [stdout] 842 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 840 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 841 | | field: Vec [INFO] [stdout] 842 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 854 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 855 | | field: Vec [INFO] [stdout] 856 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 854 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 855 | | field: Vec [INFO] [stdout] 856 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 873 | | field: Vec> [INFO] [stdout] 874 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 873 | | field: Vec> [INFO] [stdout] 874 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 886 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 887 | | field: String [INFO] [stdout] 888 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 886 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 887 | | field: String [INFO] [stdout] 888 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 904 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 905 | | field: Option [INFO] [stdout] 906 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 904 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 905 | | field: Option [INFO] [stdout] 906 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 918 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 919 | | field: bool [INFO] [stdout] 920 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 918 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 919 | | field: bool [INFO] [stdout] 920 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 932 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 933 | | field: Vec [INFO] [stdout] 934 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 932 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 933 | | field: Vec [INFO] [stdout] 934 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 946 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 947 | | field: u32 [INFO] [stdout] 948 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 946 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 947 | | field: u32 [INFO] [stdout] 948 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 964 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 965 | | field: Option [INFO] [stdout] 966 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 964 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 965 | | field: Option [INFO] [stdout] 966 | | }).unwrap(); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 978 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 979 | | field: u8 [INFO] [stdout] 980 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 978 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 979 | | field: u8 [INFO] [stdout] 980 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 998 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 999 | | field: u8 [INFO] [stdout] 1000 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 998 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 999 | | field: u8 [INFO] [stdout] 1000 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:509:34 [INFO] [stdout] | [INFO] [stdout] 509 | let merged = try!(extracted.merge_multiple(new)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 1017 | | field: String [INFO] [stdout] 1018 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/post.rs:530:25 [INFO] [stdout] | [INFO] [stdout] 530 | try!(b.read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | let input = post_input!(&request, { [INFO] [stdout] | _____________________- [INFO] [stdout] 1017 | | field: String [INFO] [stdout] 1018 | | }); [INFO] [stdout] | |__________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/input/plain.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | try!(body.take(limit.saturating_add(1) as u64).read_to_end(&mut out)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:152:22 [INFO] [stdout] | [INFO] [stdout] 152 | let mut socket = try!(TcpStream::connect(config.addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | try!(socket.set_read_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | try!(socket.set_write_timeout(Some(Duration::from_secs(60)))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | try!(socket.write_all(format!("{} {} HTTP/1.1\r\n", request.method(), request.raw_url()).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | try!(socket.write_all(format!("{}: {}\r\n", header, value).as_bytes())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | try!(socket.write_all(b"Connection: close\r\n\r\n")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | try!(io::copy(&mut data, &mut socket)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:189:24 [INFO] [stdout] | [INFO] [stdout] 189 | let line = try!(match lines.next() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/proxy.rs:206:26 [INFO] [stdout] | [INFO] [stdout] 206 | let header = try!(header); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | try!(send(data.as_bytes(), Write::by_ref(socket), 0x1)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | try!(send(data, Write::by_ref(socket), 0x2)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:310:5 [INFO] [stdout] | [INFO] [stdout] 310 | try!(dest.write_all(&[first_byte])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | try!(dest.write_all(&[127u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | try!(dest.write_all(&[len1, len2, len3, len4, len5, len6, len7, len8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | try!(dest.write_all(&[126u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | try!(dest.write_all(&[len1, len2])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | try!(dest.write_all(&[data.len() as u8])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 339 | try!(dest.write_all(data)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/websocket/websocket.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | try!(dest.flush()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/lib.rs:297:22 [INFO] [stdout] | [INFO] [stdout] 297 | let server = try!(tiny_http::Server::http(addr)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cgi.rs:83:32 [INFO] [stdout] | [INFO] [stdout] 83 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/json.rs:92:32 [INFO] [stdout] | [INFO] [stdout] 92 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:170:32 [INFO] [stdout] | [INFO] [stdout] 170 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/post.rs:255:32 [INFO] [stdout] | [INFO] [stdout] 255 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> src/input/accept.rs:159:28 [INFO] [stdout] | [INFO] [stdout] 159 | "image/gif" => { 5 }, [INFO] [stdout] | ^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> src/input/accept.rs:174:28 [INFO] [stdout] | [INFO] [stdout] 174 | "image/gif" => { 5 }, [INFO] [stdout] | ^^^^^ help: remove these braces [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/input/plain.rs:64:32 [INFO] [stdout] | [INFO] [stdout] 64 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/proxy.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | socket: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/websocket/websocket.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | fn build(&mut self, socket: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | pub upgrade: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Upgrade + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:692:15 [INFO] [stdout] | [INFO] [stdout] 692 | data: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/response.rs:793:47 [INFO] [stdout] | [INFO] [stdout] 793 | pub fn into_reader_and_size(self) -> (Box, Option) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:294:65 [INFO] [stdout] | [INFO] [stdout] 294 | pub fn new(addr: A, handler: F) -> Result, Box> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Error + Send + Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:464:37 [INFO] [stdout] | [INFO] [stdout] 464 | fn build(&mut self, socket: Box); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ReadWrite + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:476:32 [INFO] [stdout] | [INFO] [stdout] 476 | data: Arc>>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:827:15 [INFO] [stdout] | [INFO] [stdout] 827 | body: Box, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Read + Send` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/cgi.rs:94:27 [INFO] [stdout] | [INFO] [stdout] 94 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/content_encoding.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/json.rs:104:27 [INFO] [stdout] | [INFO] [stdout] 104 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/multipart.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/post.rs:268:27 [INFO] [stdout] | [INFO] [stdout] 268 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/input/plain.rs:75:27 [INFO] [stdout] | [INFO] [stdout] 75 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/proxy.rs:253:27 [INFO] [stdout] | [INFO] [stdout] 253 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/websocket/mod.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/websocket/mod.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | write!(fmt, "{}", error::Error::description(self)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stdout] --> src/response.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'core::str::::trim_left': superseded by `trim_start` [INFO] [stdout] --> src/input/priority_header.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | let trimmed_p = p.trim_left(); [INFO] [stdout] | ^^^^^^^^^ help: replace the use of the deprecated item: `trim_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/try_or_400.rs:58:25 [INFO] [stdout] | [INFO] [stdout] 58 | let cause = err.cause().map(ErrJson::from_err).map(Box::new); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/try_or_400.rs:59:36 [INFO] [stdout] | [INFO] [stdout] 59 | ErrJson { description: err.description(), cause } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/router.rs:235:17 [INFO] [stdout] | [INFO] [stdout] 235 | let $param = match $url_params.$param { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] ... [INFO] [stdout] 426 | let resp = router!(request, [INFO] [stdout] | ____________________- [INFO] [stdout] 427 | | (GET) ["/hello"] => { 1. }, [INFO] [stdout] 428 | | (GET) ["/math/{a}/plus/{b}", a: u32 , b: u32] => { 7. }, [INFO] [stdout] 429 | | (GET) ["/math/{a}/plus/{b}", a: f32 , b: u32] => { a + (b as f32) }, [INFO] [stdout] 430 | | _ => 0. [INFO] [stdout] 431 | | ); [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] {"message":"unused variable: `name`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/router.rs","byte_start":9563,"byte_end":9569,"line_start":235,"line_end":235,"column_start":17,"column_end":23,"is_primary":true,"text":[{"text":" let $param = match $url_params.$param {","highlight_start":17,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/router.rs","byte_start":9235,"byte_end":9340,"line_start":229,"line_end":229,"column_start":9,"column_end":114,"is_primary":false,"text":[{"text":" router!(__bind_param $request_url, $url_params, $handle, $param: $param_type ; $($params: $param_types)*)","highlight_start":9,"highlight_end":114}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/router.rs","byte_start":7343,"byte_end":7428,"line_start":187,"line_end":187,"column_start":21,"column_end":106,"is_primary":false,"text":[{"text":" router!(__build_resp $request_url_str, url_params, $handle ; $($param: $param_type)*)","highlight_start":21,"highlight_end":106}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/router.rs","byte_start":4853,"byte_end":4948,"line_start":137,"line_end":137,"column_start":9,"column_end":104,"is_primary":false,"text":[{"text":" router!(__check_parse_pattern $request_url, $url_pattern => $handle ; $($param: $param_type),*)","highlight_start":9,"highlight_end":104}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/router.rs","byte_start":4146,"byte_end":4235,"line_start":118,"line_end":118,"column_start":27,"column_end":116,"is_primary":false,"text":[{"text":" ret = router!(__param_dispatch request_url, $url_pattern => $handle ; $($param: $param_type),*);","highlight_start":27,"highlight_end":116}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/router.rs","byte_start":19094,"byte_end":19268,"line_start":554,"line_end":558,"column_start":23,"column_end":10,"is_primary":false,"text":[{"text":" assert_eq!(1, router!(request,","highlight_start":23,"highlight_end":39},{"text":" (GET) [\"/hello/\"] => { 0 },","highlight_start":1,"highlight_end":40},{"text":" (GET) [\"/hello/{name}\", name: String, id: u32] => { 1 }, // this should fail","highlight_start":1,"highlight_end":89},{"text":" _ => 0","highlight_start":1,"highlight_end":19},{"text":" ));","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"router!","def_site_span":{"file_name":"src/router.rs","byte_start":3419,"byte_end":13296,"line_start":98,"line_end":354,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! router {","highlight_start":1,"highlight_end":22},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" // --- New style ---","highlight_start":1,"highlight_end":25},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" ($request:expr,","highlight_start":1,"highlight_end":20},{"text":" $(($method:ident) [$url_pattern:expr $(, $param:ident: $param_type:ty)*] => $handle:expr,)*","highlight_start":1,"highlight_end":97},{"text":" _ => $default:expr $(,)*) => {","highlight_start":1,"highlight_end":36},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request = &$request;","highlight_start":1,"highlight_end":37},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // ignoring the GET parameters (everything after `?`)","highlight_start":1,"highlight_end":66},{"text":" let request_url = request.raw_url();","highlight_start":1,"highlight_end":49},{"text":" let request_url = {","highlight_start":1,"highlight_end":32},{"text":" let pos = request_url.find('?').unwrap_or(request_url.len());","highlight_start":1,"highlight_end":78},{"text":" &request_url[..pos]","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut ret = None;","highlight_start":1,"highlight_end":32},{"text":" $({","highlight_start":1,"highlight_end":16},{"text":" if ret.is_none() && request.method() == stringify!($method) {","highlight_start":1,"highlight_end":78},{"text":" ret = router!(__param_dispatch request_url, $url_pattern => $handle ; $($param: $param_type),*);","highlight_start":1,"highlight_end":117},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" })+","highlight_start":1,"highlight_end":16},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if let Some(ret) = ret {","highlight_start":1,"highlight_end":37},{"text":" ret","highlight_start":1,"highlight_end":20},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" $default","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // No url parameters, just check the url and evaluate the `$handle`","highlight_start":1,"highlight_end":72},{"text":" (__param_dispatch $request_url:ident, $url_pattern:expr => $handle:expr ; ) => {","highlight_start":1,"highlight_end":85},{"text":" router!(__check_url_match $request_url, $url_pattern => $handle)","highlight_start":1,"highlight_end":73},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Url parameters found, check and parse the url against the provided pattern","highlight_start":1,"highlight_end":82},{"text":" (__param_dispatch $request_url:ident, $url_pattern:expr => $handle:expr ; $($param:ident: $param_type:ty),*) => {","highlight_start":1,"highlight_end":118},{"text":" router!(__check_parse_pattern $request_url, $url_pattern => $handle ; $($param: $param_type),*)","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_url_match $request_url:ident, $url_pattern:expr => $handle:expr) => {","highlight_start":1,"highlight_end":83},{"text":" if $request_url == $url_pattern {","highlight_start":1,"highlight_end":42},{"text":" Some($handle)","highlight_start":1,"highlight_end":26},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" None","highlight_start":1,"highlight_end":17},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Compare each url segment while attempting to parse any url parameters.","highlight_start":1,"highlight_end":78},{"text":" // If parsing fails, return `None` so this route gets skipped.","highlight_start":1,"highlight_end":67},{"text":" // If parsing is successful, recursively bind each url parameter to the given identity","highlight_start":1,"highlight_end":91},{"text":" // before evaluating the `$handle`","highlight_start":1,"highlight_end":39},{"text":" // Note: Url parameters need to be held in the `RouilleUrlParams` struct since","highlight_start":1,"highlight_end":83},{"text":" // we need to be able to \"evaluate to None\" (if url segments don't match or parsing fails)","highlight_start":1,"highlight_end":101},{"text":" // and we can't actually \"return None\" since we'd be returning from whatever scope the macro is being used in.","highlight_start":1,"highlight_end":121},{"text":" (__check_parse_pattern $request_url_str:ident, $url_pattern:expr => $handle:expr ; $($param:ident: $param_type:ty),*) => {","highlight_start":1,"highlight_end":127},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request_url = $request_url_str.split(\"/\")","highlight_start":1,"highlight_end":58},{"text":" .map(|s| $crate::url::percent_encoding::percent_decode(s.as_bytes()).decode_utf8_lossy().into_owned())","highlight_start":1,"highlight_end":119},{"text":" .collect::>();","highlight_start":1,"highlight_end":38},{"text":" let url_pattern = $url_pattern.split(\"/\").collect::>();","highlight_start":1,"highlight_end":75},{"text":" if request_url.len() != url_pattern.len() {","highlight_start":1,"highlight_end":56},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" struct RouilleUrlParams {","highlight_start":1,"highlight_end":42},{"text":" $( $param: Option<$param_type> ),*","highlight_start":1,"highlight_end":55},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" impl RouilleUrlParams {","highlight_start":1,"highlight_end":40},{"text":" fn new() -> Self {","highlight_start":1,"highlight_end":39},{"text":" Self {","highlight_start":1,"highlight_end":31},{"text":" $( $param: None ),*","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" let url_params = (|| {","highlight_start":1,"highlight_end":39},{"text":" let mut url_params = RouilleUrlParams::new();","highlight_start":1,"highlight_end":66},{"text":" for (actual, desired) in request_url.iter().zip(url_pattern.iter()) {","highlight_start":1,"highlight_end":90},{"text":" if desired.starts_with(\"{\") && desired.ends_with(\"}\") {","highlight_start":1,"highlight_end":80},{"text":" let key = &desired[1..desired.len()-1];","highlight_start":1,"highlight_end":68},{"text":" router!(__insert_param $request_url_str, url_params, key, actual ; $($param: $param_type)*)","highlight_start":1,"highlight_end":120},{"text":" } else if actual != desired {","highlight_start":1,"highlight_end":54},{"text":" return None","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" Some(url_params)","highlight_start":1,"highlight_end":37},{"text":" })();","highlight_start":1,"highlight_end":22},{"text":" if let Some(url_params) = url_params {","highlight_start":1,"highlight_end":55},{"text":" router!(__build_resp $request_url_str, url_params, $handle ; $($param: $param_type)*)","highlight_start":1,"highlight_end":106},{"text":" } else {","highlight_start":1,"highlight_end":25},{"text":" None","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // We walked through all the given url parameter identities and couldn't find one that","highlight_start":1,"highlight_end":91},{"text":" // matches the parameter name defined in the url-string","highlight_start":1,"highlight_end":60},{"text":" // e.g. `(GET) (\"/name/{title}\", name: String)","highlight_start":1,"highlight_end":53},{"text":" (__insert_param $request_url:ident, $url_params:ident, $key:expr, $actual:expr ; ) => {","highlight_start":1,"highlight_end":92},{"text":" panic!(\"Unable to match url parameter name, `{}`, to an `identity: type` pair in url: {:?}\", $key, $request_url);","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Walk through all the given url parameter identities. If they match the current","highlight_start":1,"highlight_end":86},{"text":" // `$key` (a parameter name in the string-url), then set them in the `$url_params` struct","highlight_start":1,"highlight_end":94},{"text":" (__insert_param $request_url:ident, $url_params:ident, $key:expr, $actual:expr ; $param:tt: $param_type:tt $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":149},{"text":" if $key == stringify!($param) {","highlight_start":1,"highlight_end":40},{"text":" router!(__bind_url_param $url_params, $actual, $param, $param_type)","highlight_start":1,"highlight_end":80},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" router!(__insert_param $request_url, $url_params, $key, $actual ; $($params: $param_types)*);","highlight_start":1,"highlight_end":106},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__bind_url_param $url_params:ident, $actual:expr, $param:ident, $param_type:ty) => {","highlight_start":1,"highlight_end":90},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" match $actual.parse::<$param_type>() {","highlight_start":1,"highlight_end":51},{"text":" Ok(value) => $url_params.$param = Some(value),","highlight_start":1,"highlight_end":63},{"text":" // it's safe to `return` here since we're in a closure","highlight_start":1,"highlight_end":71},{"text":" Err(_) => return None,","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // No more url parameters to bind","highlight_start":1,"highlight_end":38},{"text":" (__build_resp $request_url:ident, $url_params:expr, $handle:expr ; ) => {","highlight_start":1,"highlight_end":78},{"text":" { Some($handle) }","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // There's still some params to bind","highlight_start":1,"highlight_end":41},{"text":" (__build_resp $request_url:ident, $url_params:expr, $handle:expr ; $param:tt: $param_type:tt $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":135},{"text":" router!(__bind_param $request_url, $url_params, $handle, $param: $param_type ; $($params: $param_types)*)","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Recursively pull out and bind a url param","highlight_start":1,"highlight_end":49},{"text":" (__bind_param $request_url:ident, $url_params:expr, $handle:expr, $param:ident: $param_type:ty ; $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":139},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let $param = match $url_params.$param {","highlight_start":1,"highlight_end":52},{"text":" Some(p) => p,","highlight_start":1,"highlight_end":30},{"text":" None => {","highlight_start":1,"highlight_end":26},{"text":" let param_name = stringify!($param);","highlight_start":1,"highlight_end":57},{"text":" panic!(\"Url parameter identity, `{}`, does not have a matching `{{{}}}` segment in url: {:?}\",","highlight_start":1,"highlight_end":115},{"text":" param_name, param_name, $request_url);","highlight_start":1,"highlight_end":66},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" router!(__build_resp $request_url, $url_params, $handle ; $($params: $param_types)*)","highlight_start":1,"highlight_end":97},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" // --- Old style ---","highlight_start":1,"highlight_end":25},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" ($request:expr, $(($method:ident) ($($pat:tt)+) => $value:block,)* _ => $def:expr $(,)*) => {","highlight_start":1,"highlight_end":98},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request = &$request;","highlight_start":1,"highlight_end":37},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // ignoring the GET parameters (everything after `?`)","highlight_start":1,"highlight_end":66},{"text":" let request_url = request.raw_url();","highlight_start":1,"highlight_end":49},{"text":" let request_url = {","highlight_start":1,"highlight_end":32},{"text":" let pos = request_url.find('?').unwrap_or(request_url.len());","highlight_start":1,"highlight_end":78},{"text":" &request_url[..pos]","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut ret = None;","highlight_start":1,"highlight_end":32},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $({","highlight_start":1,"highlight_end":16},{"text":" if ret.is_none() && request.method() == stringify!($method) {","highlight_start":1,"highlight_end":78},{"text":" ret = router!(__check_pattern request_url $value $($pat)+);","highlight_start":1,"highlight_end":80},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" })+","highlight_start":1,"highlight_end":16},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if let Some(ret) = ret {","highlight_start":1,"highlight_end":37},{"text":" ret","highlight_start":1,"highlight_end":20},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" $def","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block /{$p:ident} $($rest:tt)*) => (","highlight_start":1,"highlight_end":76},{"text":" if !$url.starts_with('/') {","highlight_start":1,"highlight_end":36},{"text":" None","highlight_start":1,"highlight_end":17},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" let url = &$url[1..];","highlight_start":1,"highlight_end":34},{"text":" let pat_end = url.find('/').unwrap_or(url.len());","highlight_start":1,"highlight_end":62},{"text":" let rest_url = &url[pat_end..];","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if let Ok($p) = url[0 .. pat_end].parse() {","highlight_start":1,"highlight_end":56},{"text":" router!(__check_pattern rest_url $value $($rest)*)","highlight_start":1,"highlight_end":67},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block /{$p:ident: $t:ty} $($rest:tt)*) => (","highlight_start":1,"highlight_end":83},{"text":" if !$url.starts_with('/') {","highlight_start":1,"highlight_end":36},{"text":" None","highlight_start":1,"highlight_end":17},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" let url = &$url[1..];","highlight_start":1,"highlight_end":34},{"text":" let pat_end = url.find('/').unwrap_or(url.len());","highlight_start":1,"highlight_end":62},{"text":" let rest_url = &url[pat_end..];","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if let Ok($p) = $crate::url::percent_encoding::percent_decode(url[0 .. pat_end].as_bytes())","highlight_start":1,"highlight_end":104},{"text":" .decode_utf8_lossy().parse() {","highlight_start":1,"highlight_end":47},{"text":" let $p: $t = $p;","highlight_start":1,"highlight_end":33},{"text":" router!(__check_pattern rest_url $value $($rest)*)","highlight_start":1,"highlight_end":67},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block /$p:ident $($rest:tt)*) => (","highlight_start":1,"highlight_end":74},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let required = concat!(\"/\", stringify!($p));","highlight_start":1,"highlight_end":57},{"text":" if $url.starts_with(required) {","highlight_start":1,"highlight_end":44},{"text":" let rest_url = &$url[required.len()..];","highlight_start":1,"highlight_end":56},{"text":" router!(__check_pattern rest_url $value $($rest)*)","highlight_start":1,"highlight_end":67},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block - $($rest:tt)*) => (","highlight_start":1,"highlight_end":66},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" if $url.starts_with('-') {","highlight_start":1,"highlight_end":39},{"text":" let rest_url = &$url[1..];","highlight_start":1,"highlight_end":43},{"text":" router!(__check_pattern rest_url $value $($rest)*)","highlight_start":1,"highlight_end":67},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block) => (","highlight_start":1,"highlight_end":51},{"text":" if $url.len() == 0 { Some($value) } else { None }","highlight_start":1,"highlight_end":58},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block /) => (","highlight_start":1,"highlight_end":53},{"text":" if $url == \"/\" { Some($value) } else { None }","highlight_start":1,"highlight_end":54},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_pattern $url:ident $value:block $p:ident $($rest:tt)*) => (","highlight_start":1,"highlight_end":73},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let required = stringify!($p);","highlight_start":1,"highlight_end":43},{"text":" if $url.starts_with(required) {","highlight_start":1,"highlight_end":44},{"text":" let rest_url = &$url[required.len()..];","highlight_start":1,"highlight_end":56},{"text":" router!(__check_pattern rest_url $value $($rest)*)","highlight_start":1,"highlight_end":67},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" );","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"router!","def_site_span":{"file_name":"src/router.rs","byte_start":3419,"byte_end":13296,"line_start":98,"line_end":354,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! router {","highlight_start":1,"highlight_end":22},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" // --- New style ---","highlight_start":1,"highlight_end":25},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" ($request:expr,","highlight_start":1,"highlight_end":20},{"text":" $(($method:ident) [$url_pattern:expr $(, $param:ident: $param_type:ty)*] => $handle:expr,)*","highlight_start":1,"highlight_end":97},{"text":" _ => $default:expr $(,)*) => {","highlight_start":1,"highlight_end":36},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request = &$request;","highlight_start":1,"highlight_end":37},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // ignoring the GET parameters (everything after `?`)","highlight_start":1,"highlight_end":66},{"text":" let request_url = request.raw_url();","highlight_start":1,"highlight_end":49},{"text":" let request_url = {","highlight_start":1,"highlight_end":32},{"text":" let pos = request_url.find('?').unwrap_or(request_url.len());","highlight_start":1,"highlight_end":78},{"text":" &request_url[..pos]","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" let mut ret = None;","highlight_start":1,"highlight_end":32},{"text":" $({","highlight_start":1,"highlight_end":16},{"text":" if ret.is_none() && request.method() == stringify!($method) {","highlight_start":1,"highlight_end":78},{"text":" ret = router!(__param_dispatch request_url, $url_pattern => $handle ; $($param: $param_type),*);","highlight_start":1,"highlight_end":117},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" })+","highlight_start":1,"highlight_end":16},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if let Some(ret) = ret {","highlight_start":1,"highlight_end":37},{"text":" ret","highlight_start":1,"highlight_end":20},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" $default","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // No url parameters, just check the url and evaluate the `$handle`","highlight_start":1,"highlight_end":72},{"text":" (__param_dispatch $request_url:ident, $url_pattern:expr => $handle:expr ; ) => {","highlight_start":1,"highlight_end":85},{"text":" router!(__check_url_match $request_url, $url_pattern => $handle)","highlight_start":1,"highlight_end":73},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Url parameters found, check and parse the url against the provided pattern","highlight_start":1,"highlight_end":82},{"text":" (__param_dispatch $request_url:ident, $url_pattern:expr => $handle:expr ; $($param:ident: $param_type:ty),*) => {","highlight_start":1,"highlight_end":118},{"text":" router!(__check_parse_pattern $request_url, $url_pattern => $handle ; $($param: $param_type),*)","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__check_url_match $request_url:ident, $url_pattern:expr => $handle:expr) => {","highlight_start":1,"highlight_end":83},{"text":" if $request_url == $url_pattern {","highlight_start":1,"highlight_end":42},{"text":" Some($handle)","highlight_start":1,"highlight_end":26},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" None","highlight_start":1,"highlight_end":17},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Compare each url segment while attempting to parse any url parameters.","highlight_start":1,"highlight_end":78},{"text":" // If parsing fails, return `None` so this route gets skipped.","highlight_start":1,"highlight_end":67},{"text":" // If parsing is successful, recursively bind each url parameter to the given identity","highlight_start":1,"highlight_end":91},{"text":" // before evaluating the `$handle`","highlight_start":1,"highlight_end":39},{"text":" // Note: Url parameters need to be held in the `RouilleUrlParams` struct since","highlight_start":1,"highlight_end":83},{"text":" // we need to be able to \"evaluate to None\" (if url segments don't match or parsing fails)","highlight_start":1,"highlight_end":101},{"text":" // and we can't actually \"return None\" since we'd be returning from whatever scope the macro is being used in.","highlight_start":1,"highlight_end":121},{"text":" (__check_parse_pattern $request_url_str:ident, $url_pattern:expr => $handle:expr ; $($param:ident: $param_type:ty),*) => {","highlight_start":1,"highlight_end":127},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request_url = $request_url_str.split(\"/\")","highlight_start":1,"highlight_end":58},{"text":" .map(|s| $crate::url::percent_encoding::percent_decode(s.as_bytes()).decode_utf8_lossy().into_owned())","highlight_start":1,"highlight_end":119},{"text":" .collect::>();","highlight_start":1,"highlight_end":38},{"text":" let url_pattern = $url_pattern.split(\"/\").collect::>();","highlight_start":1,"highlight_end":75},{"text":" if request_url.len() != url_pattern.len() {","highlight_start":1,"highlight_end":56},{"text":" None","highlight_start":1,"highlight_end":21},{"text":" } else {","highlight_start":1,"highlight_end":21},{"text":" struct RouilleUrlParams {","highlight_start":1,"highlight_end":42},{"text":" $( $param: Option<$param_type> ),*","highlight_start":1,"highlight_end":55},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" impl RouilleUrlParams {","highlight_start":1,"highlight_end":40},{"text":" fn new() -> Self {","highlight_start":1,"highlight_end":39},{"text":" Self {","highlight_start":1,"highlight_end":31},{"text":" $( $param: None ),*","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" let url_params = (|| {","highlight_start":1,"highlight_end":39},{"text":" let mut url_params = RouilleUrlParams::new();","highlight_start":1,"highlight_end":66},{"text":" for (actual, desired) in request_url.iter().zip(url_pattern.iter()) {","highlight_start":1,"highlight_end":90},{"text":" if desired.starts_with(\"{\") && desired.ends_with(\"}\") {","highlight_start":1,"highlight_end":80},{"text":" let key = &desired[1..desired.len()-1];","highlight_start":1,"highlight_end":68},{"text":" router!(__insert_param $request_url_str, url_params, key, actual ; $($param: $param_type)*)","highlight_start":1,"highlight_end":120},{"text":" } else if actual != desired {","highlight_start":1,"highlight_end":54},{"text":" return None","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" Some(url_params)","highlight_start":1,"highlight_end":37},{"text":" })();","highlight_start":1,"highlight_end":22},{"text":" if let Some(url_params) = url_params {","highlight_start":1,"highlight_end":55},{"text":" router!(__build_resp $request_url_str, url_params, $handle ; $($param: $param_type)*)","highlight_start":1,"highlight_end":106},{"text":" } else {","highlight_start":1,"highlight_end":25},{"text":" None","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // We walked through all the given url parameter identities and couldn't find one that","highlight_start":1,"highlight_end":91},{"text":" // matches the parameter name defined in the url-string","highlight_start":1,"highlight_end":60},{"text":" // e.g. `(GET) (\"/name/{title}\", name: String)","highlight_start":1,"highlight_end":53},{"text":" (__insert_param $request_url:ident, $url_params:ident, $key:expr, $actual:expr ; ) => {","highlight_start":1,"highlight_end":92},{"text":" panic!(\"Unable to match url parameter name, `{}`, to an `identity: type` pair in url: {:?}\", $key, $request_url);","highlight_start":1,"highlight_end":122},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Walk through all the given url parameter identities. If they match the current","highlight_start":1,"highlight_end":86},{"text":" // `$key` (a parameter name in the string-url), then set them in the `$url_params` struct","highlight_start":1,"highlight_end":94},{"text":" (__insert_param $request_url:ident, $url_params:ident, $key:expr, $actual:expr ; $param:tt: $param_type:tt $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":149},{"text":" if $key == stringify!($param) {","highlight_start":1,"highlight_end":40},{"text":" router!(__bind_url_param $url_params, $actual, $param, $param_type)","highlight_start":1,"highlight_end":80},{"text":" } else {","highlight_start":1,"highlight_end":17},{"text":" router!(__insert_param $request_url, $url_params, $key, $actual ; $($params: $param_types)*);","highlight_start":1,"highlight_end":106},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (__bind_url_param $url_params:ident, $actual:expr, $param:ident, $param_type:ty) => {","highlight_start":1,"highlight_end":90},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" match $actual.parse::<$param_type>() {","highlight_start":1,"highlight_end":51},{"text":" Ok(value) => $url_params.$param = Some(value),","highlight_start":1,"highlight_end":63},{"text":" // it's safe to `return` here since we're in a closure","highlight_start":1,"highlight_end":71},{"text":" Err(_) => return None,","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // No more url parameters to bind","highlight_start":1,"highlight_end":38},{"text":" (__build_resp $request_url:ident, $url_params:expr, $handle:expr ; ) => {","highlight_start":1,"highlight_end":78},{"text":" { Some($handle) }","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // There's still some params to bind","highlight_start":1,"highlight_end":41},{"text":" (__build_resp $request_url:ident, $url_params:expr, $handle:expr ; $param:tt: $param_type:tt $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":135},{"text":" router!(__bind_param $request_url, $url_params, $handle, $param: $param_type ; $($params: $param_types)*)","highlight_start":1,"highlight_end":114},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Recursively pull out and bind a url param","highlight_start":1,"highlight_end":49},{"text":" (__bind_param $request_url:ident, $url_params:expr, $handle:expr, $param:ident: $param_type:ty ; $($params:tt: $param_types:tt)*) => {","highlight_start":1,"highlight_end":139},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let $param = match $url_params.$param {","highlight_start":1,"highlight_end":52},{"text":" Some(p) => p,","highlight_start":1,"highlight_end":30},{"text":" None => {","highlight_start":1,"highlight_end":26},{"text":" let param_name = stringify!($param);","highlight_start":1,"highlight_end":57},{"text":" panic!(\"Url parameter identity, `{}`, does not have a matching `{{{}}}` segment in url: {:?}\",","highlight_start":1,"highlight_end":115},{"text":" param_name, param_name, $request_url);","highlight_start":1,"highlight_end":66},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" router!(__build_resp $request_url, $url_params, $handle ; $($params: $param_types)*)","highlight_start":1,"highlight_end":97},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" // --- Old style ---","highlight_start":1,"highlight_end":25},{"text":" // -----------------","highlight_start":1,"highlight_end":25},{"text":" ($request:expr, $(($method:ident) ($($pat:tt)+) => $value:block,)* _ => $def:expr $(,)*) => {","highlight_start":1,"highlight_end":98},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" let request = &$request;","highlight_start":1,"highlight_end":37},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // ignoring the GET parameters (everything after `?`)","highlight_start":1,"highlight_end":66},{"text":" let request_url = request.raw_url();", [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/router.rs:235:17 [INFO] [stdout] | [INFO] [stdout] 235 | let $param = match $url_params.$param { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] ... [INFO] [stdout] 426 | let resp = router!(request, [INFO] [stdout] | ____________________- [INFO] [stdout] 427 | | (GET) ["/hello"] => { 1. }, [INFO] [stdout] 428 | | (GET) ["/math/{a}/plus/{b}", a: u32 , b: u32] => { 7. }, [INFO] [stdout] 429 | | (GET) ["/math/{a}/plus/{b}", a: f32 , b: u32] => { a + (b as f32) }, [INFO] [stdout] 430 | | _ => 0. [INFO] [stdout] 431 | | ); [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rouille`. [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `rustc --crate-name rouille src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -Cembed-bitcode=no -C debuginfo=2 --test --cfg 'feature="brotli"' --cfg 'feature="brotli2"' --cfg 'feature="default"' --cfg 'feature="deflate"' --cfg 'feature="gzip"' -C metadata=5e8c78c3ef501e2b -C extra-filename=-5e8c78c3ef501e2b --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern base64=/opt/rustwide/target/debug/deps/libbase64-55ff2c416fcb6ae6.rlib --extern brotli2=/opt/rustwide/target/debug/deps/libbrotli2-2f6965c0752389b0.rlib --extern chrono=/opt/rustwide/target/debug/deps/libchrono-fbb568483fac047b.rlib --extern deflate=/opt/rustwide/target/debug/deps/libdeflate-00c39d325d6037cd.rlib --extern filetime=/opt/rustwide/target/debug/deps/libfiletime-f06b0ce93bbc676c.rlib --extern log=/opt/rustwide/target/debug/deps/liblog-93951ff8e53c2b76.rlib --extern multipart=/opt/rustwide/target/debug/deps/libmultipart-ce27a2ddb2a51f49.rlib --extern num_cpus=/opt/rustwide/target/debug/deps/libnum_cpus-3581f20142db9825.rlib --extern postgres=/opt/rustwide/target/debug/deps/libpostgres-f3303241039b1fec.rlib --extern rand=/opt/rustwide/target/debug/deps/librand-e8775a9ce404f722.rlib --extern serde=/opt/rustwide/target/debug/deps/libserde-be07ac6d8497077b.rlib --extern serde_derive=/opt/rustwide/target/debug/deps/libserde_derive-3fe598ab078517a2.so --extern serde_json=/opt/rustwide/target/debug/deps/libserde_json-9b14465ccc417cc9.rlib --extern sha1=/opt/rustwide/target/debug/deps/libsha1-3c74902e82893985.rlib --extern term=/opt/rustwide/target/debug/deps/libterm-a25304864daa9cb3.rlib --extern threadpool=/opt/rustwide/target/debug/deps/libthreadpool-08e9530eae4050bd.rlib --extern time=/opt/rustwide/target/debug/deps/libtime-6c6e8373e3d3e959.rlib --extern tiny_http=/opt/rustwide/target/debug/deps/libtiny_http-399ed04ed382ae03.rlib --extern url=/opt/rustwide/target/debug/deps/liburl-3465c0a6ad65d1a6.rlib --cap-lints=forbid -L native=/opt/rustwide/target/debug/build/brotli-sys-48a8fb4dd3be7a6a/out` (signal: 9, SIGKILL: kill) [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "225d86eb63e15ea8c5d9f9d8c99fbdccbd48dc07e8bcdac8199d21581f6052d3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "225d86eb63e15ea8c5d9f9d8c99fbdccbd48dc07e8bcdac8199d21581f6052d3", kill_on_drop: false }` [INFO] [stdout] 225d86eb63e15ea8c5d9f9d8c99fbdccbd48dc07e8bcdac8199d21581f6052d3