[INFO] crate encode_unicode 0.3.5 is already in cache [INFO] extracting crate encode_unicode 0.3.5 into work/ex/clippy-test-run/sources/stable/reg/encode_unicode/0.3.5 [INFO] extracting crate encode_unicode 0.3.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/encode_unicode/0.3.5 [INFO] validating manifest of encode_unicode-0.3.5 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 encode_unicode-0.3.5 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 encode_unicode-0.3.5 [INFO] finished frobbing encode_unicode-0.3.5 [INFO] frobbed toml for encode_unicode-0.3.5 written to work/ex/clippy-test-run/sources/stable/reg/encode_unicode/0.3.5/Cargo.toml [INFO] started frobbing encode_unicode-0.3.5 [INFO] finished frobbing encode_unicode-0.3.5 [INFO] frobbed toml for encode_unicode-0.3.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/encode_unicode/0.3.5/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 encode_unicode-0.3.5 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/encode_unicode/0.3.5:/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 -Dclippy::into_iter_on_array" "-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] 3c3c82f26eea5d5f7d87cd96e5fcd63305f1ab91ce0f4bcdb70ad7333525cf94 [INFO] running `"docker" "start" "-a" "3c3c82f26eea5d5f7d87cd96e5fcd63305f1ab91ce0f4bcdb70ad7333525cf94"` [INFO] [stderr] Checking encode_unicode v0.3.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | Ok(Utf8Char{bytes: bytes}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/utf8_char.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | let b = 0x80 | ((f & 0x00_fc) >> 2) as u8; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/utf8_char.rs:105:21 [INFO] [stderr] | [INFO] [stderr] 105 | let a = 0xf0 | ((f & 0x07_00) >> 8) as u8; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:440:24 [INFO] [stderr] | [INFO] [stderr] 440 | (Utf8Char{ bytes: bytes }, len) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:453:20 [INFO] [stderr] | [INFO] [stderr] 453 | (Utf8Char{ bytes: bytes }, len) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf16_iterators.rs:29:24 [INFO] [stderr] | [INFO] [stderr] 29 | Utf16Iterator{ first: first, second: second.unwrap_or(SECOND_USED) } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf16_iterators.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | Utf16Iterator{ first: first, second: second.unwrap_or(SECOND_USED) } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | Ok(Utf8Char{bytes: bytes}) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/utf8_char.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | let b = 0x80 | ((f & 0x00_fc) >> 2) as u8; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/utf8_char.rs:105:21 [INFO] [stderr] | [INFO] [stderr] 105 | let a = 0xf0 | ((f & 0x07_00) >> 8) as u8; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:440:24 [INFO] [stderr] | [INFO] [stderr] 440 | (Utf8Char{ bytes: bytes }, len) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf8_char.rs:453:20 [INFO] [stderr] | [INFO] [stderr] 453 | (Utf8Char{ bytes: bytes }, len) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf16_iterators.rs:29:24 [INFO] [stderr] | [INFO] [stderr] 29 | Utf16Iterator{ first: first, second: second.unwrap_or(SECOND_USED) } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/utf16_iterators.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | Utf16Iterator{ first: first, second: second.unwrap_or(SECOND_USED) } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | / single_cause!{ [INFO] [stderr] 51 | | /// Cannot tell whether an `u16` needs an extra unit, [INFO] [stderr] 52 | | /// because it's a trailing surrogate itself. [INFO] [stderr] 53 | | InvalidUtf16FirstUnit => "is a trailing surrogate" [INFO] [stderr] 54 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 56 | / single_cause!{ [INFO] [stderr] 57 | | /// Cannot create an `Utf8Char` or `Utf16Char` from the first codepoint of a str, [INFO] [stderr] 58 | | /// because there are none. [INFO] [stderr] 59 | | EmptyStrError => "is empty" [INFO] [stderr] 60 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 62 | / single_cause!{ [INFO] [stderr] 63 | | /// Cannot create an `Utf8Char` from a standalone `u8` [INFO] [stderr] 64 | | /// that is not an ASCII character. [INFO] [stderr] 65 | | NonAsciiError => "is not an ASCII character" [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 68 | / single_cause!{ [INFO] [stderr] 69 | | /// Cannot create an `Utf16Char` from a standalone `u16` that is not a [INFO] [stderr] 70 | | /// codepoint in the basic multilingual plane, but part of a suurrogate pair. [INFO] [stderr] 71 | | NonBMPError => "is not a codepoint in the basic multilingual plane" [INFO] [stderr] 72 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | / simple!{/// Reasons why an `u32` is not a valid UTF codepoint. [INFO] [stderr] 89 | | InvalidCodepoint { [INFO] [stderr] 90 | | /// It's reserved for UTF-16 surrogate pairs." [INFO] [stderr] 91 | | ::Utf16Reserved => "is reserved for UTF-16 surrogate pairs", [INFO] [stderr] 92 | | /// It's higher than the highest codepoint (which is 0x10ffff). [INFO] [stderr] 93 | | ::TooHigh => "is higher than the highest codepoint", [INFO] [stderr] 94 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / simple!{/// Reasons why one or two `u16`s are not valid UTF-16, in sinking precedence. [INFO] [stderr] 106 | | InvalidUtf16Tuple { [INFO] [stderr] 107 | | /// The first unit is a trailing/low surrogate, which is never valid. [INFO] [stderr] 108 | | /// [INFO] [stderr] ... | [INFO] [stderr] 118 | | ::InvalidSecond => "the required second unit is not a trailing / low surrogate", [INFO] [stderr] 119 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 122 | / simple!{/// Reasons why a slice of `u16`s doesn't start with valid UTF-16. [INFO] [stderr] 123 | | InvalidUtf16Slice { [INFO] [stderr] 124 | | /// The slice is empty. [INFO] [stderr] 125 | | ::EmptySlice => "the slice is empty", [INFO] [stderr] ... | [INFO] [stderr] 131 | | ::SecondNotLowSurrogate => "the required second unit is not a trailing surrogate", [INFO] [stderr] 132 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | / simple!{/// Types of invalid sequences encountered by `Utf16CharParser`. [INFO] [stderr] 135 | | Utf16PairError { [INFO] [stderr] 136 | | /// A trailing surrogate was not preceeded by a leading surrogate. [INFO] [stderr] 137 | | ::UnexpectedTrailingSurrogate => "a trailing surrogate was not preceeded by a leading surrogate", [INFO] [stderr] ... | [INFO] [stderr] 141 | | ::Incomplete => "a trailing surrogate was expected when the end was reached", [INFO] [stderr] 142 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 145 | / simple!{/// Reasons why `Utf8Char::from_str()` or `Utf16Char::from_str()` failed. [INFO] [stderr] 146 | | FromStrError { [INFO] [stderr] 147 | | /// `Utf8Char` or `Utf16Char` cannot store more than a single codepoint. [INFO] [stderr] 148 | | ::MultipleCodepoints => "has more than one codepoint", [INFO] [stderr] 149 | | /// `Utf8Char` or `Utf16Char` cannot be empty. [INFO] [stderr] 150 | | ::Empty => "is empty", [INFO] [stderr] 151 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 154 | / simple!{/// Reasons why a byte is not the start of a UTF-8 codepoint. [INFO] [stderr] 155 | | InvalidUtf8FirstByte { [INFO] [stderr] 156 | | /// Sequences cannot be longer than 4 bytes. Is given for values >= 240. [INFO] [stderr] 157 | | ::TooLongSeqence => "is greater than 247 (UTF-8 sequences cannot be longer than four bytes)", [INFO] [stderr] 158 | | /// This byte belongs to a previous sequence. Is given for values between 128 and 192 (exclusive). [INFO] [stderr] 159 | | ::ContinuationByte => "is a continuation of a previous sequence", [INFO] [stderr] 160 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/traits.rs:328:31 [INFO] [stderr] | [INFO] [stderr] 328 | parts &= Not::not(1u32 << 7-len);// clear the next bit after it [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1u32 << (7-len)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utf8_char.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/utf8_char.rs:488:37 [INFO] [stderr] | [INFO] [stderr] 488 | let mask = u32::from_le(0xff_ff_ff_ff >> 8*(3-extra)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `0xff_ff_ff_ff >> (8*(3-extra))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/utf8_iterators.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | let unused_set = (u64::MAX << uc.len() as u64*8) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `u64::MAX << (uc.len() as u64*8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utf16_char.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | return vec; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `vec` [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/utf16_char.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:153:72 [INFO] [stderr] | [INFO] [stderr] 153 | } else if bytes[0] == 0b1110_0000 && bytes[1] <= 0b10_011111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1001_1111` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:156:71 [INFO] [stderr] | [INFO] [stderr] 156 | } else if bytes[0] == 0b1110_1101 && bytes[1] & 0b11_100000 == 0b10_100000 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1110_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:156:86 [INFO] [stderr] | [INFO] [stderr] 156 | } else if bytes[0] == 0b1110_1101 && bytes[1] & 0b11_100000 == 0b10_100000 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/decoding_iterators.rs:166:43 [INFO] [stderr] | [INFO] [stderr] 166 | } else if bytes[0] == 0b11110_000 && bytes[1] <= 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:166:72 [INFO] [stderr] | [INFO] [stderr] 166 | } else if bytes[0] == 0b11110_000 && bytes[1] <= 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1000_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/decoding_iterators.rs:169:43 [INFO] [stderr] | [INFO] [stderr] 169 | } else if bytes[0] == 0b11110_100 && bytes[1] > 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:169:71 [INFO] [stderr] | [INFO] [stderr] 169 | } else if bytes[0] == 0b11110_100 && bytes[1] > 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1000_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | / single_cause!{ [INFO] [stderr] 51 | | /// Cannot tell whether an `u16` needs an extra unit, [INFO] [stderr] 52 | | /// because it's a trailing surrogate itself. [INFO] [stderr] 53 | | InvalidUtf16FirstUnit => "is a trailing surrogate" [INFO] [stderr] 54 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 56 | / single_cause!{ [INFO] [stderr] 57 | | /// Cannot create an `Utf8Char` or `Utf16Char` from the first codepoint of a str, [INFO] [stderr] 58 | | /// because there are none. [INFO] [stderr] 59 | | EmptyStrError => "is empty" [INFO] [stderr] 60 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 62 | / single_cause!{ [INFO] [stderr] 63 | | /// Cannot create an `Utf8Char` from a standalone `u8` [INFO] [stderr] 64 | | /// that is not an ASCII character. [INFO] [stderr] 65 | | NonAsciiError => "is not an ASCII character" [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 68 | / single_cause!{ [INFO] [stderr] 69 | | /// Cannot create an `Utf16Char` from a standalone `u16` that is not a [INFO] [stderr] 70 | | /// codepoint in the basic multilingual plane, but part of a suurrogate pair. [INFO] [stderr] 71 | | NonBMPError => "is not a codepoint in the basic multilingual plane" [INFO] [stderr] 72 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | / simple!{/// Reasons why an `u32` is not a valid UTF codepoint. [INFO] [stderr] 89 | | InvalidCodepoint { [INFO] [stderr] 90 | | /// It's reserved for UTF-16 surrogate pairs." [INFO] [stderr] 91 | | ::Utf16Reserved => "is reserved for UTF-16 surrogate pairs", [INFO] [stderr] 92 | | /// It's higher than the highest codepoint (which is 0x10ffff). [INFO] [stderr] 93 | | ::TooHigh => "is higher than the highest codepoint", [INFO] [stderr] 94 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | / simple!{/// Reasons why one or two `u16`s are not valid UTF-16, in sinking precedence. [INFO] [stderr] 106 | | InvalidUtf16Tuple { [INFO] [stderr] 107 | | /// The first unit is a trailing/low surrogate, which is never valid. [INFO] [stderr] 108 | | /// [INFO] [stderr] ... | [INFO] [stderr] 118 | | ::InvalidSecond => "the required second unit is not a trailing / low surrogate", [INFO] [stderr] 119 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 122 | / simple!{/// Reasons why a slice of `u16`s doesn't start with valid UTF-16. [INFO] [stderr] 123 | | InvalidUtf16Slice { [INFO] [stderr] 124 | | /// The slice is empty. [INFO] [stderr] 125 | | ::EmptySlice => "the slice is empty", [INFO] [stderr] ... | [INFO] [stderr] 131 | | ::SecondNotLowSurrogate => "the required second unit is not a trailing surrogate", [INFO] [stderr] 132 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | / simple!{/// Types of invalid sequences encountered by `Utf16CharParser`. [INFO] [stderr] 135 | | Utf16PairError { [INFO] [stderr] 136 | | /// A trailing surrogate was not preceeded by a leading surrogate. [INFO] [stderr] 137 | | ::UnexpectedTrailingSurrogate => "a trailing surrogate was not preceeded by a leading surrogate", [INFO] [stderr] ... | [INFO] [stderr] 141 | | ::Incomplete => "a trailing surrogate was expected when the end was reached", [INFO] [stderr] 142 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 145 | / simple!{/// Reasons why `Utf8Char::from_str()` or `Utf16Char::from_str()` failed. [INFO] [stderr] 146 | | FromStrError { [INFO] [stderr] 147 | | /// `Utf8Char` or `Utf16Char` cannot store more than a single codepoint. [INFO] [stderr] 148 | | ::MultipleCodepoints => "has more than one codepoint", [INFO] [stderr] 149 | | /// `Utf8Char` or `Utf16Char` cannot be empty. [INFO] [stderr] 150 | | ::Empty => "is empty", [INFO] [stderr] 151 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/errors.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | ($desc)(self) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 154 | / simple!{/// Reasons why a byte is not the start of a UTF-8 codepoint. [INFO] [stderr] 155 | | InvalidUtf8FirstByte { [INFO] [stderr] 156 | | /// Sequences cannot be longer than 4 bytes. Is given for values >= 240. [INFO] [stderr] 157 | | ::TooLongSeqence => "is greater than 247 (UTF-8 sequences cannot be longer than four bytes)", [INFO] [stderr] 158 | | /// This byte belongs to a previous sequence. Is given for values between 128 and 192 (exclusive). [INFO] [stderr] 159 | | ::ContinuationByte => "is a continuation of a previous sequence", [INFO] [stderr] 160 | | }} [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/traits.rs:328:31 [INFO] [stderr] | [INFO] [stderr] 328 | parts &= Not::not(1u32 << 7-len);// clear the next bit after it [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1u32 << (7-len)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utf8_char.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/utf8_char.rs:488:37 [INFO] [stderr] | [INFO] [stderr] 488 | let mask = u32::from_le(0xff_ff_ff_ff >> 8*(3-extra)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `0xff_ff_ff_ff >> (8*(3-extra))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/utf8_iterators.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | let unused_set = (u64::MAX << uc.len() as u64*8) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `u64::MAX << (uc.len() as u64*8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utf16_char.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | return vec; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `vec` [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/utf16_char.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:153:72 [INFO] [stderr] | [INFO] [stderr] 153 | } else if bytes[0] == 0b1110_0000 && bytes[1] <= 0b10_011111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1001_1111` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:156:71 [INFO] [stderr] | [INFO] [stderr] 156 | } else if bytes[0] == 0b1110_1101 && bytes[1] & 0b11_100000 == 0b10_100000 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1110_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:156:86 [INFO] [stderr] | [INFO] [stderr] 156 | } else if bytes[0] == 0b1110_1101 && bytes[1] & 0b11_100000 == 0b10_100000 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/decoding_iterators.rs:166:43 [INFO] [stderr] | [INFO] [stderr] 166 | } else if bytes[0] == 0b11110_000 && bytes[1] <= 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:166:72 [INFO] [stderr] | [INFO] [stderr] 166 | } else if bytes[0] == 0b11110_000 && bytes[1] <= 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1000_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/decoding_iterators.rs:169:43 [INFO] [stderr] | [INFO] [stderr] 169 | } else if bytes[0] == 0b11110_100 && bytes[1] > 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1111_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/decoding_iterators.rs:169:71 [INFO] [stderr] | [INFO] [stderr] 169 | } else if bytes[0] == 0b11110_100 && bytes[1] > 0b10_001111 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1000_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:60:16 [INFO] [stderr] | [INFO] [stderr] 60 | match ((self as u32)<<25).not().leading_zeros() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(self)` [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] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | if self<128 {0} else {((self as u32)<<25).not().leading_zeros() as usize} [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(self)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/traits.rs:348:31 [INFO] [stderr] | [INFO] [stderr] 348 | Ok(extra) => &src[..extra+1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=extra` [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/traits.rs:368:33 [INFO] [stderr] | [INFO] [stderr] 368 | Ok(extra) => &utf8[..extra+1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=extra` [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: redundant closure found [INFO] [stderr] --> src/traits.rs:376:27 [INFO] [stderr] | [INFO] [stderr] 376 | .map_err(|e| Codepoint(e) ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Codepoint` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:419:49 [INFO] [stderr] | [INFO] [stderr] 419 | => Ok((char::from_u32_unchecked(u as u32), 1)), [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(u)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:448:54 [INFO] [stderr] | [INFO] [stderr] 448 | None => char::from_u32_unchecked(utf16.0 as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(utf16.0)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:480:17 [INFO] [stderr] | [INFO] [stderr] 480 | let mut c = src[0] as u32 & (0x7f >> src.len()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(src[0])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:482:26 [INFO] [stderr] | [INFO] [stderr] 482 | c = (c << 6) | (b & 0b0011_1111) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(b & 0b0011_1111)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:489:16 [INFO] [stderr] | [INFO] [stderr] 489 | let high = (first & 0x_03_ff) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(first & 0x_03_ff)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:490:15 [INFO] [stderr] | [INFO] [stderr] 490 | let low = (second & 0x_03_ff) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(second & 0x_03_ff)` [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: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/utf8_char.rs:277:1 [INFO] [stderr] | [INFO] [stderr] 277 | / impl hash::Hash for Utf8Char { [INFO] [stderr] 278 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 279 | | self.to_char().hash(state); [INFO] [stderr] 280 | | } [INFO] [stderr] 281 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/utf8_char.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | #[derive(PartialEq,Eq, PartialOrd,Ord)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: item `utf8_char::Utf8Char` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/utf8_char.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | / impl Utf8Char { [INFO] [stderr] 387 | | /// Create an `Utf8Char` from the first codepoint in a `str`. [INFO] [stderr] 388 | | /// [INFO] [stderr] 389 | | /// Returns an error if the `str` is empty. [INFO] [stderr] ... | [INFO] [stderr] 645 | | } [INFO] [stderr] 646 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | pub fn is_ascii(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:574:33 [INFO] [stderr] | [INFO] [stderr] 574 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:574:48 [INFO] [stderr] | [INFO] [stderr] 574 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:583:31 [INFO] [stderr] | [INFO] [stderr] 583 | pub fn to_ascii_uppercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:593:31 [INFO] [stderr] | [INFO] [stderr] 593 | pub fn to_ascii_lowercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | 1 => Utf16Char{ units: [b[0] as u16, 0] }, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:91:27 [INFO] [stderr] | [INFO] [stderr] 91 | first += (b[0] as u16 & 0x07) << 8; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:92:27 [INFO] [stderr] | [INFO] [stderr] 92 | first += (b[1] as u16 & 0x3f) << 2; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:93:27 [INFO] [stderr] | [INFO] [stderr] 93 | first += (b[2] as u16 & 0x30) >> 4; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:95:28 [INFO] [stderr] | [INFO] [stderr] 95 | second |= (b[2] as u16 & 0x0f) << 6; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:96:28 [INFO] [stderr] | [INFO] [stderr] 96 | second |= b[3] as u16 & 0x3f; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[3])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:100:34 [INFO] [stderr] | [INFO] [stderr] 100 | let mut unit = ((b[0] as u16 & 0x1f) << 6) | (b[1] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:100:63 [INFO] [stderr] | [INFO] [stderr] 100 | let mut unit = ((b[0] as u16 & 0x1f) << 6) | (b[1] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:102:43 [INFO] [stderr] | [INFO] [stderr] 102 | unit = (unit << 6) | (b[2] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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: redundant closure found [INFO] [stderr] --> src/utf16_char.rs:160:42 [INFO] [stderr] | [INFO] [stderr] 160 | self.extend(iter.into_iter().map(|u16c| Utf8Char::from(u16c) )); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Utf8Char::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:223:44 [INFO] [stderr] | [INFO] [stderr] 223 | let n = self.units[0].wrapping_sub(b'a' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:224:41 [INFO] [stderr] | [INFO] [stderr] 224 | if n < 26 {Utf16Char{ units: [n+b'A' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:228:44 [INFO] [stderr] | [INFO] [stderr] 228 | let n = self.units[0].wrapping_sub(b'A' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:229:41 [INFO] [stderr] | [INFO] [stderr] 229 | if n < 26 {Utf16Char{ units: [n+b'a' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/utf16_char.rs:265:1 [INFO] [stderr] | [INFO] [stderr] 265 | / impl hash::Hash for Utf16Char { [INFO] [stderr] 266 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 267 | | self.to_char().hash(state); [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/utf16_char.rs:37:10 [INFO] [stderr] | [INFO] [stderr] 37 | #[derive(PartialEq,Eq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:297:20 [INFO] [stderr] | [INFO] [stderr] 297 | let lhs = (self.units[0] as u32, self.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.units[0])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:297:42 [INFO] [stderr] | [INFO] [stderr] 297 | let lhs = (self.units[0] as u32, self.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.units[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] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:298:20 [INFO] [stderr] | [INFO] [stderr] 298 | let rhs = (rhs.units[0] as u32, rhs.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(rhs.units[0])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:298:41 [INFO] [stderr] | [INFO] [stderr] 298 | let rhs = (rhs.units[0] as u32, rhs.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(rhs.units[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:373:26 [INFO] [stderr] | [INFO] [stderr] 373 | self.units[0] == *byte as u16 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(*byte)` [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: item `utf16_char::Utf16Char` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/utf16_char.rs:413:1 [INFO] [stderr] | [INFO] [stderr] 413 | / impl Utf16Char { [INFO] [stderr] 414 | | /// Create an `Utf16Char` from the first codepoint in a string slice, [INFO] [stderr] 415 | | /// converting from UTF-8 to UTF-16. [INFO] [stderr] 416 | | /// [INFO] [stderr] ... | [INFO] [stderr] 622 | | } [INFO] [stderr] 623 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:441:28 [INFO] [stderr] | [INFO] [stderr] 441 | let unit = b[0] as u16;// 0b0000_0000_0xxx_xxxx [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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: the operation is ineffective. Consider reducing it to `((b[1] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:445:28 [INFO] [stderr] | [INFO] [stderr] 445 | let unit = (((b[1] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:445:29 [INFO] [stderr] | [INFO] [stderr] 445 | let unit = (((b[1] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:446:29 [INFO] [stderr] | [INFO] [stderr] 446 | | (((b[0] & 0x1f) as u16) << 6);// 0b0000_0xxx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x1f)` [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: the operation is ineffective. Consider reducing it to `((b[2] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:450:28 [INFO] [stderr] | [INFO] [stderr] 450 | let unit = (((b[2] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:450:29 [INFO] [stderr] | [INFO] [stderr] 450 | let unit = (((b[2] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:451:29 [INFO] [stderr] | [INFO] [stderr] 451 | | (((b[1] & 0x3f) as u16) << 6) // 0b0000_xxxx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:452:29 [INFO] [stderr] | [INFO] [stderr] 452 | | (((b[0] & 0x0f) as u16) << 12);// 0bxxxx_0000_0000_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x0f)` [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: the operation is ineffective. Consider reducing it to `((b[3] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:457:30 [INFO] [stderr] | [INFO] [stderr] 457 | | (((b[3] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:457:31 [INFO] [stderr] | [INFO] [stderr] 457 | | (((b[3] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[3] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:458:31 [INFO] [stderr] | [INFO] [stderr] 458 | | (((b[2] & 0x0f) as u16) << 6);// 0b0000_00xx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x0f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:460:30 [INFO] [stderr] | [INFO] [stderr] 460 | + (((b[2] & 0x30) as u16) >> 4) // 0b0000_0000_0000_00xx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x30)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:461:30 [INFO] [stderr] | [INFO] [stderr] 461 | + (((b[1] & 0x3f) as u16) << 2) // 0b0000_0000_xxxx_xx00 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:462:30 [INFO] [stderr] | [INFO] [stderr] 462 | + (((b[0] & 0x07) as u16) << 8); // 0b0000_0xxx_0000_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x07)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:550:21 [INFO] [stderr] | [INFO] [stderr] 550 | pub fn is_ascii(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:557:33 [INFO] [stderr] | [INFO] [stderr] 557 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:557:48 [INFO] [stderr] | [INFO] [stderr] 557 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:565:31 [INFO] [stderr] | [INFO] [stderr] 565 | pub fn to_ascii_uppercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:566:44 [INFO] [stderr] | [INFO] [stderr] 566 | let n = self.units[0].wrapping_sub(b'a' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:567:41 [INFO] [stderr] | [INFO] [stderr] 567 | if n < 26 {Utf16Char{ units: [n+b'A' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:575:31 [INFO] [stderr] | [INFO] [stderr] 575 | pub fn to_ascii_lowercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:576:44 [INFO] [stderr] | [INFO] [stderr] 576 | let n = self.units[0].wrapping_sub(b'A' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:577:41 [INFO] [stderr] | [INFO] [stderr] 577 | if n < 26 {Utf16Char{ units: [n+b'a' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/decoding_iterators.rs:93:32 [INFO] [stderr] | [INFO] [stderr] 93 | fn save(&mut self, bytes: &[u8;4], len: usize) { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;4]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `in_order` [INFO] [stderr] --> src/decoding_iterators.rs:208:18 [INFO] [stderr] | [INFO] [stderr] 208 | for i in 0..self.after_err_leftover as usize { [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] 208 | for (i, ) in in_order.iter_mut().enumerate().take(self.after_err_leftover as usize) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `encode_unicode`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:60:16 [INFO] [stderr] | [INFO] [stderr] 60 | match ((self as u32)<<25).not().leading_zeros() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(self)` [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] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | if self<128 {0} else {((self as u32)<<25).not().leading_zeros() as usize} [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(self)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/traits.rs:348:31 [INFO] [stderr] | [INFO] [stderr] 348 | Ok(extra) => &src[..extra+1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=extra` [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/traits.rs:368:33 [INFO] [stderr] | [INFO] [stderr] 368 | Ok(extra) => &utf8[..extra+1], [INFO] [stderr] | ^^^^^^^^^ help: use: `..=extra` [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: redundant closure found [INFO] [stderr] --> src/traits.rs:376:27 [INFO] [stderr] | [INFO] [stderr] 376 | .map_err(|e| Codepoint(e) ) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Codepoint` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:419:49 [INFO] [stderr] | [INFO] [stderr] 419 | => Ok((char::from_u32_unchecked(u as u32), 1)), [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(u)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:448:54 [INFO] [stderr] | [INFO] [stderr] 448 | None => char::from_u32_unchecked(utf16.0 as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(utf16.0)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:480:17 [INFO] [stderr] | [INFO] [stderr] 480 | let mut c = src[0] as u32 & (0x7f >> src.len()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(src[0])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:482:26 [INFO] [stderr] | [INFO] [stderr] 482 | c = (c << 6) | (b & 0b0011_1111) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(b & 0b0011_1111)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:489:16 [INFO] [stderr] | [INFO] [stderr] 489 | let high = (first & 0x_03_ff) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(first & 0x_03_ff)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/traits.rs:490:15 [INFO] [stderr] | [INFO] [stderr] 490 | let low = (second & 0x_03_ff) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(second & 0x_03_ff)` [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: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/utf8_char.rs:277:1 [INFO] [stderr] | [INFO] [stderr] 277 | / impl hash::Hash for Utf8Char { [INFO] [stderr] 278 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 279 | | self.to_char().hash(state); [INFO] [stderr] 280 | | } [INFO] [stderr] 281 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/utf8_char.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | #[derive(PartialEq,Eq, PartialOrd,Ord)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: item `utf8_char::Utf8Char` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/utf8_char.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | / impl Utf8Char { [INFO] [stderr] 387 | | /// Create an `Utf8Char` from the first codepoint in a `str`. [INFO] [stderr] 388 | | /// [INFO] [stderr] 389 | | /// Returns an error if the `str` is empty. [INFO] [stderr] ... | [INFO] [stderr] 645 | | } [INFO] [stderr] 646 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | pub fn is_ascii(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:574:33 [INFO] [stderr] | [INFO] [stderr] 574 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:574:48 [INFO] [stderr] | [INFO] [stderr] 574 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:583:31 [INFO] [stderr] | [INFO] [stderr] 583 | pub fn to_ascii_uppercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf8_char.rs:593:31 [INFO] [stderr] | [INFO] [stderr] 593 | pub fn to_ascii_lowercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | 1 => Utf16Char{ units: [b[0] as u16, 0] }, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:91:27 [INFO] [stderr] | [INFO] [stderr] 91 | first += (b[0] as u16 & 0x07) << 8; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:92:27 [INFO] [stderr] | [INFO] [stderr] 92 | first += (b[1] as u16 & 0x3f) << 2; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:93:27 [INFO] [stderr] | [INFO] [stderr] 93 | first += (b[2] as u16 & 0x30) >> 4; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:95:28 [INFO] [stderr] | [INFO] [stderr] 95 | second |= (b[2] as u16 & 0x0f) << 6; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:96:28 [INFO] [stderr] | [INFO] [stderr] 96 | second |= b[3] as u16 & 0x3f; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[3])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:100:34 [INFO] [stderr] | [INFO] [stderr] 100 | let mut unit = ((b[0] as u16 & 0x1f) << 6) | (b[1] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:100:63 [INFO] [stderr] | [INFO] [stderr] 100 | let mut unit = ((b[0] as u16 & 0x1f) << 6) | (b[1] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:102:43 [INFO] [stderr] | [INFO] [stderr] 102 | unit = (unit << 6) | (b[2] as u16 & 0x3f); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[2])` [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: redundant closure found [INFO] [stderr] --> src/utf16_char.rs:160:42 [INFO] [stderr] | [INFO] [stderr] 160 | self.extend(iter.into_iter().map(|u16c| Utf8Char::from(u16c) )); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Utf8Char::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:223:44 [INFO] [stderr] | [INFO] [stderr] 223 | let n = self.units[0].wrapping_sub(b'a' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:224:41 [INFO] [stderr] | [INFO] [stderr] 224 | if n < 26 {Utf16Char{ units: [n+b'A' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:228:44 [INFO] [stderr] | [INFO] [stderr] 228 | let n = self.units[0].wrapping_sub(b'A' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:229:41 [INFO] [stderr] | [INFO] [stderr] 229 | if n < 26 {Utf16Char{ units: [n+b'a' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/utf16_char.rs:265:1 [INFO] [stderr] | [INFO] [stderr] 265 | / impl hash::Hash for Utf16Char { [INFO] [stderr] 266 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 267 | | self.to_char().hash(state); [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/utf16_char.rs:37:10 [INFO] [stderr] | [INFO] [stderr] 37 | #[derive(PartialEq,Eq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:297:20 [INFO] [stderr] | [INFO] [stderr] 297 | let lhs = (self.units[0] as u32, self.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.units[0])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:297:42 [INFO] [stderr] | [INFO] [stderr] 297 | let lhs = (self.units[0] as u32, self.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.units[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] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:298:20 [INFO] [stderr] | [INFO] [stderr] 298 | let rhs = (rhs.units[0] as u32, rhs.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(rhs.units[0])` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:298:41 [INFO] [stderr] | [INFO] [stderr] 298 | let rhs = (rhs.units[0] as u32, rhs.units[1] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(rhs.units[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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:373:26 [INFO] [stderr] | [INFO] [stderr] 373 | self.units[0] == *byte as u16 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(*byte)` [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: item `utf16_char::Utf16Char` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/utf16_char.rs:413:1 [INFO] [stderr] | [INFO] [stderr] 413 | / impl Utf16Char { [INFO] [stderr] 414 | | /// Create an `Utf16Char` from the first codepoint in a string slice, [INFO] [stderr] 415 | | /// converting from UTF-8 to UTF-16. [INFO] [stderr] 416 | | /// [INFO] [stderr] ... | [INFO] [stderr] 622 | | } [INFO] [stderr] 623 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:441:28 [INFO] [stderr] | [INFO] [stderr] 441 | let unit = b[0] as u16;// 0b0000_0000_0xxx_xxxx [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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: the operation is ineffective. Consider reducing it to `((b[1] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:445:28 [INFO] [stderr] | [INFO] [stderr] 445 | let unit = (((b[1] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:445:29 [INFO] [stderr] | [INFO] [stderr] 445 | let unit = (((b[1] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:446:29 [INFO] [stderr] | [INFO] [stderr] 446 | | (((b[0] & 0x1f) as u16) << 6);// 0b0000_0xxx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x1f)` [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: the operation is ineffective. Consider reducing it to `((b[2] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:450:28 [INFO] [stderr] | [INFO] [stderr] 450 | let unit = (((b[2] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:450:29 [INFO] [stderr] | [INFO] [stderr] 450 | let unit = (((b[2] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:451:29 [INFO] [stderr] | [INFO] [stderr] 451 | | (((b[1] & 0x3f) as u16) << 6) // 0b0000_xxxx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:452:29 [INFO] [stderr] | [INFO] [stderr] 452 | | (((b[0] & 0x0f) as u16) << 12);// 0bxxxx_0000_0000_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x0f)` [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: the operation is ineffective. Consider reducing it to `((b[3] & 0x3f) as u16)` [INFO] [stderr] --> src/utf16_char.rs:457:30 [INFO] [stderr] | [INFO] [stderr] 457 | | (((b[3] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:457:31 [INFO] [stderr] | [INFO] [stderr] 457 | | (((b[3] & 0x3f) as u16) << 0) // 0b0000_0000_00xx_xxxx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[3] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:458:31 [INFO] [stderr] | [INFO] [stderr] 458 | | (((b[2] & 0x0f) as u16) << 6);// 0b0000_00xx_xx00_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x0f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:460:30 [INFO] [stderr] | [INFO] [stderr] 460 | + (((b[2] & 0x30) as u16) >> 4) // 0b0000_0000_0000_00xx [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[2] & 0x30)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:461:30 [INFO] [stderr] | [INFO] [stderr] 461 | + (((b[1] & 0x3f) as u16) << 2) // 0b0000_0000_xxxx_xx00 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[1] & 0x3f)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:462:30 [INFO] [stderr] | [INFO] [stderr] 462 | + (((b[0] & 0x07) as u16) << 8); // 0b0000_0xxx_0000_0000 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(b[0] & 0x07)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:550:21 [INFO] [stderr] | [INFO] [stderr] 550 | pub fn is_ascii(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:557:33 [INFO] [stderr] | [INFO] [stderr] 557 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:557:48 [INFO] [stderr] | [INFO] [stderr] 557 | pub fn eq_ignore_ascii_case(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:565:31 [INFO] [stderr] | [INFO] [stderr] 565 | pub fn to_ascii_uppercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:566:44 [INFO] [stderr] | [INFO] [stderr] 566 | let n = self.units[0].wrapping_sub(b'a' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:567:41 [INFO] [stderr] | [INFO] [stderr] 567 | if n < 26 {Utf16Char{ units: [n+b'A' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utf16_char.rs:575:31 [INFO] [stderr] | [INFO] [stderr] 575 | pub fn to_ascii_lowercase(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:576:44 [INFO] [stderr] | [INFO] [stderr] 576 | let n = self.units[0].wrapping_sub(b'A' as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'A')` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/utf16_char.rs:577:41 [INFO] [stderr] | [INFO] [stderr] 577 | if n < 26 {Utf16Char{ units: [n+b'a' as u16, 0] }} [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'a')` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/decoding_iterators.rs:93:32 [INFO] [stderr] | [INFO] [stderr] 93 | fn save(&mut self, bytes: &[u8;4], len: usize) { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;4]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `in_order` [INFO] [stderr] --> src/decoding_iterators.rs:208:18 [INFO] [stderr] | [INFO] [stderr] 208 | for i in 0..self.after_err_leftover as usize { [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] 208 | for (i, ) in in_order.iter_mut().enumerate().take(self.after_err_leftover as usize) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `encode_unicode`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "3c3c82f26eea5d5f7d87cd96e5fcd63305f1ab91ce0f4bcdb70ad7333525cf94"` [INFO] running `"docker" "rm" "-f" "3c3c82f26eea5d5f7d87cd96e5fcd63305f1ab91ce0f4bcdb70ad7333525cf94"` [INFO] [stdout] 3c3c82f26eea5d5f7d87cd96e5fcd63305f1ab91ce0f4bcdb70ad7333525cf94