[INFO] crate arc-reactor 0.2.4 is already in cache [INFO] extracting crate arc-reactor 0.2.4 into work/ex/clippy-test-run/sources/stable/reg/arc-reactor/0.2.4 [INFO] extracting crate arc-reactor 0.2.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/arc-reactor/0.2.4 [INFO] validating manifest of arc-reactor-0.2.4 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of arc-reactor-0.2.4 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing arc-reactor-0.2.4 [INFO] finished frobbing arc-reactor-0.2.4 [INFO] frobbed toml for arc-reactor-0.2.4 written to work/ex/clippy-test-run/sources/stable/reg/arc-reactor/0.2.4/Cargo.toml [INFO] started frobbing arc-reactor-0.2.4 [INFO] finished frobbing arc-reactor-0.2.4 [INFO] frobbed toml for arc-reactor-0.2.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/arc-reactor/0.2.4/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting arc-reactor-0.2.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/arc-reactor/0.2.4:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] aa8f7492219fba9a51d11b991467a57c5f986c89ef204df6193ac071a12ac26c [INFO] running `"docker" "start" "-a" "aa8f7492219fba9a51d11b991467a57c5f986c89ef204df6193ac071a12ac26c"` [INFO] [stderr] Checking serde_qs v0.4.5 [INFO] [stderr] Checking arc-reactor v0.2.4 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/proto/convert.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | request [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/proto/convert.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | let request = Request::new(parts, body); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/service.rs:116:3 [INFO] [stderr] | [INFO] [stderr] 116 | return self [INFO] [stderr] | _________^ [INFO] [stderr] 117 | | .handler [INFO] [stderr] 118 | | .clone() [INFO] [stderr] 119 | | .expect("No service Supplied") [INFO] [stderr] 120 | | .call(req, res); [INFO] [stderr] | |____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 116 | self [INFO] [stderr] 117 | .handler [INFO] [stderr] 118 | .clone() [INFO] [stderr] 119 | .expect("No service Supplied") [INFO] [stderr] 120 | .call(req, res) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/bodyParser.rs:67:3 [INFO] [stderr] | [INFO] [stderr] 67 | return Box::new(read_body_future); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(read_body_future)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/fakeReactor.rs:115:3 [INFO] [stderr] | [INFO] [stderr] 115 | return reactor.block_on(self.service.call(req, Response::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reactor.block_on(self.service.call(req, Response::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:103:10 [INFO] [stderr] | [INFO] [stderr] 103 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:114:12 [INFO] [stderr] | [INFO] [stderr] 114 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/rootservice.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | return Box::new(responseFuture); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(responseFuture)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:26:14 [INFO] [stderr] | [INFO] [stderr] 26 | let bit = 1 << val - 64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:40:14 [INFO] [stderr] | [INFO] [stderr] 40 | let bit = 1 << val - 64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:75:10 [INFO] [stderr] | [INFO] [stderr] 75 | Ascii(1 << val - 64, 0, false) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | Ascii(u64::MAX ^ (1 << val - 64), u64::MAX, true) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routing/util.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/proto/convert.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | request [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/proto/convert.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | let request = Request::new(parts, body); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/service.rs:116:3 [INFO] [stderr] | [INFO] [stderr] 116 | return self [INFO] [stderr] | _________^ [INFO] [stderr] 117 | | .handler [INFO] [stderr] 118 | | .clone() [INFO] [stderr] 119 | | .expect("No service Supplied") [INFO] [stderr] 120 | | .call(req, res); [INFO] [stderr] | |____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 116 | self [INFO] [stderr] 117 | .handler [INFO] [stderr] 118 | .clone() [INFO] [stderr] 119 | .expect("No service Supplied") [INFO] [stderr] 120 | .call(req, res) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/bodyParser.rs:67:3 [INFO] [stderr] | [INFO] [stderr] 67 | return Box::new(read_body_future); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(read_body_future)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/fakeReactor.rs:115:3 [INFO] [stderr] | [INFO] [stderr] 115 | return reactor.block_on(self.service.call(req, Response::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reactor.block_on(self.service.call(req, Response::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:103:10 [INFO] [stderr] | [INFO] [stderr] 103 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/contrib/staticFileServer.rs:114:12 [INFO] [stderr] | [INFO] [stderr] 114 | return Err(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/rootservice.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | return Box::new(responseFuture); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Box::new(responseFuture)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:26:14 [INFO] [stderr] | [INFO] [stderr] 26 | let bit = 1 << val - 64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:40:14 [INFO] [stderr] | [INFO] [stderr] 40 | let bit = 1 << val - 64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:75:10 [INFO] [stderr] | [INFO] [stderr] 75 | Ascii(1 << val - 64, 0, false) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/routing/recognizer/nfa.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | Ascii(u64::MAX ^ (1 << val - 64), u64::MAX, true) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (val - 64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routing/util.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::nfa::CharSet` [INFO] [stderr] --> src/routing/recognizer/nfa.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn new() -> CharSet { [INFO] [stderr] | _____^ [INFO] [stderr] 13 | | CharSet { [INFO] [stderr] 14 | | low_mask: 0, [INFO] [stderr] 15 | | high_mask: 0, [INFO] [stderr] 16 | | non_ascii: HashSet::new(), [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/routing/recognizer/nfa.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | self.high_mask = self.high_mask | bit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.high_mask |= bit` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/routing/recognizer/nfa.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | self.low_mask = self.low_mask | bit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.low_mask |= bit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::nfa::NFA` [INFO] [stderr] --> src/routing/recognizer/nfa.rs:211:2 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn new() -> NFA { [INFO] [stderr] | _____^ [INFO] [stderr] 212 | | let root = State::new(0, CharacterClass::any()); [INFO] [stderr] 213 | | NFA { [INFO] [stderr] 214 | | states: vec![root], [INFO] [stderr] ... | [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 203 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/routing/recognizer/nfa.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | fn process_char<'a>(&self, threads: Vec, char: char, pos: usize) -> Vec { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::Params` [INFO] [stderr] --> src/routing/recognizer/mod.rs:71:2 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn new() -> Params { [INFO] [stderr] | _____^ [INFO] [stderr] 72 | | Params { [INFO] [stderr] 73 | | map: BTreeMap::new(), [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 66 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/recognizer/mod.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn iter<'a>(&'a self) -> Iter<'a> { [INFO] [stderr] | _____^ [INFO] [stderr] 86 | | Iter(self.map.iter()) [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `routing::recognizer::Router` [INFO] [stderr] --> src/routing/recognizer/mod.rs:142:2 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn new() -> Router { [INFO] [stderr] | _____^ [INFO] [stderr] 143 | | Router { [INFO] [stderr] 144 | | nfa: NFA::new(), [INFO] [stderr] 145 | | handlers: BTreeMap::new(), [INFO] [stderr] 146 | | } [INFO] [stderr] 147 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 141 | impl Default for routing::recognizer::Router { [INFO] [stderr] 142 | fn default() -> Self { [INFO] [stderr] 143 | Self::new() [INFO] [stderr] 144 | } [INFO] [stderr] 145 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:150:6 [INFO] [stderr] | [INFO] [stderr] 150 | if route.len() != 0 && route.as_bytes()[0] == b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!route.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:163:7 [INFO] [stderr] | [INFO] [stderr] 163 | if segment.len() > 0 && segment.as_bytes()[0] == b':' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!segment.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:167:14 [INFO] [stderr] | [INFO] [stderr] 167 | } else if segment.len() > 0 && segment.as_bytes()[0] == b'*' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!segment.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:183:6 [INFO] [stderr] | [INFO] [stderr] 183 | if path.len() != 0 && path.as_bytes()[0] == b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routing/recognizer/mod.rs:201:19 [INFO] [stderr] | [INFO] [stderr] 201 | let handler = self.handlers.get(&nfa_match.state).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.handlers[&nfa_match.state]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | if parent.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/routegroup.rs:66:7 [INFO] [stderr] | [INFO] [stderr] 66 | .or_insert(HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/routegroup.rs:380:6 [INFO] [stderr] | [INFO] [stderr] 380 | if parent.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `parent.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:384:25 [INFO] [stderr] | [INFO] [stderr] 384 | if parent.starts_with("/") && parent.len() == 1 { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:386:33 [INFO] [stderr] | [INFO] [stderr] 386 | } else if !parent.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:393:24 [INFO] [stderr] | [INFO] [stderr] 393 | if !path.starts_with("/") && path.len() > 1 { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/routegroup.rs:406:5 [INFO] [stderr] | [INFO] [stderr] 406 | .or_insert(HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::router::Router` [INFO] [stderr] --> src/routing/router.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn new() -> Self { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | Self { [INFO] [stderr] 23 | | before: None, [INFO] [stderr] 24 | | routes: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 12 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/router.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | .or_insert(Recognizer::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Recognizer::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/router.rs:386:6 [INFO] [stderr] | [INFO] [stderr] 386 | .or_insert(Recognizer::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Recognizer::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/routing/router.rs:387:10 [INFO] [stderr] | [INFO] [stderr] 387 | .add(path.as_ref(), handler); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `path` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/routing/router.rs:407:31 [INFO] [stderr] | [INFO] [stderr] 407 | let mut request: Request = req.into(); [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `req` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/contrib/fakeReactor.rs:128:27 [INFO] [stderr] | [INFO] [stderr] 128 | let res = res.with_body("Hello World".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Hello World"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::nfa::CharSet` [INFO] [stderr] --> src/routing/recognizer/nfa.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn new() -> CharSet { [INFO] [stderr] | _____^ [INFO] [stderr] 13 | | CharSet { [INFO] [stderr] 14 | | low_mask: 0, [INFO] [stderr] 15 | | high_mask: 0, [INFO] [stderr] 16 | | non_ascii: HashSet::new(), [INFO] [stderr] 17 | | } [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/routing/recognizer/nfa.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | self.high_mask = self.high_mask | bit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.high_mask |= bit` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/routing/recognizer/nfa.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | self.low_mask = self.low_mask | bit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.low_mask |= bit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::nfa::NFA` [INFO] [stderr] --> src/routing/recognizer/nfa.rs:211:2 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn new() -> NFA { [INFO] [stderr] | _____^ [INFO] [stderr] 212 | | let root = State::new(0, CharacterClass::any()); [INFO] [stderr] 213 | | NFA { [INFO] [stderr] 214 | | states: vec![root], [INFO] [stderr] ... | [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 203 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/routing/recognizer/nfa.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | fn process_char<'a>(&self, threads: Vec, char: char, pos: usize) -> Vec { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::recognizer::Params` [INFO] [stderr] --> src/routing/recognizer/mod.rs:71:2 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn new() -> Params { [INFO] [stderr] | _____^ [INFO] [stderr] 72 | | Params { [INFO] [stderr] 73 | | map: BTreeMap::new(), [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 66 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/recognizer/mod.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn iter<'a>(&'a self) -> Iter<'a> { [INFO] [stderr] | _____^ [INFO] [stderr] 86 | | Iter(self.map.iter()) [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `routing::recognizer::Router` [INFO] [stderr] --> src/routing/recognizer/mod.rs:142:2 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn new() -> Router { [INFO] [stderr] | _____^ [INFO] [stderr] 143 | | Router { [INFO] [stderr] 144 | | nfa: NFA::new(), [INFO] [stderr] 145 | | handlers: BTreeMap::new(), [INFO] [stderr] 146 | | } [INFO] [stderr] 147 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 141 | impl Default for routing::recognizer::Router { [INFO] [stderr] 142 | fn default() -> Self { [INFO] [stderr] 143 | Self::new() [INFO] [stderr] 144 | } [INFO] [stderr] 145 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:150:6 [INFO] [stderr] | [INFO] [stderr] 150 | if route.len() != 0 && route.as_bytes()[0] == b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!route.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:163:7 [INFO] [stderr] | [INFO] [stderr] 163 | if segment.len() > 0 && segment.as_bytes()[0] == b':' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!segment.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:167:14 [INFO] [stderr] | [INFO] [stderr] 167 | } else if segment.len() > 0 && segment.as_bytes()[0] == b'*' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!segment.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/recognizer/mod.rs:183:6 [INFO] [stderr] | [INFO] [stderr] 183 | if path.len() != 0 && path.as_bytes()[0] == b'/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routing/recognizer/mod.rs:201:19 [INFO] [stderr] | [INFO] [stderr] 201 | let handler = self.handlers.get(&nfa_match.state).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.handlers[&nfa_match.state]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:52:25 [INFO] [stderr] | [INFO] [stderr] 52 | if parent.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/routegroup.rs:66:7 [INFO] [stderr] | [INFO] [stderr] 66 | .or_insert(HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/routing/routegroup.rs:380:6 [INFO] [stderr] | [INFO] [stderr] 380 | if parent.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `parent.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:384:25 [INFO] [stderr] | [INFO] [stderr] 384 | if parent.starts_with("/") && parent.len() == 1 { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:386:33 [INFO] [stderr] | [INFO] [stderr] 386 | } else if !parent.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/routing/routegroup.rs:393:24 [INFO] [stderr] | [INFO] [stderr] 393 | if !path.starts_with("/") && path.len() > 1 { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/routegroup.rs:406:5 [INFO] [stderr] | [INFO] [stderr] 406 | .or_insert(HashMap::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(HashMap::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `routing::router::Router` [INFO] [stderr] --> src/routing/router.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn new() -> Self { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | Self { [INFO] [stderr] 23 | | before: None, [INFO] [stderr] 24 | | routes: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 12 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/router.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | .or_insert(Recognizer::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Recognizer::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/routing/router.rs:386:6 [INFO] [stderr] | [INFO] [stderr] 386 | .or_insert(Recognizer::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Recognizer::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/routing/router.rs:387:10 [INFO] [stderr] | [INFO] [stderr] 387 | .add(path.as_ref(), handler); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `path` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/routing/router.rs:407:31 [INFO] [stderr] | [INFO] [stderr] 407 | let mut request: Request = req.into(); [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `req` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 11.25s [INFO] running `"docker" "inspect" "aa8f7492219fba9a51d11b991467a57c5f986c89ef204df6193ac071a12ac26c"` [INFO] running `"docker" "rm" "-f" "aa8f7492219fba9a51d11b991467a57c5f986c89ef204df6193ac071a12ac26c"` [INFO] [stdout] aa8f7492219fba9a51d11b991467a57c5f986c89ef204df6193ac071a12ac26c