[INFO] fetching crate cliff3-util 0.2.5... [INFO] linting cliff3-util-0.2.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate cliff3-util 0.2.5 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate cliff3-util 0.2.5 [INFO] finished tweaking crates.io crate cliff3-util 0.2.5 [INFO] tweaked toml for crates.io crate cliff3-util 0.2.5 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cliff3-util 0.2.5 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 77 packages to latest compatible versions [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 7b017f0913085024e75cc7cdaff637cf93565c7bdec7f8002be41f477e61764b [INFO] running `Command { std: "docker" "start" "-a" "7b017f0913085024e75cc7cdaff637cf93565c7bdec7f8002be41f477e61764b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7b017f0913085024e75cc7cdaff637cf93565c7bdec7f8002be41f477e61764b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7b017f0913085024e75cc7cdaff637cf93565c7bdec7f8002be41f477e61764b", kill_on_drop: false }` [INFO] [stdout] 7b017f0913085024e75cc7cdaff637cf93565c7bdec7f8002be41f477e61764b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 05c4c55efcf95f7175601f4040f5126c3494e2423bc60900a242d0ecb9ec6fda [INFO] running `Command { std: "docker" "start" "-a" "05c4c55efcf95f7175601f4040f5126c3494e2423bc60900a242d0ecb9ec6fda", kill_on_drop: false }` [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking siphasher v1.0.2 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking phf_shared v0.12.1 [INFO] [stderr] Checking phf v0.12.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking cliff3-util v0.2.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return std::any::type_name::(); [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] 43 - return std::any::type_name::(); [INFO] [stdout] 43 + std::any::type_name::() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return std::any::type_name::(); [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] 90 - return std::any::type_name::(); [INFO] [stdout] 90 + std::any::type_name::() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:228:40 [INFO] [stdout] | [INFO] [stdout] 228 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 228 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 228 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:229:24 [INFO] [stdout] | [INFO] [stdout] 229 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [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: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:287:40 [INFO] [stdout] | [INFO] [stdout] 287 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 287 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 287 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:288:24 [INFO] [stdout] | [INFO] [stdout] 288 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/string_util.rs:295:25 [INFO] [stdout] | [INFO] [stdout] 295 | consonant = consonant % 588; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `consonant %= 588` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/string_util.rs:299:25 [INFO] [stdout] | [INFO] [stdout] 299 | consonant = consonant % 28; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `consonant %= 28` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:358:40 [INFO] [stdout] | [INFO] [stdout] 358 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 358 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 358 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:359:24 [INFO] [stdout] | [INFO] [stdout] 359 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:388:31 [INFO] [stdout] | [INFO] [stdout] 388 | } else if t >= 'ㄱ' && t <= 'ㅣ' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('ㄱ'..='ㅣ').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/string_util.rs:438:5 [INFO] [stdout] | [INFO] [stdout] 438 | return Some(v.join("")); [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] 438 - return Some(v.join("")); [INFO] [stdout] 438 + Some(v.join("")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/string_util.rs:422:5 [INFO] [stdout] | [INFO] [stdout] 422 | / if target.is_none() { [INFO] [stdout] 423 | | return None; [INFO] [stdout] 424 | | } [INFO] [stdout] | |_____^ help: replace it with: `target?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | if !salt.is_none() && !salt.unwrap().is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `salt.is_some()` [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: called `unwrap` on `salt` after checking its variant with `is_none` [INFO] [stdout] --> src/encrypt_util.rs:173:26 [INFO] [stdout] | [INFO] [stdout] 172 | if !salt.is_none() && !salt.unwrap().is_empty() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 173 | _hash.update(salt.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return Ok(Box::from(result.as_slice())); [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] 178 - return Ok(Box::from(result.as_slice())); [INFO] [stdout] 178 + Ok(Box::from(result.as_slice())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/encrypt_util.rs:252:19 [INFO] [stdout] | [INFO] [stdout] 252 | salt: match salt { [INFO] [stdout] | ___________________^ [INFO] [stdout] 253 | | None => None, [INFO] [stdout] 254 | | Some(v) => Some(Vec::from(v)), [INFO] [stdout] 255 | | }, [INFO] [stdout] | |_____________^ help: try: `salt.map(Vec::from)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | / return match &self.salt { [INFO] [stdout] 271 | | None => None, [INFO] [stdout] 272 | | Some(v) => { [INFO] [stdout] 273 | | return Some(v.as_ref()); [INFO] [stdout] 274 | | } [INFO] [stdout] 275 | | }; [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] 270 ~ match &self.salt { [INFO] [stdout] 271 + None => None, [INFO] [stdout] 272 + Some(v) => { [INFO] [stdout] 273 + return Some(v.as_ref()); [INFO] [stdout] 274 + } [INFO] [stdout] 275 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | / return match &self.salt { [INFO] [stdout] 307 | | None => None, [INFO] [stdout] 308 | | Some(v) => { [INFO] [stdout] 309 | | return Some(v.as_ref()); [INFO] [stdout] 310 | | } [INFO] [stdout] 311 | | }; [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] 306 ~ match &self.salt { [INFO] [stdout] 307 + None => None, [INFO] [stdout] 308 + Some(v) => { [INFO] [stdout] 309 + return Some(v.as_ref()); [INFO] [stdout] 310 + } [INFO] [stdout] 311 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | return self.result.as_ref(); [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] 317 - return self.result.as_ref(); [INFO] [stdout] 317 + self.result.as_ref() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | return self.iv.as_ref(); [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] 323 - return self.iv.as_ref(); [INFO] [stdout] 323 + self.iv.as_ref() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:351:5 [INFO] [stdout] | [INFO] [stdout] 351 | / return match salt { [INFO] [stdout] 352 | | None => Ok(()), [INFO] [stdout] 353 | | Some(v) => { [INFO] [stdout] 354 | | return if v.len() != 8 { [INFO] [stdout] ... | [INFO] [stdout] 362 | | }; [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] 351 ~ match salt { [INFO] [stdout] 352 + None => Ok(()), [INFO] [stdout] 353 + Some(v) => { [INFO] [stdout] 354 + return if v.len() != 8 { [INFO] [stdout] 355 + Err(InvalidArgumentError::from( [INFO] [stdout] 356 + "Salt length is invalid(must 8 bytes)", [INFO] [stdout] 357 + )) [INFO] [stdout] 358 + } else { [INFO] [stdout] 359 + Ok(()) [INFO] [stdout] 360 + }; [INFO] [stdout] 361 + } [INFO] [stdout] 362 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:538:16 [INFO] [stdout] | [INFO] [stdout] 538 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.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: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:817:5 [INFO] [stdout] | [INFO] [stdout] 817 | return Ok(rsa.unwrap()); [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] 817 - return Ok(rsa.unwrap()); [INFO] [stdout] 817 + Ok(rsa.unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:904:5 [INFO] [stdout] | [INFO] [stdout] 904 | return Ok(Box::from(rsa_result)); [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] 904 - return Ok(Box::from(rsa_result)); [INFO] [stdout] 904 + Ok(Box::from(rsa_result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:970:5 [INFO] [stdout] | [INFO] [stdout] 970 | return Ok(Vec::from(final_result)); // 실제 복호화된 길이 만큼만 반환 [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] 970 - return Ok(Vec::from(final_result)); // 실제 복호화된 길이 만큼만 반환 [INFO] [stdout] 970 + Ok(Vec::from(final_result))// 실제 복호화된 길이 만큼만 반환 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:1000:5 [INFO] [stdout] | [INFO] [stdout] 1000 | return Ok(Box::from(buffer.as_slice())); [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] 1000 - return Ok(Box::from(buffer.as_slice())); [INFO] [stdout] 1000 + Ok(Box::from(buffer.as_slice())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `openssl::rsa::Rsa` [INFO] [stdout] --> src/encrypt_util.rs:988:15 [INFO] [stdout] | [INFO] [stdout] 988 | let rsa = Rsa::from(public_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Rsa::from()`: `public_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/io_util.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return path.join(""); [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] 69 - return path.join(""); [INFO] [stdout] 69 + path.join("") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/io_util.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | return Ok(result.into_boxed_path()); [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] 167 - return Ok(result.into_boxed_path()); [INFO] [stdout] 167 + Ok(result.into_boxed_path()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `naive_datetime` after checking its variant with `is_err` [INFO] [stdout] --> src/date_util.rs:65:19 [INFO] [stdout] | [INFO] [stdout] 64 | if naive_datetime.is_err() { [INFO] [stdout] | -------------------------- help: try: `if let Err() = &naive_datetime` [INFO] [stdout] 65 | let err = naive_datetime.as_ref().unwrap_err(); [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 `utc_datetime` after checking its variant with `is_err` [INFO] [stdout] --> src/date_util.rs:142:19 [INFO] [stdout] | [INFO] [stdout] 141 | if utc_datetime.is_err() { [INFO] [stdout] | ------------------------ help: try: `if let Err() = &utc_datetime` [INFO] [stdout] 142 | let err = utc_datetime.as_ref().unwrap_err(); [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: using `clone` on type `NaiveDateTime` which implements the `Copy` trait [INFO] [stdout] --> src/date_util.rs:242:22 [INFO] [stdout] | [INFO] [stdout] 242 | let mut monday = datetime.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*datetime` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveDateTime` which implements the `Copy` trait [INFO] [stdout] --> src/date_util.rs:248:22 [INFO] [stdout] | [INFO] [stdout] 248 | let mut sunday = monday.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `monday` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return std::any::type_name::(); [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] 43 - return std::any::type_name::(); [INFO] [stdout] 43 + std::any::type_name::() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return std::any::type_name::(); [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] 90 - return std::any::type_name::(); [INFO] [stdout] 90 + std::any::type_name::() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:228:40 [INFO] [stdout] | [INFO] [stdout] 228 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 228 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 228 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:229:24 [INFO] [stdout] | [INFO] [stdout] 229 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [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: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:287:40 [INFO] [stdout] | [INFO] [stdout] 287 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 287 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 287 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:288:24 [INFO] [stdout] | [INFO] [stdout] 288 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/string_util.rs:295:25 [INFO] [stdout] | [INFO] [stdout] 295 | consonant = consonant % 588; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `consonant %= 588` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/string_util.rs:299:25 [INFO] [stdout] | [INFO] [stdout] 299 | consonant = consonant % 28; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `consonant %= 28` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/string_util.rs:358:40 [INFO] [stdout] | [INFO] [stdout] 358 | for (_, t) in v.chars().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 358 - for (_, t) in v.chars().enumerate() { [INFO] [stdout] 358 + for t in v.chars() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:359:24 [INFO] [stdout] | [INFO] [stdout] 359 | if t >= '가' && t <= '힣' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('가'..='힣').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/string_util.rs:388:31 [INFO] [stdout] | [INFO] [stdout] 388 | } else if t >= 'ㄱ' && t <= 'ㅣ' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('ㄱ'..='ㅣ').contains(&t)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/string_util.rs:438:5 [INFO] [stdout] | [INFO] [stdout] 438 | return Some(v.join("")); [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] 438 - return Some(v.join("")); [INFO] [stdout] 438 + Some(v.join("")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/string_util.rs:422:5 [INFO] [stdout] | [INFO] [stdout] 422 | / if target.is_none() { [INFO] [stdout] 423 | | return None; [INFO] [stdout] 424 | | } [INFO] [stdout] | |_____^ help: replace it with: `target?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/string_util.rs:506:17 [INFO] [stdout] | [INFO] [stdout] 506 | assert!(!result.is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `result.is_ok()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/string_util.rs:545:13 [INFO] [stdout] | [INFO] [stdout] 545 | !validate_email(Some(email)).is_err(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `validate_email(Some(email)).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/string_util.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | !validate_email(Some(email)).is_err(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `validate_email(Some(email)).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/string_util.rs:559:13 [INFO] [stdout] | [INFO] [stdout] 559 | !validate_email(Some(email)).is_err(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `validate_email(Some(email)).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | if !salt.is_none() && !salt.unwrap().is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `salt.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `salt` after checking its variant with `is_none` [INFO] [stdout] --> src/encrypt_util.rs:173:26 [INFO] [stdout] | [INFO] [stdout] 172 | if !salt.is_none() && !salt.unwrap().is_empty() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 173 | _hash.update(salt.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return Ok(Box::from(result.as_slice())); [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] 178 - return Ok(Box::from(result.as_slice())); [INFO] [stdout] 178 + Ok(Box::from(result.as_slice())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/encrypt_util.rs:252:19 [INFO] [stdout] | [INFO] [stdout] 252 | salt: match salt { [INFO] [stdout] | ___________________^ [INFO] [stdout] 253 | | None => None, [INFO] [stdout] 254 | | Some(v) => Some(Vec::from(v)), [INFO] [stdout] 255 | | }, [INFO] [stdout] | |_____________^ help: try: `salt.map(Vec::from)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | / return match &self.salt { [INFO] [stdout] 271 | | None => None, [INFO] [stdout] 272 | | Some(v) => { [INFO] [stdout] 273 | | return Some(v.as_ref()); [INFO] [stdout] 274 | | } [INFO] [stdout] 275 | | }; [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] 270 ~ match &self.salt { [INFO] [stdout] 271 + None => None, [INFO] [stdout] 272 + Some(v) => { [INFO] [stdout] 273 + return Some(v.as_ref()); [INFO] [stdout] 274 + } [INFO] [stdout] 275 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | / return match &self.salt { [INFO] [stdout] 307 | | None => None, [INFO] [stdout] 308 | | Some(v) => { [INFO] [stdout] 309 | | return Some(v.as_ref()); [INFO] [stdout] 310 | | } [INFO] [stdout] 311 | | }; [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] 306 ~ match &self.salt { [INFO] [stdout] 307 + None => None, [INFO] [stdout] 308 + Some(v) => { [INFO] [stdout] 309 + return Some(v.as_ref()); [INFO] [stdout] 310 + } [INFO] [stdout] 311 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | return self.result.as_ref(); [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] 317 - return self.result.as_ref(); [INFO] [stdout] 317 + self.result.as_ref() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | return self.iv.as_ref(); [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] 323 - return self.iv.as_ref(); [INFO] [stdout] 323 + self.iv.as_ref() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:351:5 [INFO] [stdout] | [INFO] [stdout] 351 | / return match salt { [INFO] [stdout] 352 | | None => Ok(()), [INFO] [stdout] 353 | | Some(v) => { [INFO] [stdout] 354 | | return if v.len() != 8 { [INFO] [stdout] ... | [INFO] [stdout] 362 | | }; [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] 351 ~ match salt { [INFO] [stdout] 352 + None => Ok(()), [INFO] [stdout] 353 + Some(v) => { [INFO] [stdout] 354 + return if v.len() != 8 { [INFO] [stdout] 355 + Err(InvalidArgumentError::from( [INFO] [stdout] 356 + "Salt length is invalid(must 8 bytes)", [INFO] [stdout] 357 + )) [INFO] [stdout] 358 + } else { [INFO] [stdout] 359 + Ok(()) [INFO] [stdout] 360 + }; [INFO] [stdout] 361 + } [INFO] [stdout] 362 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:538:16 [INFO] [stdout] | [INFO] [stdout] 538 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.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: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:817:5 [INFO] [stdout] | [INFO] [stdout] 817 | return Ok(rsa.unwrap()); [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] 817 - return Ok(rsa.unwrap()); [INFO] [stdout] 817 + Ok(rsa.unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:904:5 [INFO] [stdout] | [INFO] [stdout] 904 | return Ok(Box::from(rsa_result)); [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] 904 - return Ok(Box::from(rsa_result)); [INFO] [stdout] 904 + Ok(Box::from(rsa_result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:970:5 [INFO] [stdout] | [INFO] [stdout] 970 | return Ok(Vec::from(final_result)); // 실제 복호화된 길이 만큼만 반환 [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] 970 - return Ok(Vec::from(final_result)); // 실제 복호화된 길이 만큼만 반환 [INFO] [stdout] 970 + Ok(Vec::from(final_result))// 실제 복호화된 길이 만큼만 반환 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/encrypt_util.rs:1000:5 [INFO] [stdout] | [INFO] [stdout] 1000 | return Ok(Box::from(buffer.as_slice())); [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] 1000 - return Ok(Box::from(buffer.as_slice())); [INFO] [stdout] 1000 + Ok(Box::from(buffer.as_slice())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `openssl::rsa::Rsa` [INFO] [stdout] --> src/encrypt_util.rs:988:15 [INFO] [stdout] | [INFO] [stdout] 988 | let rsa = Rsa::from(public_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Rsa::from()`: `public_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1016:17 [INFO] [stdout] | [INFO] [stdout] 1016 | assert!(!result.is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1028:17 [INFO] [stdout] | [INFO] [stdout] 1028 | assert!(!result.is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1085:17 [INFO] [stdout] | [INFO] [stdout] 1085 | assert!(!encrypt_result.is_err(), "aes 암호화 오류 발생"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `encrypt_result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1131:17 [INFO] [stdout] | [INFO] [stdout] 1131 | assert!(!decrypt_result.is_err(), "aes 복호화 오류 발생"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `decrypt_result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `result_value.salt` after checking its variant with `is_some` [INFO] [stdout] --> src/encrypt_util.rs:1116:30 [INFO] [stdout] | [INFO] [stdout] 1115 | if result_value.salt.is_some() { [INFO] [stdout] | ------------------------------ help: try: `if let Some() = result_value.salt` [INFO] [stdout] 1116 | unwrapped_salt = result_value.salt.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1156:17 [INFO] [stdout] | [INFO] [stdout] 1156 | assert!(!result1.is_err(), "RSA 2048 암호화 실패"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `result1.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1182:17 [INFO] [stdout] | [INFO] [stdout] 1182 | assert!(!result1.is_err(), "RSA 8192 암호화 실패"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `result1.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/encrypt_util.rs:1244:17 [INFO] [stdout] | [INFO] [stdout] 1244 | assert!(!decrypt2.is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `decrypt2.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1203:17 [INFO] [stdout] | [INFO] [stdout] 1203 | assert!(result2_raw.private_key().len() > 0, "개인키 반환 실패"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.private_key().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1205:13 [INFO] [stdout] | [INFO] [stdout] 1205 | result2_raw.private_exponent().len() > 0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.private_exponent().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1209:13 [INFO] [stdout] | [INFO] [stdout] 1209 | result2_raw.private_modulus().len() > 0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.private_modulus().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1212:17 [INFO] [stdout] | [INFO] [stdout] 1212 | assert!(result2_raw.public_key().len() > 0, "공개키 반환 실패"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.public_key().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1214:13 [INFO] [stdout] | [INFO] [stdout] 1214 | result2_raw.public_exponent().len() > 0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.public_exponent().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1218:13 [INFO] [stdout] | [INFO] [stdout] 1218 | result2_raw.public_modulus().len() > 0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.public_modulus().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: length comparison to zero [INFO] [stdout] --> src/encrypt_util.rs:1221:17 [INFO] [stdout] | [INFO] [stdout] 1221 | assert!(result2_raw.result().len() > 0, "암호화 결과 반환 실패"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result2_raw.result().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: unneeded `return` statement [INFO] [stdout] --> src/io_util.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return path.join(""); [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] 69 - return path.join(""); [INFO] [stdout] 69 + path.join("") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/io_util.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | return Ok(result.into_boxed_path()); [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] 167 - return Ok(result.into_boxed_path()); [INFO] [stdout] 167 + Ok(result.into_boxed_path()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `naive_datetime` after checking its variant with `is_err` [INFO] [stdout] --> src/date_util.rs:65:19 [INFO] [stdout] | [INFO] [stdout] 64 | if naive_datetime.is_err() { [INFO] [stdout] | -------------------------- help: try: `if let Err() = &naive_datetime` [INFO] [stdout] 65 | let err = naive_datetime.as_ref().unwrap_err(); [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 `utc_datetime` after checking its variant with `is_err` [INFO] [stdout] --> src/date_util.rs:142:19 [INFO] [stdout] | [INFO] [stdout] 141 | if utc_datetime.is_err() { [INFO] [stdout] | ------------------------ help: try: `if let Err() = &utc_datetime` [INFO] [stdout] 142 | let err = utc_datetime.as_ref().unwrap_err(); [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: using `clone` on type `NaiveDateTime` which implements the `Copy` trait [INFO] [stdout] --> src/date_util.rs:242:22 [INFO] [stdout] | [INFO] [stdout] 242 | let mut monday = datetime.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*datetime` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveDateTime` which implements the `Copy` trait [INFO] [stdout] --> src/date_util.rs:248:22 [INFO] [stdout] | [INFO] [stdout] 248 | let mut sunday = monday.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `monday` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.05s [INFO] running `Command { std: "docker" "inspect" "05c4c55efcf95f7175601f4040f5126c3494e2423bc60900a242d0ecb9ec6fda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "05c4c55efcf95f7175601f4040f5126c3494e2423bc60900a242d0ecb9ec6fda", kill_on_drop: false }` [INFO] [stdout] 05c4c55efcf95f7175601f4040f5126c3494e2423bc60900a242d0ecb9ec6fda