[INFO] cloning repository https://github.com/jachinq/myimage [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jachinq/myimage" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjachinq%2Fmyimage", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjachinq%2Fmyimage'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c83c7154451839ca10e771cb3e27263c7ef0334f [INFO] linting jachinq/myimage against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjachinq%2Fmyimage" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jachinq/myimage [INFO] finished tweaking git repo https://github.com/jachinq/myimage [INFO] tweaked toml for git repo https://github.com/jachinq/myimage written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jachinq/myimage on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jachinq/myimage already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded avif-serialize v0.8.2 [INFO] [stderr] Downloaded ravif v0.11.11 [INFO] [stderr] Downloaded fdeflate v0.3.6 [INFO] [stderr] Downloaded built v0.7.5 [INFO] [stderr] Downloaded base64 v0.4.2 [INFO] [stderr] Downloaded utf8-ranges v1.0.5 [INFO] [stderr] Downloaded zune-jpeg v0.4.13 [INFO] [stderr] Downloaded gif v0.9.2 [INFO] [stderr] Downloaded rustc-serialize v0.3.25 [INFO] [stderr] Downloaded image-base64 v0.1.0 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.8 [INFO] [stderr] Downloaded image v0.12.4 [INFO] [stderr] Downloaded tiny_http v0.11.0 [INFO] [stderr] Downloaded image-webp v0.2.0 [INFO] [stderr] Downloaded num-rational v0.1.42 [INFO] [stderr] Downloaded rusqlite v0.29.0 [INFO] [stderr] Downloaded png v0.6.2 [INFO] [stderr] Downloaded ucd-util v0.1.10 [INFO] [stderr] Downloaded regex-syntax v0.5.6 [INFO] [stderr] Downloaded regex v0.2.11 [INFO] [stderr] Downloaded rust-crypto v0.2.36 [INFO] [stderr] Downloaded webp v0.3.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.26.0 [INFO] [stderr] Downloaded libwebp-sys v0.9.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f9a7ecce6175fb27917037345f13637d380c27a81b02bcf8088d7c8c7c62a1b6 [INFO] running `Command { std: "docker" "start" "-a" "f9a7ecce6175fb27917037345f13637d380c27a81b02bcf8088d7c8c7c62a1b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f9a7ecce6175fb27917037345f13637d380c27a81b02bcf8088d7c8c7c62a1b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f9a7ecce6175fb27917037345f13637d380c27a81b02bcf8088d7c8c7c62a1b6", kill_on_drop: false }` [INFO] [stdout] f9a7ecce6175fb27917037345f13637d380c27a81b02bcf8088d7c8c7c62a1b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f1c8dd89e2f2cf5982872e7251d3b487e005976663db6bea806f1cd6b197743e [INFO] running `Command { std: "docker" "start" "-a" "f1c8dd89e2f2cf5982872e7251d3b487e005976663db6bea806f1cd6b197743e", kill_on_drop: false }` [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling anyhow v1.0.93 [INFO] [stderr] Compiling thiserror v1.0.65 [INFO] [stderr] Compiling built v0.7.5 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking flate2 v1.0.35 [INFO] [stderr] Compiling gcc v0.3.55 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking v_frame v0.3.8 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Checking weezl v0.1.8 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking avif-serialize v0.8.2 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking fdeflate v0.3.6 [INFO] [stderr] Checking bytemuck v1.20.0 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling serde v1.0.204 [INFO] [stderr] Checking inflate v0.1.1 [INFO] [stderr] Compiling cc v1.1.6 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Checking bitflags v0.7.0 [INFO] [stderr] Checking ucd-util v0.1.10 [INFO] [stderr] Checking zune-jpeg v0.4.13 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking regex-syntax v0.5.6 [INFO] [stderr] Checking png v0.17.14 [INFO] [stderr] Checking gif v0.9.2 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking thread_local v0.3.6 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking image-webp v0.2.0 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking gif v0.13.1 [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Checking time v0.1.45 [INFO] [stderr] Checking aho-corasick v0.6.10 [INFO] [stderr] Checking rustc-serialize v0.3.25 [INFO] [stderr] Checking utf8-ranges v1.0.5 [INFO] [stderr] Compiling serde_json v1.0.120 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking png v0.6.2 [INFO] [stderr] Checking base64 v0.4.2 [INFO] [stderr] Checking hashlink v0.8.4 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking chunked_transfer v1.5.0 [INFO] [stderr] Checking ascii v1.1.0 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Compiling libsqlite3-sys v0.26.0 [INFO] [stderr] Compiling libwebp-sys v0.9.6 [INFO] [stderr] Checking av1-grain v0.2.3 [INFO] [stderr] Checking tiny_http v0.11.0 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Checking image v0.12.4 [INFO] [stderr] Compiling thiserror-impl v1.0.65 [INFO] [stderr] Compiling profiling-procmacros v1.0.16 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Checking image-base64 v0.1.0 [INFO] [stderr] Checking profiling v1.0.16 [INFO] [stderr] Checking ravif v0.11.11 [INFO] [stderr] Checking rusqlite v0.29.0 [INFO] [stderr] Checking image v0.25.5 [INFO] [stderr] Checking webp v0.3.0 [INFO] [stderr] Checking myimage v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handle/api.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | let params = parse_body(&body); [INFO] [stdout] | ^^^^^ help: change this to: `body` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/handle/api.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let origin_upload = quality >= 100 || quality < 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(10..100).contains(&quality)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/handle/api.rs:185:12 [INFO] [stdout] | [INFO] [stdout] 185 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle/api.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | return proc_result(Data::get_list(matcher)).json(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 218 - return proc_result(Data::get_list(matcher)).json(); [INFO] [stdout] 218 + proc_result(Data::get_list(matcher)).json() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/handle/mod.rs:85:24 [INFO] [stdout] | [INFO] [stdout] 85 | Header::from_bytes(&*header.as_bytes(), &*value.as_bytes()).unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `header.as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/handle/mod.rs:85:45 [INFO] [stdout] | [INFO] [stdout] 85 | Header::from_bytes(&*header.as_bytes(), &*value.as_bytes()).unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `value.as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handle/api.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | let params = parse_body(&body); [INFO] [stdout] | ^^^^^ help: change this to: `body` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/handle/api.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let origin_upload = quality >= 100 || quality < 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(10..100).contains(&quality)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/handle/api.rs:185:12 [INFO] [stdout] | [INFO] [stdout] 185 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle/api.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | return proc_result(Data::get_list(matcher)).json(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 218 - return proc_result(Data::get_list(matcher)).json(); [INFO] [stdout] 218 + proc_result(Data::get_list(matcher)).json() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/handle/mod.rs:85:24 [INFO] [stdout] | [INFO] [stdout] 85 | Header::from_bytes(&*header.as_bytes(), &*value.as_bytes()).unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `header.as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/handle/mod.rs:85:45 [INFO] [stdout] | [INFO] [stdout] 85 | Header::from_bytes(&*header.as_bytes(), &*value.as_bytes()).unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `value.as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some` after checking its variant with `is_ok` [INFO] [stdout] --> src/service.rs:102:31 [INFO] [stdout] | [INFO] [stdout] 101 | if some.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = some` [INFO] [stdout] 102 | single = Some(some.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some` after checking its variant with `is_ok` [INFO] [stdout] --> src/service.rs:102:31 [INFO] [stdout] | [INFO] [stdout] 101 | if some.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = some` [INFO] [stdout] 102 | single = Some(some.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ok` after checking its variant with `is_err` [INFO] [stdout] --> src/service.rs:177:54 [INFO] [stdout] | [INFO] [stdout] 176 | if ok.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ok` [INFO] [stdout] 177 | println!("delete thumb err={}, path={}", ok.unwrap_err(), thumb); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ok` after checking its variant with `is_err` [INFO] [stdout] --> src/service.rs:183:52 [INFO] [stdout] | [INFO] [stdout] 182 | if ok.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ok` [INFO] [stdout] 183 | println!("delete img err={}, path={}", ok.unwrap_err(), url); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/service.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | / match result { [INFO] [stdout] 216 | | Err(e) => println!("init table error={e}"), [INFO] [stdout] 217 | | _ => {} [INFO] [stdout] 218 | | }; [INFO] [stdout] | |_____________^ help: try: `if let Err(e) = result { println!("init table error={e}") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ok` after checking its variant with `is_err` [INFO] [stdout] --> src/service.rs:177:54 [INFO] [stdout] | [INFO] [stdout] 176 | if ok.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ok` [INFO] [stdout] 177 | println!("delete thumb err={}, path={}", ok.unwrap_err(), thumb); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ok` after checking its variant with `is_err` [INFO] [stdout] --> src/service.rs:183:52 [INFO] [stdout] | [INFO] [stdout] 182 | if ok.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ok` [INFO] [stdout] 183 | println!("delete img err={}, path={}", ok.unwrap_err(), url); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/service.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | values.push_str(","); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `values.push(',')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/service.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | / match result { [INFO] [stdout] 216 | | Err(e) => println!("init table error={e}"), [INFO] [stdout] 217 | | _ => {} [INFO] [stdout] 218 | | }; [INFO] [stdout] | |_____________^ help: try: `if let Err(e) = result { println!("init table error={e}") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/comm.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | directory.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `directory.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/service.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | values.push_str(","); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `values.push(',')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/comm.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | directory.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `directory.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/utils/comm.rs:67:32 [INFO] [stdout] | [INFO] [stdout] 67 | let size = params.get(key).or(Some(&binding)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(&binding)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] = note: `#[warn(clippy::or_then_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | s.push_str(","); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push(',')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `insert_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | s.insert_str(0, "("); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `insert` with a character literal: `s.insert(0, '(')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | s.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push(')')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/test.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | / let mut list = Vec::new(); [INFO] [stdout] 55 | | list.push(1); [INFO] [stdout] 56 | | list.push(2); [INFO] [stdout] 57 | | list.push(3); [INFO] [stdout] | |_________________^ help: consider using the `vec![]` macro: `let list = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/test.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / let mut list = Vec::new(); [INFO] [stdout] 62 | | list.push(1.1); [INFO] [stdout] 63 | | list.push(2.2); [INFO] [stdout] 64 | | list.push(3.3); [INFO] [stdout] | |___________________^ help: consider using the `vec![]` macro: `let list = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/test.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / let mut list = Vec::new(); [INFO] [stdout] 69 | | list.push(true); [INFO] [stdout] 70 | | list.push(false); [INFO] [stdout] 71 | | list.push(true); [INFO] [stdout] | |____________________^ help: consider using the `vec![]` macro: `let list = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils/image.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)); [INFO] [stdout] 41 + Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/test.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / let mut list = Vec::new(); [INFO] [stdout] 76 | | list.push("a"); [INFO] [stdout] 77 | | list.push("b"); [INFO] [stdout] 78 | | list.push("c"); [INFO] [stdout] | |___________________^ help: consider using the `vec![]` macro: `let list = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/image.rs:63:51 [INFO] [stdout] | [INFO] [stdout] 63 | let write_result = BufWriter::new(file).write(&buf); [INFO] [stdout] | ^^^^ help: change this to: `buf` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/comm.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | directory.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `directory.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/comm.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | directory.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `directory.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/utils/comm.rs:67:32 [INFO] [stdout] | [INFO] [stdout] 67 | let size = params.get(key).or(Some(&binding)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(&binding)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] = note: `#[warn(clippy::or_then_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/utils/matcher.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | / impl ToString for Op { [INFO] [stdout] 38 | | fn to_string(&self) -> String { [INFO] [stdout] 39 | | match self { [INFO] [stdout] 40 | | Op::Eq => "=".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | s.push_str(","); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push(',')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `insert_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | s.insert_str(0, "("); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `insert` with a character literal: `s.insert(0, '(')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/ext.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | s.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push(')')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/utils/matcher.rs:144:16 [INFO] [stdout] | [INFO] [stdout] 144 | if s.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/utils/matcher.rs:157:26 [INFO] [stdout] | [INFO] [stdout] 157 | if with_where && self.cond_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.cond_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/matcher.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | s.push_str("*"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push('*')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils/image.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)); [INFO] [stdout] 41 + Box::new(img.resize(nwidth, nheight, image::imageops::FilterType::Nearest)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/utils/matcher.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | / if limit > 0 && offset >= 0 { [INFO] [stdout] 195 | | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 196 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 193 ~ (Some(limit), Some(offset)) [INFO] [stdout] 194 ~ if limit > 0 && offset >= 0 => { [INFO] [stdout] 195 | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 196 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/matcher.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match (self.limit, self.offset) { [INFO] [stdout] 193 | | (Some(limit), Some(offset)) => { [INFO] [stdout] 194 | | if limit > 0 && offset >= 0 { [INFO] [stdout] 195 | | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] ... | [INFO] [stdout] 198 | | _ => {} [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 192 ~ if let (Some(limit), Some(offset)) = (self.limit, self.offset) { [INFO] [stdout] 193 + if limit > 0 && offset >= 0 { [INFO] [stdout] 194 + s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 195 + } [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/image.rs:63:51 [INFO] [stdout] | [INFO] [stdout] 63 | let write_result = BufWriter::new(file).write(&buf); [INFO] [stdout] | ^^^^ help: change this to: `buf` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/utils/matcher.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | / impl ToString for Op { [INFO] [stdout] 38 | | fn to_string(&self) -> String { [INFO] [stdout] 39 | | match self { [INFO] [stdout] 40 | | Op::Eq => "=".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/utils/matcher.rs:144:16 [INFO] [stdout] | [INFO] [stdout] 144 | if s.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!s.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/utils/matcher.rs:157:26 [INFO] [stdout] | [INFO] [stdout] 157 | if with_where && self.cond_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.cond_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/utils/matcher.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | s.push_str("*"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `s.push('*')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/utils/matcher.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | / if limit > 0 && offset >= 0 { [INFO] [stdout] 195 | | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 196 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 193 ~ (Some(limit), Some(offset)) [INFO] [stdout] 194 ~ if limit > 0 && offset >= 0 => { [INFO] [stdout] 195 | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 196 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils/matcher.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match (self.limit, self.offset) { [INFO] [stdout] 193 | | (Some(limit), Some(offset)) => { [INFO] [stdout] 194 | | if limit > 0 && offset >= 0 { [INFO] [stdout] 195 | | s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] ... | [INFO] [stdout] 198 | | _ => {} [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 192 ~ if let (Some(limit), Some(offset)) = (self.limit, self.offset) { [INFO] [stdout] 193 + if limit > 0 && offset >= 0 { [INFO] [stdout] 194 + s.push_str(&format!(" limit {} offset {}", limit, offset)); [INFO] [stdout] 195 + } [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.88s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "f1c8dd89e2f2cf5982872e7251d3b487e005976663db6bea806f1cd6b197743e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1c8dd89e2f2cf5982872e7251d3b487e005976663db6bea806f1cd6b197743e", kill_on_drop: false }` [INFO] [stdout] f1c8dd89e2f2cf5982872e7251d3b487e005976663db6bea806f1cd6b197743e