[INFO] crate nginx-config-mod 0.2.9 is already in cache [INFO] extracting crate nginx-config-mod 0.2.9 into work/ex/clippy-test-run/sources/stable/reg/nginx-config-mod/0.2.9 [INFO] extracting crate nginx-config-mod 0.2.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nginx-config-mod/0.2.9 [INFO] validating manifest of nginx-config-mod-0.2.9 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 nginx-config-mod-0.2.9 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 nginx-config-mod-0.2.9 [INFO] finished frobbing nginx-config-mod-0.2.9 [INFO] frobbed toml for nginx-config-mod-0.2.9 written to work/ex/clippy-test-run/sources/stable/reg/nginx-config-mod/0.2.9/Cargo.toml [INFO] started frobbing nginx-config-mod-0.2.9 [INFO] finished frobbing nginx-config-mod-0.2.9 [INFO] frobbed toml for nginx-config-mod-0.2.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nginx-config-mod/0.2.9/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 nginx-config-mod-0.2.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/nginx-config-mod/0.2.9:/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] 3ce706f551739ab4ba2ca891da699a4573cb8dfb91dc4a496d185bd3053f6d07 [INFO] running `"docker" "start" "-a" "3ce706f551739ab4ba2ca891da699a4573cb8dfb91dc4a496d185bd3053f6d07"` [INFO] [stderr] Checking nginx-config v0.13.2 [INFO] [stderr] Checking nginx-config-mod v0.2.9 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/checks/proxy_pass.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return Err(errors); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(errors)` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/checks/proxy_pass.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return Err(errors); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(errors)` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/config.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | if dirs.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!dirs.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/checks/proxy_pass.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match dir.item { [INFO] [stderr] 33 | | ast::Item::ProxyPass(ref texturl) => { [INFO] [stderr] 34 | | let texturl = texturl.to_string(); [INFO] [stderr] 35 | | let url_part = if let Some(off) = texturl.find("$request_uri") { [INFO] [stderr] ... | [INFO] [stderr] 66 | | _ => {} [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | if let ast::Item::ProxyPass(ref texturl) = dir.item { [INFO] [stderr] 33 | let texturl = texturl.to_string(); [INFO] [stderr] 34 | let url_part = if let Some(off) = texturl.find("$request_uri") { [INFO] [stderr] 35 | &texturl[..off] [INFO] [stderr] 36 | } else { [INFO] [stderr] 37 | &texturl [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/config.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | if dirs.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!dirs.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/checks/proxy_pass.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match dir.item { [INFO] [stderr] 33 | | ast::Item::ProxyPass(ref texturl) => { [INFO] [stderr] 34 | | let texturl = texturl.to_string(); [INFO] [stderr] 35 | | let url_part = if let Some(off) = texturl.find("$request_uri") { [INFO] [stderr] ... | [INFO] [stderr] 66 | | _ => {} [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | if let ast::Item::ProxyPass(ref texturl) = dir.item { [INFO] [stderr] 33 | let texturl = texturl.to_string(); [INFO] [stderr] 34 | let url_part = if let Some(off) = texturl.find("$request_uri") { [INFO] [stderr] 35 | &texturl[..off] [INFO] [stderr] 36 | } else { [INFO] [stderr] 37 | &texturl [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | return Some(""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some("")` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | return Some(&name[..name.len() - anchor.len()]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(&name[..name.len() - anchor.len()])` [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/bin/nginx_config_mod/modify.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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/bin/nginx_config_mod/modify.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | return Some((&name[..prefix], &name[name.len() - suffix..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((&name[..prefix], &name[name.len() - suffix..]))` [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/bin/nginx_config_mod/modify.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return Some((&name[..prefix], &name[name.len() - suffix..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((&name[..prefix], &name[name.len() - suffix..]))` [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/bin/nginx_config_mod/modify.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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/bin/nginx_config_mod/modify.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | return Some(""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some("")` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | return Some(&name[..name.len() - anchor.len()]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(&name[..name.len() - anchor.len()])` [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/bin/nginx_config_mod/modify.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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/bin/nginx_config_mod/modify.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | return Some((&name[..prefix], &name[name.len() - suffix..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((&name[..prefix], &name[name.len() - suffix..]))` [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/bin/nginx_config_mod/modify.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return Some((&name[..prefix], &name[name.len() - suffix..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((&name[..prefix], &name[name.len() - suffix..]))` [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/bin/nginx_config_mod/modify.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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: single-character string constant used as pattern [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:121:32 [INFO] [stderr] | [INFO] [stderr] 121 | let mut pair = s.splitn(2, "="); [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: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:123:8 [INFO] [stderr] | [INFO] [stderr] 123 | if name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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/bin/nginx_config_mod/modify.rs:133:8 [INFO] [stderr] | [INFO] [stderr] 133 | if dirs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `dirs.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/bin/nginx_config_mod/modify.rs:161:63 [INFO] [stderr] | [INFO] [stderr] 161 | } else if name[..name.len() - anchor.len()].ends_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/bin/nginx_config_mod/modify.rs:196:61 [INFO] [stderr] | [INFO] [stderr] 196 | } else if cur[..cur.len() - anchor.len()].ends_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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:208:42 [INFO] [stderr] | [INFO] [stderr] 208 | fn server_names(cfg: &mut Config, names: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | / match dir.item { [INFO] [stderr] 225 | | ast::Item::ServerName(ref mut names) => { [INFO] [stderr] 226 | | for name in names { [INFO] [stderr] 227 | | match *name { [INFO] [stderr] ... | [INFO] [stderr] 244 | | _ => {} [INFO] [stderr] 245 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 224 | if let ast::Item::ServerName(ref mut names) = dir.item { [INFO] [stderr] 225 | for name in names { [INFO] [stderr] 226 | match *name { [INFO] [stderr] 227 | Exact(ref mut n) | Suffix(ref mut n) | [INFO] [stderr] 228 | StarSuffix(ref mut n) [INFO] [stderr] 229 | => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:250:48 [INFO] [stderr] | [INFO] [stderr] 250 | fn proxy_pass_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | / match dir.item { [INFO] [stderr] 268 | | ast::Item::ProxyPass(ref mut value) => { [INFO] [stderr] 269 | | let mut s = value.to_string(); [INFO] [stderr] 270 | | for (regex, repl) in ®exes { [INFO] [stderr] ... | [INFO] [stderr] 278 | | _ => {} [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 267 | if let ast::Item::ProxyPass(ref mut value) = dir.item { [INFO] [stderr] 268 | let mut s = value.to_string(); [INFO] [stderr] 269 | for (regex, repl) in ®exes { [INFO] [stderr] 270 | s = regex.replace(s.as_ref(), *repl).to_string(); [INFO] [stderr] 271 | } [INFO] [stderr] 272 | match parse_proxy(&s) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:287:40 [INFO] [stderr] | [INFO] [stderr] 287 | fn if_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:320:50 [INFO] [stderr] | [INFO] [stderr] 320 | fn rewrite_host_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:337:9 [INFO] [stderr] | [INFO] [stderr] 337 | / match dir.item { [INFO] [stderr] 338 | | | ast::Item::Rewrite(ast::Rewrite { ref mut replacement, .. }) [INFO] [stderr] 339 | | => { [INFO] [stderr] 340 | | let mut s = replacement.to_string(); [INFO] [stderr] ... | [INFO] [stderr] 367 | | _ => {} [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 337 | if let ast::Item::Rewrite(ast::Rewrite { ref mut replacement, .. }) = dir.item { [INFO] [stderr] 338 | let mut s = replacement.to_string(); [INFO] [stderr] 339 | if !(s.starts_with("http://") || [INFO] [stderr] 340 | s.starts_with("https://") || [INFO] [stderr] 341 | s.starts_with("$scheme://")) [INFO] [stderr] 342 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:376:48 [INFO] [stderr] | [INFO] [stderr] 376 | fn proxy_pass_mapping(cfg: &mut Config, names: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / match dir.item { [INFO] [stderr] 393 | | ast::Item::ProxyPass(ref mut value) => { [INFO] [stderr] 394 | | let mut s = value.to_string(); [INFO] [stderr] 395 | | for (orig, new) in &pnames { [INFO] [stderr] ... | [INFO] [stderr] 407 | | _ => {} [INFO] [stderr] 408 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 392 | if let ast::Item::ProxyPass(ref mut value) = dir.item { [INFO] [stderr] 393 | let mut s = value.to_string(); [INFO] [stderr] 394 | for (orig, new) in &pnames { [INFO] [stderr] 395 | s = if let Some((pre, suf)) = proxy_subst(&s, orig) { [INFO] [stderr] 396 | format!("{}{}{}", pre, new, suf) [INFO] [stderr] 397 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:416:51 [INFO] [stderr] | [INFO] [stderr] 416 | fn replace_listen(dirs: &mut Vec, lst: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Listen]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | let ref is_listen = |x: &Directive| matches!(x.item, ast::Item::Listen(..)); [INFO] [stderr] | ----^^^^^^^^^^^^^----------------------------------------------------------- help: try: `let is_listen = &(|x: &Directive| matches!(x.item, ast::Item::Listen(..)));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:484:47 [INFO] [stderr] | [INFO] [stderr] 484 | replace_vars(cfg.directives_mut(), |name| vars.get(name).map(|x| *x)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `vars.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:487:8 [INFO] [stderr] | [INFO] [stderr] 487 | if modify.listen.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.listen.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/bin/nginx_config_mod/modify.rs:496:8 [INFO] [stderr] | [INFO] [stderr] 496 | if modify.server_name_mapping.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.server_name_mapping.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/bin/nginx_config_mod/modify.rs:500:8 [INFO] [stderr] | [INFO] [stderr] 500 | if modify.proxy_pass_mapping.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.proxy_pass_mapping.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/bin/nginx_config_mod/modify.rs:504:8 [INFO] [stderr] | [INFO] [stderr] 504 | if modify.proxy_pass_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.proxy_pass_regexes.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/bin/nginx_config_mod/modify.rs:507:8 [INFO] [stderr] | [INFO] [stderr] 507 | if modify.if_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.if_regexes.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/bin/nginx_config_mod/modify.rs:510:8 [INFO] [stderr] | [INFO] [stderr] 510 | if modify.rewrite_host_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.rewrite_host_regexes.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:515:9 [INFO] [stderr] | [INFO] [stderr] 515 | / match &dir.item { [INFO] [stderr] 516 | | Item::Include(path) => { [INFO] [stderr] 517 | | let path = path.to_string(); [INFO] [stderr] 518 | | let path = Path::new(&path); [INFO] [stderr] ... | [INFO] [stderr] 524 | | _ => {} [INFO] [stderr] 525 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 515 | if let Item::Include(path) = &dir.item { [INFO] [stderr] 516 | let path = path.to_string(); [INFO] [stderr] 517 | let path = Path::new(&path); [INFO] [stderr] 518 | if !modify.allow_includes.iter().any(|p| path.starts_with(p)) { [INFO] [stderr] 519 | bail!("invalid include path {:?}, allowed: {:?}", [INFO] [stderr] 520 | path, &modify.allow_includes); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:528:8 [INFO] [stderr] | [INFO] [stderr] 528 | if modify.replace_by_name.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.replace_by_name.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: large size difference between variants [INFO] [stderr] --> src/bin/nginx_config_mod/main.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Modify(Modify), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 40 | Modify(Box), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:121:32 [INFO] [stderr] | [INFO] [stderr] 121 | let mut pair = s.splitn(2, "="); [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: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:123:8 [INFO] [stderr] | [INFO] [stderr] 123 | if name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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/bin/nginx_config_mod/modify.rs:133:8 [INFO] [stderr] | [INFO] [stderr] 133 | if dirs.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `dirs.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/bin/nginx_config_mod/modify.rs:161:63 [INFO] [stderr] | [INFO] [stderr] 161 | } else if name[..name.len() - anchor.len()].ends_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/bin/nginx_config_mod/modify.rs:196:61 [INFO] [stderr] | [INFO] [stderr] 196 | } else if cur[..cur.len() - anchor.len()].ends_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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:208:42 [INFO] [stderr] | [INFO] [stderr] 208 | fn server_names(cfg: &mut Config, names: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | / match dir.item { [INFO] [stderr] 225 | | ast::Item::ServerName(ref mut names) => { [INFO] [stderr] 226 | | for name in names { [INFO] [stderr] 227 | | match *name { [INFO] [stderr] ... | [INFO] [stderr] 244 | | _ => {} [INFO] [stderr] 245 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 224 | if let ast::Item::ServerName(ref mut names) = dir.item { [INFO] [stderr] 225 | for name in names { [INFO] [stderr] 226 | match *name { [INFO] [stderr] 227 | Exact(ref mut n) | Suffix(ref mut n) | [INFO] [stderr] 228 | StarSuffix(ref mut n) [INFO] [stderr] 229 | => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:250:48 [INFO] [stderr] | [INFO] [stderr] 250 | fn proxy_pass_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | / match dir.item { [INFO] [stderr] 268 | | ast::Item::ProxyPass(ref mut value) => { [INFO] [stderr] 269 | | let mut s = value.to_string(); [INFO] [stderr] 270 | | for (regex, repl) in ®exes { [INFO] [stderr] ... | [INFO] [stderr] 278 | | _ => {} [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 267 | if let ast::Item::ProxyPass(ref mut value) = dir.item { [INFO] [stderr] 268 | let mut s = value.to_string(); [INFO] [stderr] 269 | for (regex, repl) in ®exes { [INFO] [stderr] 270 | s = regex.replace(s.as_ref(), *repl).to_string(); [INFO] [stderr] 271 | } [INFO] [stderr] 272 | match parse_proxy(&s) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:287:40 [INFO] [stderr] | [INFO] [stderr] 287 | fn if_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:320:50 [INFO] [stderr] | [INFO] [stderr] 320 | fn rewrite_host_regexes(cfg: &mut Config, items: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:337:9 [INFO] [stderr] | [INFO] [stderr] 337 | / match dir.item { [INFO] [stderr] 338 | | | ast::Item::Rewrite(ast::Rewrite { ref mut replacement, .. }) [INFO] [stderr] 339 | | => { [INFO] [stderr] 340 | | let mut s = replacement.to_string(); [INFO] [stderr] ... | [INFO] [stderr] 367 | | _ => {} [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 337 | if let ast::Item::Rewrite(ast::Rewrite { ref mut replacement, .. }) = dir.item { [INFO] [stderr] 338 | let mut s = replacement.to_string(); [INFO] [stderr] 339 | if !(s.starts_with("http://") || [INFO] [stderr] 340 | s.starts_with("https://") || [INFO] [stderr] 341 | s.starts_with("$scheme://")) [INFO] [stderr] 342 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:376:48 [INFO] [stderr] | [INFO] [stderr] 376 | fn proxy_pass_mapping(cfg: &mut Config, names: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / match dir.item { [INFO] [stderr] 393 | | ast::Item::ProxyPass(ref mut value) => { [INFO] [stderr] 394 | | let mut s = value.to_string(); [INFO] [stderr] 395 | | for (orig, new) in &pnames { [INFO] [stderr] ... | [INFO] [stderr] 407 | | _ => {} [INFO] [stderr] 408 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 392 | if let ast::Item::ProxyPass(ref mut value) = dir.item { [INFO] [stderr] 393 | let mut s = value.to_string(); [INFO] [stderr] 394 | for (orig, new) in &pnames { [INFO] [stderr] 395 | s = if let Some((pre, suf)) = proxy_subst(&s, orig) { [INFO] [stderr] 396 | format!("{}{}{}", pre, new, suf) [INFO] [stderr] 397 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:416:51 [INFO] [stderr] | [INFO] [stderr] 416 | fn replace_listen(dirs: &mut Vec, lst: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Listen]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | let ref is_listen = |x: &Directive| matches!(x.item, ast::Item::Listen(..)); [INFO] [stderr] | ----^^^^^^^^^^^^^----------------------------------------------------------- help: try: `let is_listen = &(|x: &Directive| matches!(x.item, ast::Item::Listen(..)));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:484:47 [INFO] [stderr] | [INFO] [stderr] 484 | replace_vars(cfg.directives_mut(), |name| vars.get(name).map(|x| *x)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `vars.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:487:8 [INFO] [stderr] | [INFO] [stderr] 487 | if modify.listen.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.listen.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/bin/nginx_config_mod/modify.rs:496:8 [INFO] [stderr] | [INFO] [stderr] 496 | if modify.server_name_mapping.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.server_name_mapping.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/bin/nginx_config_mod/modify.rs:500:8 [INFO] [stderr] | [INFO] [stderr] 500 | if modify.proxy_pass_mapping.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.proxy_pass_mapping.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/bin/nginx_config_mod/modify.rs:504:8 [INFO] [stderr] | [INFO] [stderr] 504 | if modify.proxy_pass_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.proxy_pass_regexes.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/bin/nginx_config_mod/modify.rs:507:8 [INFO] [stderr] | [INFO] [stderr] 507 | if modify.if_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.if_regexes.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/bin/nginx_config_mod/modify.rs:510:8 [INFO] [stderr] | [INFO] [stderr] 510 | if modify.rewrite_host_regexes.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.rewrite_host_regexes.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:515:9 [INFO] [stderr] | [INFO] [stderr] 515 | / match &dir.item { [INFO] [stderr] 516 | | Item::Include(path) => { [INFO] [stderr] 517 | | let path = path.to_string(); [INFO] [stderr] 518 | | let path = Path::new(&path); [INFO] [stderr] ... | [INFO] [stderr] 524 | | _ => {} [INFO] [stderr] 525 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 515 | if let Item::Include(path) = &dir.item { [INFO] [stderr] 516 | let path = path.to_string(); [INFO] [stderr] 517 | let path = Path::new(&path); [INFO] [stderr] 518 | if !modify.allow_includes.iter().any(|p| path.starts_with(p)) { [INFO] [stderr] 519 | bail!("invalid include path {:?}, allowed: {:?}", [INFO] [stderr] 520 | path, &modify.allow_includes); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bin/nginx_config_mod/modify.rs:528:8 [INFO] [stderr] | [INFO] [stderr] 528 | if modify.replace_by_name.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!modify.replace_by_name.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: large size difference between variants [INFO] [stderr] --> src/bin/nginx_config_mod/main.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Modify(Modify), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 40 | Modify(Box), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.78s [INFO] running `"docker" "inspect" "3ce706f551739ab4ba2ca891da699a4573cb8dfb91dc4a496d185bd3053f6d07"` [INFO] running `"docker" "rm" "-f" "3ce706f551739ab4ba2ca891da699a4573cb8dfb91dc4a496d185bd3053f6d07"` [INFO] [stdout] 3ce706f551739ab4ba2ca891da699a4573cb8dfb91dc4a496d185bd3053f6d07