[INFO] crate chardet 0.2.4 is already in cache [INFO] extracting crate chardet 0.2.4 into work/ex/clippy-test-run/sources/stable/reg/chardet/0.2.4 [INFO] extracting crate chardet 0.2.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/chardet/0.2.4 [INFO] validating manifest of chardet-0.2.4 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of chardet-0.2.4 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing chardet-0.2.4 [INFO] finished frobbing chardet-0.2.4 [INFO] frobbed toml for chardet-0.2.4 written to work/ex/clippy-test-run/sources/stable/reg/chardet/0.2.4/Cargo.toml [INFO] started frobbing chardet-0.2.4 [INFO] finished frobbing chardet-0.2.4 [INFO] frobbed toml for chardet-0.2.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/chardet/0.2.4/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting chardet-0.2.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/chardet/0.2.4:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 225ee7ebefa7425edd2ddbfbb66090a0690df6609776bed8b2d545757f04dc4f [INFO] running `"docker" "start" "-a" "225ee7ebefa7425edd2ddbfbb66090a0690df6609776bed8b2d545757f04dc4f"` [INFO] [stderr] Checking chardet v0.2.4 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/jpcntx.rs:7191:9 [INFO] [stderr] | [INFO] [stderr] 7191 | return (-1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(-1, char_len)` [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: this if statement can be collapsed [INFO] [stderr] --> src/jpcntx.rs:7186:9 [INFO] [stderr] | [INFO] [stderr] 7186 | / if byte_str.len() > 1 { [INFO] [stderr] 7187 | | if (byte_str[0] == 0x82) && ((byte_str[1] >= 0x9F) && (byte_str[1] <= 0xF1)) { [INFO] [stderr] 7188 | | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] 7189 | | } [INFO] [stderr] 7190 | | } [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] 7186 | if byte_str.len() > 1 && (byte_str[0] == 0x82) && ((byte_str[1] >= 0x9F) && (byte_str[1] <= 0xF1)) { [INFO] [stderr] 7187 | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] 7188 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/jpcntx.rs:7266:9 [INFO] [stderr] | [INFO] [stderr] 7266 | return (-1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(-1, char_len)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/jpcntx.rs:7261:9 [INFO] [stderr] | [INFO] [stderr] 7261 | / if byte_str.len() > 1 { [INFO] [stderr] 7262 | | if (byte_str[0] == 0xA4) && ((byte_str[1] >= 0xA1) && (byte_str[1] <= 0xF3)) { [INFO] [stderr] 7263 | | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] 7264 | | } [INFO] [stderr] 7265 | | } [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] 7261 | if byte_str.len() > 1 && (byte_str[0] == 0xA4) && ((byte_str[1] >= 0xA1) && (byte_str[1] <= 0xF3)) { [INFO] [stderr] 7262 | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] 7263 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/chardistribution.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | return self.c_sure_yes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.c_sure_yes` [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/chardistribution.rs:373:17 [INFO] [stderr] | [INFO] [stderr] 373 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/chardistribution.rs:376:21 [INFO] [stderr] | [INFO] [stderr] 376 | return Some(order as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(order as usize)` [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/chardistribution.rs:378:21 [INFO] [stderr] | [INFO] [stderr] 378 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/chardistribution.rs:374:20 [INFO] [stderr] | [INFO] [stderr] 374 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 375 | | if order >= 0 { [INFO] [stderr] 376 | | return Some(order as usize); [INFO] [stderr] 377 | | } else { [INFO] [stderr] 378 | | return None; [INFO] [stderr] 379 | | } [INFO] [stderr] 380 | | } [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] 374 | } else if order >= 0 { [INFO] [stderr] 375 | return Some(order as usize); [INFO] [stderr] 376 | } else { [INFO] [stderr] 377 | return None; [INFO] [stderr] 378 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/mbcharsetprober.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 68 | | if (enoughdata) && (self.get_confidence() > 0.95) { [INFO] [stderr] 69 | | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 70 | | } [INFO] [stderr] 71 | | } [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] 67 | if self.m_state == ProbingState::Detecting && (enoughdata) && (self.get_confidence() > 0.95) { [INFO] [stderr] 68 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 69 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/eucjpprober.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / if self.base.m_state == ProbingState::Detecting { [INFO] [stderr] 71 | | if (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 72 | | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [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] 70 | if self.base.m_state == ProbingState::Detecting && (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 71 | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 72 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/sjisprober.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | / if self.base.m_state == ProbingState::Detecting { [INFO] [stderr] 73 | | if (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 74 | | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [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] 72 | if self.base.m_state == ProbingState::Detecting && (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 73 | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 74 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/utf8prober.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 48 | | if self.get_confidence() > 0.95 { [INFO] [stderr] 49 | | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 50 | | } [INFO] [stderr] 51 | | } [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] 47 | if self.m_state == ProbingState::Detecting && self.get_confidence() > 0.95 { [INFO] [stderr] 48 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 49 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/escprober.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | return &self.m_state; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.m_state` [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/sbcharsetprober.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 100 | | if self.m_total_seqs > self.c_sb_enough_rel_threshold { [INFO] [stderr] 101 | | let confidence = self.get_confidence(); [INFO] [stderr] 102 | | if confidence > self.c_positive_shortcut_threshold { [INFO] [stderr] ... | [INFO] [stderr] 107 | | } [INFO] [stderr] 108 | | } [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] 99 | if self.m_state == ProbingState::Detecting && self.m_total_seqs > self.c_sb_enough_rel_threshold { [INFO] [stderr] 100 | let confidence = self.get_confidence(); [INFO] [stderr] 101 | if confidence > self.c_positive_shortcut_threshold { [INFO] [stderr] 102 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 103 | } else if confidence < self.c_negative_shortcut_threshold { [INFO] [stderr] 104 | self.m_state = ProbingState::NotMe; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/langbulgarianmodel.rs:194:29 [INFO] [stderr] | [INFO] [stderr] 194 | typical_positive_ratio: 0.969392, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.969_392` [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] --> src/langbulgarianmodel.rs:204:29 [INFO] [stderr] | [INFO] [stderr] 204 | typical_positive_ratio: 0.969392, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.969_392` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:267:29 [INFO] [stderr] | [INFO] [stderr] 267 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:277:29 [INFO] [stderr] | [INFO] [stderr] 277 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:287:29 [INFO] [stderr] | [INFO] [stderr] 287 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:297:29 [INFO] [stderr] | [INFO] [stderr] 297 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:307:29 [INFO] [stderr] | [INFO] [stderr] 307 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langgreekmodel.rs:191:29 [INFO] [stderr] | [INFO] [stderr] 191 | typical_positive_ratio: 0.982851, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.982_851` [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: long literal lacking separators [INFO] [stderr] --> src/langgreekmodel.rs:201:29 [INFO] [stderr] | [INFO] [stderr] 201 | typical_positive_ratio: 0.982851, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.982_851` [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: long literal lacking separators [INFO] [stderr] --> src/langhebrewmodel.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | typical_positive_ratio: 0.984004, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.984_004` [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: long literal lacking separators [INFO] [stderr] --> src/langthaimodel.rs:173:29 [INFO] [stderr] | [INFO] [stderr] 173 | typical_positive_ratio: 0.926386, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.926_386` [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: long literal lacking separators [INFO] [stderr] --> src/langturkishmodel.rs:165:29 [INFO] [stderr] | [INFO] [stderr] 165 | typical_positive_ratio: 0.970290, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.970_290` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/hebrewprober.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 92 | | if (self.m_before_prev == 0x20) && (self.is_final(self.m_prev)) && (cur != 0x20) { [INFO] [stderr] 93 | | self.m_final_char_visual_score += 1; [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [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] 91 | } else if (self.m_before_prev == 0x20) && (self.is_final(self.m_prev)) && (cur != 0x20) { [INFO] [stderr] 92 | self.m_final_char_visual_score += 1; [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:302:16 [INFO] [stderr] | [INFO] [stderr] 302 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 303 | | if self.m_got_data { [INFO] [stderr] 304 | | match self.m_input_state { [INFO] [stderr] 305 | | enums::InputState::PureAscii => { [INFO] [stderr] ... | [INFO] [stderr] 331 | | } [INFO] [stderr] 332 | | } [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] 302 | } else if self.m_got_data { [INFO] [stderr] 303 | match self.m_input_state { [INFO] [stderr] 304 | enums::InputState::PureAscii => { [INFO] [stderr] 305 | self.m_detected_charset = "ascii".to_string(); [INFO] [stderr] 306 | self.m_detected_confidence = 1.0; [INFO] [stderr] 307 | self.m_detected_language = "".to_string(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/jpcntx.rs:7191:9 [INFO] [stderr] | [INFO] [stderr] 7191 | return (-1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(-1, char_len)` [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: this if statement can be collapsed [INFO] [stderr] --> src/jpcntx.rs:7186:9 [INFO] [stderr] | [INFO] [stderr] 7186 | / if byte_str.len() > 1 { [INFO] [stderr] 7187 | | if (byte_str[0] == 0x82) && ((byte_str[1] >= 0x9F) && (byte_str[1] <= 0xF1)) { [INFO] [stderr] 7188 | | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] 7189 | | } [INFO] [stderr] 7190 | | } [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] 7186 | if byte_str.len() > 1 && (byte_str[0] == 0x82) && ((byte_str[1] >= 0x9F) && (byte_str[1] <= 0xF1)) { [INFO] [stderr] 7187 | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] 7188 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/jpcntx.rs:7266:9 [INFO] [stderr] | [INFO] [stderr] 7266 | return (-1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(-1, char_len)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/jpcntx.rs:7261:9 [INFO] [stderr] | [INFO] [stderr] 7261 | / if byte_str.len() > 1 { [INFO] [stderr] 7262 | | if (byte_str[0] == 0xA4) && ((byte_str[1] >= 0xA1) && (byte_str[1] <= 0xF3)) { [INFO] [stderr] 7263 | | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] 7264 | | } [INFO] [stderr] 7265 | | } [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] 7261 | if byte_str.len() > 1 && (byte_str[0] == 0xA4) && ((byte_str[1] >= 0xA1) && (byte_str[1] <= 0xF3)) { [INFO] [stderr] 7262 | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] 7263 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/chardistribution.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | return self.c_sure_yes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.c_sure_yes` [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/chardistribution.rs:373:17 [INFO] [stderr] | [INFO] [stderr] 373 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/chardistribution.rs:376:21 [INFO] [stderr] | [INFO] [stderr] 376 | return Some(order as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(order as usize)` [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/chardistribution.rs:378:21 [INFO] [stderr] | [INFO] [stderr] 378 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/chardistribution.rs:374:20 [INFO] [stderr] | [INFO] [stderr] 374 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 375 | | if order >= 0 { [INFO] [stderr] 376 | | return Some(order as usize); [INFO] [stderr] 377 | | } else { [INFO] [stderr] 378 | | return None; [INFO] [stderr] 379 | | } [INFO] [stderr] 380 | | } [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] 374 | } else if order >= 0 { [INFO] [stderr] 375 | return Some(order as usize); [INFO] [stderr] 376 | } else { [INFO] [stderr] 377 | return None; [INFO] [stderr] 378 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/mbcharsetprober.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 68 | | if (enoughdata) && (self.get_confidence() > 0.95) { [INFO] [stderr] 69 | | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 70 | | } [INFO] [stderr] 71 | | } [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] 67 | if self.m_state == ProbingState::Detecting && (enoughdata) && (self.get_confidence() > 0.95) { [INFO] [stderr] 68 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 69 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/eucjpprober.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / if self.base.m_state == ProbingState::Detecting { [INFO] [stderr] 71 | | if (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 72 | | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [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] 70 | if self.base.m_state == ProbingState::Detecting && (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 71 | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 72 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/sjisprober.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | / if self.base.m_state == ProbingState::Detecting { [INFO] [stderr] 73 | | if (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 74 | | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [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] 72 | if self.base.m_state == ProbingState::Detecting && (self.m_context_analyzer.got_enough_data()) && (self.get_confidence() > 0.95) { [INFO] [stderr] 73 | self.base.m_state = ProbingState::FoundIt; [INFO] [stderr] 74 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/utf8prober.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 48 | | if self.get_confidence() > 0.95 { [INFO] [stderr] 49 | | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 50 | | } [INFO] [stderr] 51 | | } [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] 47 | if self.m_state == ProbingState::Detecting && self.get_confidence() > 0.95 { [INFO] [stderr] 48 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 49 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/escprober.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | return &self.m_state; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.m_state` [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/sbcharsetprober.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / if self.m_state == ProbingState::Detecting { [INFO] [stderr] 100 | | if self.m_total_seqs > self.c_sb_enough_rel_threshold { [INFO] [stderr] 101 | | let confidence = self.get_confidence(); [INFO] [stderr] 102 | | if confidence > self.c_positive_shortcut_threshold { [INFO] [stderr] ... | [INFO] [stderr] 107 | | } [INFO] [stderr] 108 | | } [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] 99 | if self.m_state == ProbingState::Detecting && self.m_total_seqs > self.c_sb_enough_rel_threshold { [INFO] [stderr] 100 | let confidence = self.get_confidence(); [INFO] [stderr] 101 | if confidence > self.c_positive_shortcut_threshold { [INFO] [stderr] 102 | self.m_state = ProbingState::FoundIt; [INFO] [stderr] 103 | } else if confidence < self.c_negative_shortcut_threshold { [INFO] [stderr] 104 | self.m_state = ProbingState::NotMe; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/langbulgarianmodel.rs:194:29 [INFO] [stderr] | [INFO] [stderr] 194 | typical_positive_ratio: 0.969392, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.969_392` [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] --> src/langbulgarianmodel.rs:204:29 [INFO] [stderr] | [INFO] [stderr] 204 | typical_positive_ratio: 0.969392, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.969_392` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:267:29 [INFO] [stderr] | [INFO] [stderr] 267 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:277:29 [INFO] [stderr] | [INFO] [stderr] 277 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:287:29 [INFO] [stderr] | [INFO] [stderr] 287 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:297:29 [INFO] [stderr] | [INFO] [stderr] 297 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:307:29 [INFO] [stderr] | [INFO] [stderr] 307 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langcyrillicmodel.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | typical_positive_ratio: 0.976601, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.976_601` [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: long literal lacking separators [INFO] [stderr] --> src/langgreekmodel.rs:191:29 [INFO] [stderr] | [INFO] [stderr] 191 | typical_positive_ratio: 0.982851, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.982_851` [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: long literal lacking separators [INFO] [stderr] --> src/langgreekmodel.rs:201:29 [INFO] [stderr] | [INFO] [stderr] 201 | typical_positive_ratio: 0.982851, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.982_851` [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: long literal lacking separators [INFO] [stderr] --> src/langhebrewmodel.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | typical_positive_ratio: 0.984004, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.984_004` [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: long literal lacking separators [INFO] [stderr] --> src/langthaimodel.rs:173:29 [INFO] [stderr] | [INFO] [stderr] 173 | typical_positive_ratio: 0.926386, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.926_386` [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: long literal lacking separators [INFO] [stderr] --> src/langturkishmodel.rs:165:29 [INFO] [stderr] | [INFO] [stderr] 165 | typical_positive_ratio: 0.970290, [INFO] [stderr] | ^^^^^^^^ help: consider: `0.970_290` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/hebrewprober.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 92 | | if (self.m_before_prev == 0x20) && (self.is_final(self.m_prev)) && (cur != 0x20) { [INFO] [stderr] 93 | | self.m_final_char_visual_score += 1; [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [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] 91 | } else if (self.m_before_prev == 0x20) && (self.is_final(self.m_prev)) && (cur != 0x20) { [INFO] [stderr] 92 | self.m_final_char_visual_score += 1; [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:302:16 [INFO] [stderr] | [INFO] [stderr] 302 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 303 | | if self.m_got_data { [INFO] [stderr] 304 | | match self.m_input_state { [INFO] [stderr] 305 | | enums::InputState::PureAscii => { [INFO] [stderr] ... | [INFO] [stderr] 331 | | } [INFO] [stderr] 332 | | } [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] 302 | } else if self.m_got_data { [INFO] [stderr] 303 | match self.m_input_state { [INFO] [stderr] 304 | enums::InputState::PureAscii => { [INFO] [stderr] 305 | self.m_detected_charset = "ascii".to_string(); [INFO] [stderr] 306 | self.m_detected_confidence = 1.0; [INFO] [stderr] 307 | self.m_detected_language = "".to_string(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/jpcntx.rs:7188:25 [INFO] [stderr] | [INFO] [stderr] 7188 | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(byte_str[1])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/jpcntx.rs:7250:12 [INFO] [stderr] | [INFO] [stderr] 7250 | if byte_str.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/jpcntx.rs:7263:25 [INFO] [stderr] | [INFO] [stderr] 7263 | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(byte_str[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/chardistribution.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if (self.m_total_chars <= 0) || (self.m_freq_chars <= self.c_minimum_data_threshold) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using self.m_total_chars == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / let order: Option; [INFO] [stderr] 100 | | if char_len == 2 { [INFO] [stderr] 101 | | order = self.get_order(char); [INFO] [stderr] 102 | | } else { [INFO] [stderr] 103 | | order = None; [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | / let order: Option; [INFO] [stderr] 159 | | if char_len == 2 { [INFO] [stderr] 160 | | order = self.get_order(char); [INFO] [stderr] 161 | | } else { [INFO] [stderr] 162 | | order = None; [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | / let order: Option; [INFO] [stderr] 218 | | if char_len == 2 { [INFO] [stderr] 219 | | order = self.get_order(char); [INFO] [stderr] 220 | | } else { [INFO] [stderr] 221 | | order = None; [INFO] [stderr] 222 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | / let order: Option; [INFO] [stderr] 277 | | if char_len == 2 { [INFO] [stderr] 278 | | order = self.get_order(char); [INFO] [stderr] 279 | | } else { [INFO] [stderr] 280 | | order = None; [INFO] [stderr] 281 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | / let order: Option; [INFO] [stderr] 346 | | if char_len == 2 { [INFO] [stderr] 347 | | order = self.get_order(char); [INFO] [stderr] 348 | | } else { [INFO] [stderr] 349 | | order = None; [INFO] [stderr] 350 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | / let order: Option; [INFO] [stderr] 413 | | if char_len == 2 { [INFO] [stderr] 414 | | order = self.get_order(char); [INFO] [stderr] 415 | | } else { [INFO] [stderr] 416 | | order = None; [INFO] [stderr] 417 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `curr` is only used to index `byte_str`. [INFO] [stderr] --> src/charsetprober.rs:14:17 [INFO] [stderr] | [INFO] [stderr] 14 | for curr in 0..byte_str.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 14 | for in &byte_str { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/mbcharsetprober.rs:50:47 [INFO] [stderr] | [INFO] [stderr] 50 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/eucjpprober.rs:51:43 [INFO] [stderr] | [INFO] [stderr] 51 | &byte_str[i - 1..i + 1], [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/eucjpprober.rs:54:47 [INFO] [stderr] | [INFO] [stderr] 54 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sjisprober.rs:56:47 [INFO] [stderr] | [INFO] [stderr] 56 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `byte_str`. [INFO] [stderr] --> src/utf8prober.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | for i in 0..byte_str.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 29 | for in &byte_str { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/sbcharsetprober.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / let byte_str_len; [INFO] [stderr] 59 | | if !self.m_model.keep_english_letter { [INFO] [stderr] 60 | | byte_str2 = filter_international_words(byte_str); [INFO] [stderr] 61 | | byte_str_len = byte_str2.len(); [INFO] [stderr] ... | [INFO] [stderr] 64 | | byte_str_len = byte_str.len(); [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let byte_str_len = if !self.m_model.keep_english_letter { ..; byte_str2.len() } else { ..; byte_str.len() };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/sbcharsetprober.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | if byte_str_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/sbcharsetprober.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | / let model; [INFO] [stderr] 85 | | if self.m_reversed { [INFO] [stderr] 86 | | model = self.m_model.precedence_matrix[(order as usize) * [INFO] [stderr] 87 | | self.c_sample_size + [INFO] [stderr] ... | [INFO] [stderr] 92 | | (order as usize)]; [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 84 | let model = if self.m_reversed { self.m_model.precedence_matrix[(order as usize) * [INFO] [stderr] 85 | self.c_sample_size + [INFO] [stderr] 86 | (self.m_last_order as usize)] } else { self.m_model.precedence_matrix[(self.m_last_order as usize) * [INFO] [stderr] 87 | self.c_sample_size + [INFO] [stderr] 88 | (order as usize)] }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/hebrewprober.rs:113:24 [INFO] [stderr] | [INFO] [stderr] 113 | if finalsub >= (self.c_min_final_char_distance as i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.c_min_final_char_distance)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/hebrewprober.rs:116:25 [INFO] [stderr] | [INFO] [stderr] 116 | if finalsub <= -(self.c_min_final_char_distance as i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.c_min_final_char_distance)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `UniversalDetector` [INFO] [stderr] --> src/lib.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> UniversalDetector { [INFO] [stderr] 49 | | UniversalDetector { [INFO] [stderr] 50 | | m_input_state: enums::InputState::PureAscii, [INFO] [stderr] 51 | | m_done: false, [INFO] [stderr] ... | [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 47 | impl Default for UniversalDetector { [INFO] [stderr] 48 | fn default() -> Self { [INFO] [stderr] 49 | Self::new() [INFO] [stderr] 50 | } [INFO] [stderr] 51 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | / match self.m_esc_charset_prober { [INFO] [stderr] 72 | | Some(ref mut prober) => { [INFO] [stderr] 73 | | prober.reset(); [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | _ => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 71 | if let Some(ref mut prober) = self.m_esc_charset_prober { [INFO] [stderr] 72 | prober.reset(); [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/lib.rs:87:12 [INFO] [stderr] | [INFO] [stderr] 87 | if byte_str.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | / match self.m_input_state { [INFO] [stderr] 156 | | enums::InputState::PureAscii => { [INFO] [stderr] 157 | | if ch == 0x1B { [INFO] [stderr] 158 | | self.m_input_state = enums::InputState::EscAscii; [INFO] [stderr] ... | [INFO] [stderr] 161 | | _ => {} [INFO] [stderr] 162 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 155 | if let enums::InputState::PureAscii = self.m_input_state { [INFO] [stderr] 156 | if ch == 0x1B { [INFO] [stderr] 157 | self.m_input_state = enums::InputState::EscAscii; [INFO] [stderr] 158 | } [INFO] [stderr] 159 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:349:29 [INFO] [stderr] | [INFO] [stderr] 349 | pub fn charset2encoding(enc:&String) -> &str { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 349 | pub fn charset2encoding(enc:&str) -> &str { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `enc.as_str()` to [INFO] [stderr] | [INFO] [stderr] 350 | match enc { [INFO] [stderr] | ^^^ [INFO] [stderr] help: change `enc.as_str()` to [INFO] [stderr] | [INFO] [stderr] 354 | _ => enc, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `chardet`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/jpcntx.rs:7188:25 [INFO] [stderr] | [INFO] [stderr] 7188 | return ((byte_str[1] as i16) - 0x9F, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(byte_str[1])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/jpcntx.rs:7250:12 [INFO] [stderr] | [INFO] [stderr] 7250 | if byte_str.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/jpcntx.rs:7263:25 [INFO] [stderr] | [INFO] [stderr] 7263 | return ((byte_str[1] as i16) - 0xA1, char_len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(byte_str[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/chardistribution.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if (self.m_total_chars <= 0) || (self.m_freq_chars <= self.c_minimum_data_threshold) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using self.m_total_chars == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / let order: Option; [INFO] [stderr] 100 | | if char_len == 2 { [INFO] [stderr] 101 | | order = self.get_order(char); [INFO] [stderr] 102 | | } else { [INFO] [stderr] 103 | | order = None; [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | / let order: Option; [INFO] [stderr] 159 | | if char_len == 2 { [INFO] [stderr] 160 | | order = self.get_order(char); [INFO] [stderr] 161 | | } else { [INFO] [stderr] 162 | | order = None; [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | / let order: Option; [INFO] [stderr] 218 | | if char_len == 2 { [INFO] [stderr] 219 | | order = self.get_order(char); [INFO] [stderr] 220 | | } else { [INFO] [stderr] 221 | | order = None; [INFO] [stderr] 222 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | / let order: Option; [INFO] [stderr] 277 | | if char_len == 2 { [INFO] [stderr] 278 | | order = self.get_order(char); [INFO] [stderr] 279 | | } else { [INFO] [stderr] 280 | | order = None; [INFO] [stderr] 281 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | / let order: Option; [INFO] [stderr] 346 | | if char_len == 2 { [INFO] [stderr] 347 | | order = self.get_order(char); [INFO] [stderr] 348 | | } else { [INFO] [stderr] 349 | | order = None; [INFO] [stderr] 350 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/chardistribution.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | / let order: Option; [INFO] [stderr] 413 | | if char_len == 2 { [INFO] [stderr] 414 | | order = self.get_order(char); [INFO] [stderr] 415 | | } else { [INFO] [stderr] 416 | | order = None; [INFO] [stderr] 417 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let order = if char_len == 2 { self.get_order(char) } else { None };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `curr` is only used to index `byte_str`. [INFO] [stderr] --> src/charsetprober.rs:14:17 [INFO] [stderr] | [INFO] [stderr] 14 | for curr in 0..byte_str.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 14 | for in &byte_str { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/mbcharsetprober.rs:50:47 [INFO] [stderr] | [INFO] [stderr] 50 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/eucjpprober.rs:51:43 [INFO] [stderr] | [INFO] [stderr] 51 | &byte_str[i - 1..i + 1], [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/eucjpprober.rs:54:47 [INFO] [stderr] | [INFO] [stderr] 54 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sjisprober.rs:56:47 [INFO] [stderr] | [INFO] [stderr] 56 | da.feed(&byte_str[i - 1..i + 1], char_len); [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `i - 1..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `byte_str`. [INFO] [stderr] --> src/utf8prober.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | for i in 0..byte_str.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 29 | for in &byte_str { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/sbcharsetprober.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / let byte_str_len; [INFO] [stderr] 59 | | if !self.m_model.keep_english_letter { [INFO] [stderr] 60 | | byte_str2 = filter_international_words(byte_str); [INFO] [stderr] 61 | | byte_str_len = byte_str2.len(); [INFO] [stderr] ... | [INFO] [stderr] 64 | | byte_str_len = byte_str.len(); [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let byte_str_len = if !self.m_model.keep_english_letter { ..; byte_str2.len() } else { ..; byte_str.len() };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/sbcharsetprober.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | if byte_str_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/sbcharsetprober.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | / let model; [INFO] [stderr] 85 | | if self.m_reversed { [INFO] [stderr] 86 | | model = self.m_model.precedence_matrix[(order as usize) * [INFO] [stderr] 87 | | self.c_sample_size + [INFO] [stderr] ... | [INFO] [stderr] 92 | | (order as usize)]; [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 84 | let model = if self.m_reversed { self.m_model.precedence_matrix[(order as usize) * [INFO] [stderr] 85 | self.c_sample_size + [INFO] [stderr] 86 | (self.m_last_order as usize)] } else { self.m_model.precedence_matrix[(self.m_last_order as usize) * [INFO] [stderr] 87 | self.c_sample_size + [INFO] [stderr] 88 | (order as usize)] }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/hebrewprober.rs:113:24 [INFO] [stderr] | [INFO] [stderr] 113 | if finalsub >= (self.c_min_final_char_distance as i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.c_min_final_char_distance)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/hebrewprober.rs:116:25 [INFO] [stderr] | [INFO] [stderr] 116 | if finalsub <= -(self.c_min_final_char_distance as i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.c_min_final_char_distance)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `UniversalDetector` [INFO] [stderr] --> src/lib.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> UniversalDetector { [INFO] [stderr] 49 | | UniversalDetector { [INFO] [stderr] 50 | | m_input_state: enums::InputState::PureAscii, [INFO] [stderr] 51 | | m_done: false, [INFO] [stderr] ... | [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 47 | impl Default for UniversalDetector { [INFO] [stderr] 48 | fn default() -> Self { [INFO] [stderr] 49 | Self::new() [INFO] [stderr] 50 | } [INFO] [stderr] 51 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | / match self.m_esc_charset_prober { [INFO] [stderr] 72 | | Some(ref mut prober) => { [INFO] [stderr] 73 | | prober.reset(); [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | _ => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 71 | if let Some(ref mut prober) = self.m_esc_charset_prober { [INFO] [stderr] 72 | prober.reset(); [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/lib.rs:87:12 [INFO] [stderr] | [INFO] [stderr] 87 | if byte_str.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using byte_str.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | / match self.m_input_state { [INFO] [stderr] 156 | | enums::InputState::PureAscii => { [INFO] [stderr] 157 | | if ch == 0x1B { [INFO] [stderr] 158 | | self.m_input_state = enums::InputState::EscAscii; [INFO] [stderr] ... | [INFO] [stderr] 161 | | _ => {} [INFO] [stderr] 162 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 155 | if let enums::InputState::PureAscii = self.m_input_state { [INFO] [stderr] 156 | if ch == 0x1B { [INFO] [stderr] 157 | self.m_input_state = enums::InputState::EscAscii; [INFO] [stderr] 158 | } [INFO] [stderr] 159 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:349:29 [INFO] [stderr] | [INFO] [stderr] 349 | pub fn charset2encoding(enc:&String) -> &str { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 349 | pub fn charset2encoding(enc:&str) -> &str { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `enc.as_str()` to [INFO] [stderr] | [INFO] [stderr] 350 | match enc { [INFO] [stderr] | ^^^ [INFO] [stderr] help: change `enc.as_str()` to [INFO] [stderr] | [INFO] [stderr] 354 | _ => enc, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `chardet`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "225ee7ebefa7425edd2ddbfbb66090a0690df6609776bed8b2d545757f04dc4f"` [INFO] running `"docker" "rm" "-f" "225ee7ebefa7425edd2ddbfbb66090a0690df6609776bed8b2d545757f04dc4f"` [INFO] [stdout] 225ee7ebefa7425edd2ddbfbb66090a0690df6609776bed8b2d545757f04dc4f