[INFO] crate encoding 0.2.33 is already in cache [INFO] extracting crate encoding 0.2.33 into work/ex/clippy-test-run/sources/stable/reg/encoding/0.2.33 [INFO] extracting crate encoding 0.2.33 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/encoding/0.2.33 [INFO] validating manifest of encoding-0.2.33 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 encoding-0.2.33 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 encoding-0.2.33 [INFO] removed path dependency encoding-index-japanese from encoding-0.2.33 [INFO] removed path dependency encoding-index-korean from encoding-0.2.33 [INFO] removed path dependency encoding-index-simpchinese from encoding-0.2.33 [INFO] removed path dependency encoding-index-singlebyte from encoding-0.2.33 [INFO] removed path dependency encoding-index-tradchinese from encoding-0.2.33 [INFO] finished frobbing encoding-0.2.33 [INFO] frobbed toml for encoding-0.2.33 written to work/ex/clippy-test-run/sources/stable/reg/encoding/0.2.33/Cargo.toml [INFO] started frobbing encoding-0.2.33 [INFO] removed path dependency encoding-index-japanese from encoding-0.2.33 [INFO] removed path dependency encoding-index-korean from encoding-0.2.33 [INFO] removed path dependency encoding-index-simpchinese from encoding-0.2.33 [INFO] removed path dependency encoding-index-singlebyte from encoding-0.2.33 [INFO] removed path dependency encoding-index-tradchinese from encoding-0.2.33 [INFO] finished frobbing encoding-0.2.33 [INFO] frobbed toml for encoding-0.2.33 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/encoding/0.2.33/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 encoding-0.2.33 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/encoding/0.2.33:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 7a320fa947a7ec274ff10d4083dfb52fba10f2b3eedfb629daa4fea83b51bc3a [INFO] running `"docker" "start" "-a" "7a320fa947a7ec274ff10d4083dfb52fba10f2b3eedfb629daa4fea83b51bc3a"` [INFO] [stderr] Checking encoding v0.2.33 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/util.rs:74:33 [INFO] [stderr] | [INFO] [stderr] 74 | StatefulDecoderHelper { buf: buf, pos: 0, output: output, err: None, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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: redundant field names in struct initialization [INFO] [stderr] --> src/util.rs:74:51 [INFO] [stderr] | [INFO] [stderr] 74 | StatefulDecoderHelper { buf: buf, pos: 0, output: output, err: None, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/util.rs:75:33 [INFO] [stderr] | [INFO] [stderr] 75 | data: data, _marker: PhantomData } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/util.rs:127:45 [INFO] [stderr] | [INFO] [stderr] 127 | self.err = Some(types::CodecError { upto: upto, cause: msg.into() }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `upto` [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/codec/singlebyte.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | Box::new(SingleByteEncoder { index_backward: index_backward }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_backward` [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/codec/singlebyte.rs:77:38 [INFO] [stderr] | [INFO] [stderr] 77 | Box::new(SingleByteDecoder { index_forward: index_forward }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_forward` [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/util.rs:74:33 [INFO] [stderr] | [INFO] [stderr] 74 | StatefulDecoderHelper { buf: buf, pos: 0, output: output, err: None, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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: redundant field names in struct initialization [INFO] [stderr] --> src/util.rs:74:51 [INFO] [stderr] | [INFO] [stderr] 74 | StatefulDecoderHelper { buf: buf, pos: 0, output: output, err: None, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `output` [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/util.rs:75:33 [INFO] [stderr] | [INFO] [stderr] 75 | data: data, _marker: PhantomData } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/util.rs:127:45 [INFO] [stderr] | [INFO] [stderr] 127 | self.err = Some(types::CodecError { upto: upto, cause: msg.into() }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `upto` [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/codec/singlebyte.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | Box::new(SingleByteEncoder { index_backward: index_backward }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_backward` [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/codec/singlebyte.rs:77:38 [INFO] [stderr] | [INFO] [stderr] 77 | Box::new(SingleByteDecoder { index_forward: index_forward }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_forward` [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: long literal lacking separators [INFO] [stderr] --> src/codec/simpchinese.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | assert!(ptr != 0xffffffff); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/codec/simpchinese.rs:249:13 [INFO] [stderr] | [INFO] [stderr] 249 | 0xffffffff => ctx.backup_and_err(3, "invalid sequence"), // unconditional [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/all.rs:95:23 [INFO] [stderr] | [INFO] [stderr] 95 | const ENCODINGS: &'static [EncodingRef] = &[ [INFO] [stderr] | -^^^^^^^-------------- help: consider removing `'static`: `&[EncodingRef]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: transmute from a `u32` to a `char` [INFO] [stderr] --> src/util.rs:16:14 [INFO] [stderr] | [INFO] [stderr] 16 | unsafe { mem::transmute(ch) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using: `std::char::from_u32(ch).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_int_to_char)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_char [INFO] [stderr] [INFO] [stderr] warning: transmute from a `u32` to a `char` [INFO] [stderr] --> src/util.rs:99:40 [INFO] [stderr] | [INFO] [stderr] 99 | self.output.write_char(unsafe {mem::transmute(c)}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using: `std::char::from_u32(c).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_char [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/types.rs:230:21 [INFO] [stderr] | [INFO] [stderr] 230 | / match encoder.raw_finish(ret) { [INFO] [stderr] 231 | | Some(err) => { [INFO] [stderr] 232 | | remaining = (remaining as isize + err.upto) as usize; [INFO] [stderr] 233 | | if !trap.trap(&mut *encoder, &input[unprocessed..remaining], ret) { [INFO] [stderr] ... | [INFO] [stderr] 237 | | None => {} [INFO] [stderr] 238 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 230 | if let Some(err) = encoder.raw_finish(ret) { [INFO] [stderr] 231 | remaining = (remaining as isize + err.upto) as usize; [INFO] [stderr] 232 | if !trap.trap(&mut *encoder, &input[unprocessed..remaining], ret) { [INFO] [stderr] 233 | return Err(err.cause); [INFO] [stderr] 234 | } [INFO] [stderr] 235 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/types.rs:278:21 [INFO] [stderr] | [INFO] [stderr] 278 | / match decoder.raw_finish(ret) { [INFO] [stderr] 279 | | Some(err) => { [INFO] [stderr] 280 | | remaining = (remaining as isize + err.upto) as usize; [INFO] [stderr] 281 | | if !trap.trap(&mut *decoder, &input[unprocessed..remaining], ret) { [INFO] [stderr] ... | [INFO] [stderr] 285 | | None => {} [INFO] [stderr] 286 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 278 | if let Some(err) = decoder.raw_finish(ret) { [INFO] [stderr] 279 | remaining = (remaining as isize + err.upto) as usize; [INFO] [stderr] 280 | if !trap.trap(&mut *decoder, &input[unprocessed..remaining], ret) { [INFO] [stderr] 281 | return Err(err.cause); [INFO] [stderr] 282 | } [INFO] [stderr] 283 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/error.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn new() -> Box { Box::new(ErrorEncoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/error.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn new() -> Box { Box::new(ErrorDecoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/codec/error.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | if input.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/ascii.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn new() -> Box { Box::new(ASCIIEncoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/ascii.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn new() -> Box { Box::new(ASCIIDecoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/codec/ascii.rs:77:38 [INFO] [stderr] | [INFO] [stderr] 77 | output.write_str(unsafe {mem::transmute(buf)}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(buf).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_bytes_to_str)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/singlebyte.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / pub fn new(index_backward: extern "Rust" fn(u32) -> u8) -> Box { [INFO] [stderr] 35 | | Box::new(SingleByteEncoder { index_backward: index_backward }) [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/singlebyte.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn new(index_forward: extern "Rust" fn(u8) -> u16) -> Box { [INFO] [stderr] 77 | | Box::new(SingleByteDecoder { index_forward: index_forward }) [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/codec/singlebyte.rs:96:47 [INFO] [stderr] | [INFO] [stderr] 96 | output.write_char(as_char(ch as u32)); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/singlebyte.rs:115:49 [INFO] [stderr] | [INFO] [stderr] 115 | #[inline] pub fn forward(code: u8) -> u16 { code as u16 } [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(code)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/utf_8.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn new() -> Box { Box::new(UTF8Encoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/utf_8.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / pub fn new() -> Box { [INFO] [stderr] 90 | | Box::new(UTF8Decoder { queuelen: 0, queue: [0; 4], state: INITIAL_STATE }) [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/codec/utf_8.rs:149:38 [INFO] [stderr] | [INFO] [stderr] 149 | output.write_str(unsafe {mem::transmute(bytes)}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(bytes).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/codec/utf_8.rs:158:69 [INFO] [stderr] | [INFO] [stderr] 158 | let first_msb = input.iter().position(|&ch| ch >= 0x80).unwrap_or(input.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| input.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/codec/utf_8.rs:214:1 [INFO] [stderr] | [INFO] [stderr] 214 | / pub fn from_utf8<'a>(input: &'a [u8]) -> Option<&'a str> { [INFO] [stderr] 215 | | let mut iter = input.iter(); [INFO] [stderr] 216 | | let mut state; [INFO] [stderr] 217 | | [INFO] [stderr] ... | [INFO] [stderr] 237 | | return_as_whole!(); [INFO] [stderr] 238 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&'a [u8]` to a `&'a str` [INFO] [stderr] --> src/codec/utf_8.rs:218:61 [INFO] [stderr] | [INFO] [stderr] 218 | macro_rules! return_as_whole(() => (return Some(unsafe {mem::transmute(input)}))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(input).unwrap()` [INFO] [stderr] ... [INFO] [stderr] 228 | None => { return_as_whole!(); } [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#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&'a [u8]` to a `&'a str` [INFO] [stderr] --> src/codec/utf_8.rs:218:61 [INFO] [stderr] | [INFO] [stderr] 218 | macro_rules! return_as_whole(() => (return Some(unsafe {mem::transmute(input)}))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(input).unwrap()` [INFO] [stderr] ... [INFO] [stderr] 237 | return_as_whole!(); [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#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/utf_16.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | lead | ((trail as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/utf_16.rs:53:23 [INFO] [stderr] | [INFO] [stderr] 53 | (lead << 8) | trail as u16 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/utf_16.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / fn new() -> Box { [INFO] [stderr] 109 | | Box::new(UTF16Encoder:: { _marker: PhantomData }) [INFO] [stderr] 110 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/utf_16.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | / pub fn new() -> Box { [INFO] [stderr] 162 | | Box::new(UTF16Decoder:: { leadbyte: 0xffff, leadsurrogate: 0xffff, [INFO] [stderr] 163 | | _marker: PhantomData }) [INFO] [stderr] 164 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/codec/utf_16.rs:191:36 [INFO] [stderr] | [INFO] [stderr] 191 | let ch = ((upper as u32 - 0xd800) << 10) + (ch as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(upper)` [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/codec/utf_16.rs:191:69 [INFO] [stderr] | [INFO] [stderr] 191 | let ch = ((upper as u32 - 0xd800) << 10) + (ch as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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/codec/utf_16.rs:213:51 [INFO] [stderr] | [INFO] [stderr] 213 | output.write_char(as_char(ch as u32)); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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/codec/utf_16.rs:224:33 [INFO] [stderr] | [INFO] [stderr] 224 | self.leadbyte = input[i-1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:228:39 [INFO] [stderr] | [INFO] [stderr] 228 | let ch = concat_two_bytes(input[i-1] as u16, input[i]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:232:32 [INFO] [stderr] | [INFO] [stderr] 232 | let ch = ((upper as u32 - 0xd800) << 10) + (ch as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(upper)` [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/codec/utf_16.rs:232:65 [INFO] [stderr] | [INFO] [stderr] 232 | let ch = ((upper as u32 - 0xd800) << 10) + (ch as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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/codec/utf_16.rs:251:33 [INFO] [stderr] | [INFO] [stderr] 251 | self.leadbyte = input[i-1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:254:39 [INFO] [stderr] | [INFO] [stderr] 254 | let ch = concat_two_bytes(input[i-1] as u16, input[i]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:260:56 [INFO] [stderr] | [INFO] [stderr] 260 | if i-1 < len { self.leadbyte = input[i-1] as u16; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:263:48 [INFO] [stderr] | [INFO] [stderr] 263 | let ch2 = concat_two_bytes(input[i-1] as u16, input[i]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[i-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/codec/utf_16.rs:266:40 [INFO] [stderr] | [INFO] [stderr] 266 | let ch = ((ch as u32 - 0xd800) << 10) + (ch2 as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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/codec/utf_16.rs:266:70 [INFO] [stderr] | [INFO] [stderr] 266 | let ch = ((ch as u32 - 0xd800) << 10) + (ch2 as u32 - 0xdc00); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(ch2)` [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/codec/utf_16.rs:282:47 [INFO] [stderr] | [INFO] [stderr] 282 | output.write_char(as_char(ch as u32)); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ch)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/korean.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn new() -> Box { Box::new(Windows949Encoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/korean.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn new() -> Box { [INFO] [stderr] 80 | | Box::new(Windows949Decoder { st: Default::default() }) [INFO] [stderr] 81 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/korean.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/korean.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/korean.rs:119:42 [INFO] [stderr] | [INFO] [stderr] 119 | case b @ 0x00...0x7f => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn new() -> Box { Box::new(EUCJPEncoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / pub fn new() -> Box { [INFO] [stderr] 94 | | Box::new(EUCJP0212Decoder { st: Default::default() }) [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/japanese.rs:121:20 [INFO] [stderr] | [INFO] [stderr] 121 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/japanese.rs:122:21 [INFO] [stderr] | [INFO] [stderr] 122 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/japanese.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/japanese.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/japanese.rs:145:42 [INFO] [stderr] | [INFO] [stderr] 145 | case b @ 0x00...0x7f => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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/codec/japanese.rs:155:51 [INFO] [stderr] | [INFO] [stderr] 155 | case b @ 0xa1...0xdf => ctx.emit(0xff61 + b as u32 - 0xa1); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:464:5 [INFO] [stderr] | [INFO] [stderr] 464 | pub fn new() -> Box { Box::new(Windows31JEncoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:515:5 [INFO] [stderr] | [INFO] [stderr] 515 | / pub fn new() -> Box { [INFO] [stderr] 516 | | Box::new(Windows31JDecoder { st: Default::default() }) [INFO] [stderr] 517 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/japanese.rs:543:20 [INFO] [stderr] | [INFO] [stderr] 543 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/japanese.rs:544:21 [INFO] [stderr] | [INFO] [stderr] 544 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/japanese.rs:549:24 [INFO] [stderr] | [INFO] [stderr] 549 | return (0xe000 + (lead - 0xf0) * 188 + trail - trailoffset) as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(0xe000 + (lead - 0xf0) * 188 + trail - trailoffset)` [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/codec/japanese.rs:561:42 [INFO] [stderr] | [INFO] [stderr] 561 | case b @ 0x00...0x80 => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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/codec/japanese.rs:562:51 [INFO] [stderr] | [INFO] [stderr] 562 | case b @ 0xa1...0xdf => ctx.emit(0xff61 + b as u32 - 0xa1); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:795:5 [INFO] [stderr] | [INFO] [stderr] 795 | pub fn new() -> Box { Box::new(ISO2022JPEncoder { st: ASCII }) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/japanese.rs:859:5 [INFO] [stderr] | [INFO] [stderr] 859 | / pub fn new() -> Box { [INFO] [stderr] 860 | | Box::new(ISO2022JPDecoder { st: Default::default() }) [INFO] [stderr] 861 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/japanese.rs:887:20 [INFO] [stderr] | [INFO] [stderr] 887 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/japanese.rs:888:21 [INFO] [stderr] | [INFO] [stderr] 888 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/japanese.rs:899:20 [INFO] [stderr] | [INFO] [stderr] 899 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/japanese.rs:900:21 [INFO] [stderr] | [INFO] [stderr] 900 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/japanese.rs:912:42 [INFO] [stderr] | [INFO] [stderr] 912 | case b @ 0x00...0x7f => ctx.emit(b as u32), ASCII(ctx); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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/codec/japanese.rs:937:51 [INFO] [stderr] | [INFO] [stderr] 937 | case b @ 0x21...0x5f => ctx.emit(0xff61 + b as u32 - 0x21), Katakana(ctx); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/simpchinese.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | / pub fn new() -> Box { [INFO] [stderr] 113 | | Box::new(GBEncoder:: { _marker: PhantomData }) [INFO] [stderr] 114 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/codec/simpchinese.rs:129:35 [INFO] [stderr] | [INFO] [stderr] 129 | output.write_byte('\u{80}' as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\u{80}' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/simpchinese.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | / pub fn new() -> Box { [INFO] [stderr] 173 | | Box::new(GB18030Decoder { st: Default::default() }) [INFO] [stderr] 174 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/simpchinese.rs:200:20 [INFO] [stderr] | [INFO] [stderr] 200 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/simpchinese.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/simpchinese.rs:216:22 [INFO] [stderr] | [INFO] [stderr] 216 | let index = (b1 as u32 - 0x81) * 12600 + (b2 as u32 - 0x30) * 1260 + [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(b1)` [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/codec/simpchinese.rs:216:51 [INFO] [stderr] | [INFO] [stderr] 216 | let index = (b1 as u32 - 0x81) * 12600 + (b2 as u32 - 0x30) * 1260 + [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(b2)` [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/codec/simpchinese.rs:217:22 [INFO] [stderr] | [INFO] [stderr] 217 | (b3 as u32 - 0x81) * 10 + (b4 as u32 - 0x30); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(b3)` [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/codec/simpchinese.rs:217:48 [INFO] [stderr] | [INFO] [stderr] 217 | (b3 as u32 - 0x81) * 10 + (b4 as u32 - 0x30); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(b4)` [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/codec/simpchinese.rs:224:42 [INFO] [stderr] | [INFO] [stderr] 224 | case b @ 0x00...0x7f => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/simpchinese.rs:491:5 [INFO] [stderr] | [INFO] [stderr] 491 | pub fn new() -> Box { Box::new(HZEncoder { escaped: false }) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/codec/simpchinese.rs:513:50 [INFO] [stderr] | [INFO] [stderr] 513 | if ch == '~' { output.write_byte('~' as u8); } [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'~' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/simpchinese.rs:554:5 [INFO] [stderr] | [INFO] [stderr] 554 | / pub fn new() -> Box { [INFO] [stderr] 555 | | Box::new(HZDecoder { st: Default::default() }) [INFO] [stderr] 556 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/simpchinese.rs:582:20 [INFO] [stderr] | [INFO] [stderr] 582 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/simpchinese.rs:583:21 [INFO] [stderr] | [INFO] [stderr] 583 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/simpchinese.rs:595:42 [INFO] [stderr] | [INFO] [stderr] 595 | case b @ 0x00...0x7f => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/tradchinese.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn new() -> Box { Box::new(BigFive2003Encoder) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/codec/tradchinese.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn new() -> Box { [INFO] [stderr] 86 | | Box::new(BigFive2003HKSCS2008Decoder { st: Default::default() }) [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/codec/tradchinese.rs:113:20 [INFO] [stderr] | [INFO] [stderr] 113 | let lead = lead as u16; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(lead)` [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/codec/tradchinese.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | let trail = trail as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(trail)` [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/codec/tradchinese.rs:128:42 [INFO] [stderr] | [INFO] [stderr] 128 | case b @ 0x00...0x7f => ctx.emit(b as u32); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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/codec/whatwg.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | 0xf700 | (code as u16) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(code)` [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[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> src/lib.rs:207:19 [INFO] [stderr] | [INFO] [stderr] 207 | #![cfg_attr(test, feature(test))] // lib stability features as per RFC #507 [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `encoding`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> examples/recode.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / let mut policy = matches.opt_str("e"); [INFO] [stderr] 55 | | if matches.opt_present("c") { [INFO] [stderr] 56 | | policy = Some("ignore".to_string()); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let policy = if matches.opt_present("c") { Some("ignore".to_string()) } else { matches.opt_str("e") };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> examples/recode.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | input.read_to_end(&mut ret).ok().expect("cannot read from the input"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "7a320fa947a7ec274ff10d4083dfb52fba10f2b3eedfb629daa4fea83b51bc3a"` [INFO] running `"docker" "rm" "-f" "7a320fa947a7ec274ff10d4083dfb52fba10f2b3eedfb629daa4fea83b51bc3a"` [INFO] [stdout] 7a320fa947a7ec274ff10d4083dfb52fba10f2b3eedfb629daa4fea83b51bc3a