[INFO] crate pinyin_zhuyin 0.1.2 is already in cache [INFO] extracting crate pinyin_zhuyin 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/pinyin_zhuyin/0.1.2 [INFO] extracting crate pinyin_zhuyin 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/pinyin_zhuyin/0.1.2 [INFO] validating manifest of pinyin_zhuyin-0.1.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of pinyin_zhuyin-0.1.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing pinyin_zhuyin-0.1.2 [INFO] finished frobbing pinyin_zhuyin-0.1.2 [INFO] frobbed toml for pinyin_zhuyin-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/pinyin_zhuyin/0.1.2/Cargo.toml [INFO] started frobbing pinyin_zhuyin-0.1.2 [INFO] finished frobbing pinyin_zhuyin-0.1.2 [INFO] frobbed toml for pinyin_zhuyin-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/pinyin_zhuyin/0.1.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting pinyin_zhuyin-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/pinyin_zhuyin/0.1.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 38db734f4c629112ef3cef2c8190ebd7c359ed02b5e135b676b9afb68308bfee [INFO] running `"docker" "start" "-a" "38db734f4c629112ef3cef2c8190ebd7c359ed02b5e135b676b9afb68308bfee"` [INFO] [stderr] Compiling pinyin_zhuyin v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> /opt/crater/target/debug/build/pinyin_zhuyin-4afa675d9ea1700d/out/codegen.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | key: 732231254413039614, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `732_231_254_413_039_614` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> /opt/crater/target/debug/build/pinyin_zhuyin-4afa675d9ea1700d/out/codegen.rs:80:10 [INFO] [stderr] | [INFO] [stderr] 80 | key: 732231254413039614, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `732_231_254_413_039_614` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return c == b'a' || c == b'e' || c == b'i' || c == b'o' || c == b'u' || c == b'v' [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c == b'a' || c == b'e' || c == b'i' || c == b'o' || c == b'u' || c == b'v'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | return c >= b'a' && c <= b'z' && !is_rhyme(c) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c >= b'a' && c <= b'z' && !is_rhyme(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | return Some(unsafe { str::from_utf8_unchecked(&consonant).to_owned() } + &rhyme) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(unsafe { str::from_utf8_unchecked(&consonant).to_owned() } + &rhyme)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | / if consonant.len() > 0 { [INFO] [stderr] 273 | | if MAP_P2Z.get(unsafe { str::from_utf8_unchecked(consonant) }) == None { [INFO] [stderr] 274 | | return None [INFO] [stderr] 275 | | } [INFO] [stderr] 276 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 272 | if consonant.len() > 0 && MAP_P2Z.get(unsafe { str::from_utf8_unchecked(consonant) }) == None { [INFO] [stderr] 273 | return None [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:352:12 [INFO] [stderr] | [INFO] [stderr] 352 | } else if consonant == b"y" { [INFO] [stderr] | ____________^ [INFO] [stderr] 353 | | if rhyme == b"v" || rhyme == b"e" || rhyme == b"ve" || rhyme == b"in" || [INFO] [stderr] 354 | | rhyme == b"van" || rhyme == b"ing" || rhyme == b"vn" { [INFO] [stderr] 355 | | consonant.clear(); [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 352 | } else if consonant == b"y" && (rhyme == b"v" || rhyme == b"e" || rhyme == b"ve" || rhyme == b"in" || [INFO] [stderr] 353 | rhyme == b"van" || rhyme == b"ing" || rhyme == b"vn") { [INFO] [stderr] 354 | consonant.clear(); [INFO] [stderr] 355 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> /opt/crater/target/debug/build/pinyin_zhuyin-4afa675d9ea1700d/out/codegen.rs:2:10 [INFO] [stderr] | [INFO] [stderr] 2 | key: 732231254413039614, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `732_231_254_413_039_614` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> /opt/crater/target/debug/build/pinyin_zhuyin-4afa675d9ea1700d/out/codegen.rs:80:10 [INFO] [stderr] | [INFO] [stderr] 80 | key: 732231254413039614, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `732_231_254_413_039_614` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return c == b'a' || c == b'e' || c == b'i' || c == b'o' || c == b'u' || c == b'v' [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c == b'a' || c == b'e' || c == b'i' || c == b'o' || c == b'u' || c == b'v'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | return c >= b'a' && c <= b'z' && !is_rhyme(c) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `c >= b'a' && c <= b'z' && !is_rhyme(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | return Some(unsafe { str::from_utf8_unchecked(&consonant).to_owned() } + &rhyme) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(unsafe { str::from_utf8_unchecked(&consonant).to_owned() } + &rhyme)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | / if consonant.len() > 0 { [INFO] [stderr] 273 | | if MAP_P2Z.get(unsafe { str::from_utf8_unchecked(consonant) }) == None { [INFO] [stderr] 274 | | return None [INFO] [stderr] 275 | | } [INFO] [stderr] 276 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 272 | if consonant.len() > 0 && MAP_P2Z.get(unsafe { str::from_utf8_unchecked(consonant) }) == None { [INFO] [stderr] 273 | return None [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:352:12 [INFO] [stderr] | [INFO] [stderr] 352 | } else if consonant == b"y" { [INFO] [stderr] | ____________^ [INFO] [stderr] 353 | | if rhyme == b"v" || rhyme == b"e" || rhyme == b"ve" || rhyme == b"in" || [INFO] [stderr] 354 | | rhyme == b"van" || rhyme == b"ing" || rhyme == b"vn" { [INFO] [stderr] 355 | | consonant.clear(); [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 352 | } else if consonant == b"y" && (rhyme == b"v" || rhyme == b"e" || rhyme == b"ve" || rhyme == b"in" || [INFO] [stderr] 353 | rhyme == b"van" || rhyme == b"ing" || rhyme == b"vn") { [INFO] [stderr] 354 | consonant.clear(); [INFO] [stderr] 355 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:145:8 [INFO] [stderr] | [INFO] [stderr] 145 | if rhyme.len() == 0 || s.len() - pos > 2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:194:8 [INFO] [stderr] | [INFO] [stderr] 194 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:272:8 [INFO] [stderr] | [INFO] [stderr] 272 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:282:12 [INFO] [stderr] | [INFO] [stderr] 282 | if consonant.len() > 0 && rhyme_bytes[0] == b'u' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:334:28 [INFO] [stderr] | [INFO] [stderr] 334 | if rhyme[0] == b'u' && consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:359:8 [INFO] [stderr] | [INFO] [stderr] 359 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:368:8 [INFO] [stderr] | [INFO] [stderr] 368 | if rhyme.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:403:8 [INFO] [stderr] | [INFO] [stderr] 403 | if rhyme.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:425:13 [INFO] [stderr] | [INFO] [stderr] 425 | / match i == 0 && is_consonant(decoded[0]) { [INFO] [stderr] 426 | | true => consonant.extend_from_slice(decoded), [INFO] [stderr] 427 | | false => rhyme.extend_from_slice(c.as_bytes()), [INFO] [stderr] 428 | | } [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if i == 0 && is_consonant(decoded[0]) { consonant.extend_from_slice(decoded) } else { rhyme.extend_from_slice(c.as_bytes()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/lib.rs:434:36 [INFO] [stderr] | [INFO] [stderr] 434 | for (j, t) in ZHUYIN_TONES.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:447:8 [INFO] [stderr] | [INFO] [stderr] 447 | if rhyme.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:472:5 [INFO] [stderr] | [INFO] [stderr] 472 | if consonant.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `pinyin_zhuyin`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:145:8 [INFO] [stderr] | [INFO] [stderr] 145 | if rhyme.len() == 0 || s.len() - pos > 2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:194:8 [INFO] [stderr] | [INFO] [stderr] 194 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:272:8 [INFO] [stderr] | [INFO] [stderr] 272 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:282:12 [INFO] [stderr] | [INFO] [stderr] 282 | if consonant.len() > 0 && rhyme_bytes[0] == b'u' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:334:28 [INFO] [stderr] | [INFO] [stderr] 334 | if rhyme[0] == b'u' && consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:359:8 [INFO] [stderr] | [INFO] [stderr] 359 | if consonant.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:368:8 [INFO] [stderr] | [INFO] [stderr] 368 | if rhyme.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:403:8 [INFO] [stderr] | [INFO] [stderr] 403 | if rhyme.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:425:13 [INFO] [stderr] | [INFO] [stderr] 425 | / match i == 0 && is_consonant(decoded[0]) { [INFO] [stderr] 426 | | true => consonant.extend_from_slice(decoded), [INFO] [stderr] 427 | | false => rhyme.extend_from_slice(c.as_bytes()), [INFO] [stderr] 428 | | } [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if i == 0 && is_consonant(decoded[0]) { consonant.extend_from_slice(decoded) } else { rhyme.extend_from_slice(c.as_bytes()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/lib.rs:434:36 [INFO] [stderr] | [INFO] [stderr] 434 | for (j, t) in ZHUYIN_TONES.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:447:8 [INFO] [stderr] | [INFO] [stderr] 447 | if rhyme.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rhyme.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:472:5 [INFO] [stderr] | [INFO] [stderr] 472 | if consonant.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `consonant.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/lib.rs:578:5 [INFO] [stderr] | [INFO] [stderr] 578 | / fn encode_zhuyin_test() { [INFO] [stderr] 579 | | assert_eq!(encode_zhuyin("e5"), s!("ㄝ")); [INFO] [stderr] 580 | | assert_eq!(encode_zhuyin("ju3"), s!("ㄐㄩˇ")); [INFO] [stderr] 581 | | assert_eq!(encode_zhuyin("jv3"), s!("ㄐㄩˇ")); [INFO] [stderr] ... | [INFO] [stderr] 609 | | assert_eq!(encode_zhuyin(""), None); [INFO] [stderr] 610 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/lib.rs:639:5 [INFO] [stderr] | [INFO] [stderr] 639 | / fn decode_zhuyin_test() { [INFO] [stderr] 640 | | assert_eq!(decode_zhuyin("ㄝ"), s!("e5")); [INFO] [stderr] 641 | | assert_eq!(decode_zhuyin("ㄐㄩ˙"), s!("jv5")); [INFO] [stderr] 642 | | assert_eq!(decode_zhuyin("ㄌㄩˇ"), s!("lv3")); [INFO] [stderr] ... | [INFO] [stderr] 671 | | assert_eq!(decode_zhuyin(""), None); [INFO] [stderr] 672 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `pinyin_zhuyin`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "38db734f4c629112ef3cef2c8190ebd7c359ed02b5e135b676b9afb68308bfee"` [INFO] running `"docker" "rm" "-f" "38db734f4c629112ef3cef2c8190ebd7c359ed02b5e135b676b9afb68308bfee"` [INFO] [stdout] 38db734f4c629112ef3cef2c8190ebd7c359ed02b5e135b676b9afb68308bfee