[INFO] crate lepton-mux 0.0.1 is already in cache [INFO] extracting crate lepton-mux 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/lepton-mux/0.0.1 [INFO] extracting crate lepton-mux 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lepton-mux/0.0.1 [INFO] validating manifest of lepton-mux-0.0.1 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 lepton-mux-0.0.1 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 lepton-mux-0.0.1 [INFO] finished frobbing lepton-mux-0.0.1 [INFO] frobbed toml for lepton-mux-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/lepton-mux/0.0.1/Cargo.toml [INFO] started frobbing lepton-mux-0.0.1 [INFO] finished frobbing lepton-mux-0.0.1 [INFO] frobbed toml for lepton-mux-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lepton-mux/0.0.1/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 lepton-mux-0.0.1 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-3/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/lepton-mux/0.0.1:/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] 564fd6f00dc2098c39497f08d564bb1704621c04423bf1ad3725bc6139225688 [INFO] running `"docker" "start" "-a" "564fd6f00dc2098c39497f08d564bb1704621c04423bf1ad3725bc6139225688"` [INFO] [stderr] Checking alloc-no-stdlib v1.3.0 [INFO] [stderr] Checking lepton-mux v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mux.rs:10:35 [INFO] [stderr] | [INFO] [stderr] 10 | const MAX_FLUSH_VARIANCE: usize = 131073; [INFO] [stderr] | ^^^^^^ help: consider: `131_073` [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: unneeded return statement [INFO] [stderr] --> src/mux.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return 65536; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `65536` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/mux.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return (MuxSliceHeader::Var(ret), n_bytes_to_write); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(MuxSliceHeader::Var(ret), n_bytes_to_write)` [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/mux.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/mux.rs:245:21 [INFO] [stderr] | [INFO] [stderr] 245 | / if input[0] == EOF_MARKER[0] || input[0] == EOF_MARKER[1] [INFO] [stderr] 246 | | || input[0] == EOF_MARKER[2] [INFO] [stderr] 247 | | { [INFO] [stderr] 248 | | if input[0] == EOF_MARKER[0] || match self.stream_state { [INFO] [stderr] ... | [INFO] [stderr] 254 | | } [INFO] [stderr] 255 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 245 | if (input[0] == EOF_MARKER[0] || input[0] == EOF_MARKER[1] [INFO] [stderr] 246 | || input[0] == EOF_MARKER[2]) && (input[0] == EOF_MARKER[0] || match self.stream_state { [INFO] [stderr] 247 | StreamState::Running => false, [INFO] [stderr] 248 | _ => true, [INFO] [stderr] 249 | }) { [INFO] [stderr] 250 | //eprint!("DESERIALIZING EOF\n"); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/mux.rs:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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: long literal lacking separators [INFO] [stderr] --> src/mux.rs:10:35 [INFO] [stderr] | [INFO] [stderr] 10 | const MAX_FLUSH_VARIANCE: usize = 131073; [INFO] [stderr] | ^^^^^^ help: consider: `131_073` [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: unneeded return statement [INFO] [stderr] --> src/mux.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return 65536; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `65536` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/mux.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return (MuxSliceHeader::Var(ret), n_bytes_to_write); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(MuxSliceHeader::Var(ret), n_bytes_to_write)` [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/mux.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/mux.rs:245:21 [INFO] [stderr] | [INFO] [stderr] 245 | / if input[0] == EOF_MARKER[0] || input[0] == EOF_MARKER[1] [INFO] [stderr] 246 | | || input[0] == EOF_MARKER[2] [INFO] [stderr] 247 | | { [INFO] [stderr] 248 | | if input[0] == EOF_MARKER[0] || match self.stream_state { [INFO] [stderr] ... | [INFO] [stderr] 254 | | } [INFO] [stderr] 255 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 245 | if (input[0] == EOF_MARKER[0] || input[0] == EOF_MARKER[1] [INFO] [stderr] 246 | || input[0] == EOF_MARKER[2]) && (input[0] == EOF_MARKER[0] || match self.stream_state { [INFO] [stderr] 247 | StreamState::Running => false, [INFO] [stderr] 248 | _ => true, [INFO] [stderr] 249 | }) { [INFO] [stderr] 250 | //eprint!("DESERIALIZING EOF\n"); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/mux.rs:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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] error: use of `#[inline]` on trait method `write` which has no body [INFO] [stderr] --> src/interface.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 29 | | fn write(&mut self, stream_id: StreamID, data: &[u8], alloc_u8: &mut AllocU8) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::inline_fn_without_body)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `write_buffer` which has no body [INFO] [stderr] --> src/interface.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 33 | | fn write_buffer(&mut self, stream_id: StreamID, alloc_u8: &mut AllocU8) -> WritableBytes; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `serialize` which has no body [INFO] [stderr] --> src/interface.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 40 | | fn serialize(&mut self, output: &mut [u8]) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `flush` which has no body [INFO] [stderr] --> src/interface.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 42 | | fn flush(&mut self, output: &mut [u8]) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `wrote_eof` which has no body [INFO] [stderr] --> src/interface.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 44 | | fn wrote_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `free` which has no body [INFO] [stderr] --> src/interface.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 46 | | fn free(&mut self, alloc_u8: &mut AllocU8); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `n_stream` which has no body [INFO] [stderr] --> src/interface.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 48 | | fn n_stream(&self) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `deserialize` which has no body [INFO] [stderr] --> src/interface.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 54 | | fn deserialize(&mut self, data: &[u8], alloc_u8: &mut AllocU8) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `read_buffer` which has no body [INFO] [stderr] --> src/interface.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 58 | | fn read_buffer(&mut self, stream_id: StreamID) -> ReadableBytes; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `data_len` which has no body [INFO] [stderr] --> src/interface.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 60 | | fn data_len(&self, stream_id: StreamID) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `data` which has no body [INFO] [stderr] --> src/interface.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 62 | | fn data(&self, stream_id: StreamID) -> &[u8]; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `editable_data` which has no body [INFO] [stderr] --> src/interface.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 64 | | fn editable_data( [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `consume_data` which has no body [INFO] [stderr] --> src/interface.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 69 | | fn consume_data(&mut self, stream_id: StreamID, count: usize); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `consumed_all_streams_until_eof` which has no body [INFO] [stderr] --> src/interface.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 71 | | fn consumed_all_streams_until_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `encountered_eof` which has no body [INFO] [stderr] --> src/interface.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 73 | | fn encountered_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `free` which has no body [INFO] [stderr] --> src/interface.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 75 | | fn free(&mut self, alloc_u8: &mut AllocU8); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `n_stream` which has no body [INFO] [stderr] --> src/interface.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 77 | | fn n_stream(&self) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/mux.rs:51:8 [INFO] [stderr] | [INFO] [stderr] 51 | if is_lagging == false || n_bytes_to_write == 4096 || n_bytes_to_write == 16384 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_lagging` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [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/mux.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | / match self.stream_state { [INFO] [stderr] 156 | | StreamState::EofDone => return 0, [INFO] [stderr] 157 | | _ => {} [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________^ help: try this: `if let StreamState::EofDone = self.stream_state { return 0 }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | / match self.stream_state { [INFO] [stderr] 164 | | StreamState::Running => { [INFO] [stderr] 165 | | output[ret] = EOF_MARKER[0]; [INFO] [stderr] 166 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 169 | | _ => {} [INFO] [stderr] 170 | | } [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] 163 | if let StreamState::Running = self.stream_state { [INFO] [stderr] 164 | output[ret] = EOF_MARKER[0]; [INFO] [stderr] 165 | ret += 1; [INFO] [stderr] 166 | self.stream_state = StreamState::EofStart; [INFO] [stderr] 167 | } [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/mux.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | / match self.stream_state { [INFO] [stderr] 175 | | StreamState::EofStart => { [INFO] [stderr] 176 | | output[ret] = EOF_MARKER[1]; [INFO] [stderr] 177 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 180 | | _ => {} [INFO] [stderr] 181 | | } [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] 174 | if let StreamState::EofStart = self.stream_state { [INFO] [stderr] 175 | output[ret] = EOF_MARKER[1]; [INFO] [stderr] 176 | ret += 1; [INFO] [stderr] 177 | self.stream_state = StreamState::EofMid; [INFO] [stderr] 178 | } [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/mux.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / match self.stream_state { [INFO] [stderr] 186 | | StreamState::EofMid => { [INFO] [stderr] 187 | | output[ret] = EOF_MARKER[2]; [INFO] [stderr] 188 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 191 | | _ => {} [INFO] [stderr] 192 | | } [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] 185 | if let StreamState::EofMid = self.stream_state { [INFO] [stderr] 186 | output[ret] = EOF_MARKER[2]; [INFO] [stderr] 187 | ret += 1; [INFO] [stderr] 188 | self.stream_state = StreamState::EofDone; [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:213:15 [INFO] [stderr] | [INFO] [stderr] 213 | while input.len() != 0 && match self.stream_state { [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:225:26 [INFO] [stderr] | [INFO] [stderr] 225 | (lsb as u32 | (input[0] as u32) << 8) + 1, [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lsb)` [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/mux.rs:225:39 [INFO] [stderr] | [INFO] [stderr] 225 | (lsb as u32 | (input[0] as u32) << 8) + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(input[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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/mux.rs:258:21 [INFO] [stderr] | [INFO] [stderr] 258 | / let bytes_to_copy: u32; [INFO] [stderr] 259 | | if input[0] < 16 { [INFO] [stderr] 260 | | // Fixed header [INFO] [stderr] 261 | | if input.len() < 3 { [INFO] [stderr] ... | [INFO] [stderr] 272 | | //eprintln!("({},{}),", stream_id, bytes_to_copy); [INFO] [stderr] 273 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let bytes_to_copy = if input[0] < 16 { ..; (input[1] as u32 | (input[2] as u32) << 8) + 1 } else { ..; 1024 << ((input[0] >> 4) << 1) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:266:42 [INFO] [stderr] | [INFO] [stderr] 266 | bytes_to_copy = (input[1] as u32 | (input[2] as u32) << 8) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(input[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 u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:266:60 [INFO] [stderr] | [INFO] [stderr] 266 | bytes_to_copy = (input[1] as u32 | (input[2] as u32) << 8) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(input[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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:544:9 [INFO] [stderr] | [INFO] [stderr] 544 | / match self.stream_state { [INFO] [stderr] 545 | | StreamState::Running => { [INFO] [stderr] 546 | | if input[0] == EOF_MARKER[0] { [INFO] [stderr] 547 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 552 | | _ => {} [INFO] [stderr] 553 | | } [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] 544 | if let StreamState::Running = self.stream_state { [INFO] [stderr] 545 | if input[0] == EOF_MARKER[0] { [INFO] [stderr] 546 | ret += 1; [INFO] [stderr] 547 | input = input.split_at(1).1; [INFO] [stderr] 548 | self.stream_state = StreamState::EofStart; [INFO] [stderr] 549 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:554:12 [INFO] [stderr] | [INFO] [stderr] 554 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:557:9 [INFO] [stderr] | [INFO] [stderr] 557 | / match self.stream_state { [INFO] [stderr] 558 | | StreamState::EofStart => { [INFO] [stderr] 559 | | if input[0] == EOF_MARKER[1] { [INFO] [stderr] 560 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 565 | | _ => {} [INFO] [stderr] 566 | | } [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] 557 | if let StreamState::EofStart = self.stream_state { [INFO] [stderr] 558 | if input[0] == EOF_MARKER[1] { [INFO] [stderr] 559 | ret += 1; [INFO] [stderr] 560 | input = input.split_at(1).1; [INFO] [stderr] 561 | self.stream_state = StreamState::EofMid [INFO] [stderr] 562 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:567:12 [INFO] [stderr] | [INFO] [stderr] 567 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:570:9 [INFO] [stderr] | [INFO] [stderr] 570 | / match self.stream_state { [INFO] [stderr] 571 | | StreamState::EofMid => { [INFO] [stderr] 572 | | if input[0] == EOF_MARKER[2] { [INFO] [stderr] 573 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 578 | | _ => {} [INFO] [stderr] 579 | | } [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] 570 | if let StreamState::EofMid = self.stream_state { [INFO] [stderr] 571 | if input[0] == EOF_MARKER[2] { [INFO] [stderr] 572 | ret += 1; [INFO] [stderr] 573 | self.stream_state = StreamState::EofDone; [INFO] [stderr] 574 | return ret; [INFO] [stderr] 575 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: aborting due to 17 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `lepton-mux`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: use of `#[inline]` on trait method `write` which has no body [INFO] [stderr] --> src/interface.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 29 | | fn write(&mut self, stream_id: StreamID, data: &[u8], alloc_u8: &mut AllocU8) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::inline_fn_without_body)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `write_buffer` which has no body [INFO] [stderr] --> src/interface.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 33 | | fn write_buffer(&mut self, stream_id: StreamID, alloc_u8: &mut AllocU8) -> WritableBytes; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `serialize` which has no body [INFO] [stderr] --> src/interface.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 40 | | fn serialize(&mut self, output: &mut [u8]) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `flush` which has no body [INFO] [stderr] --> src/interface.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 42 | | fn flush(&mut self, output: &mut [u8]) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `wrote_eof` which has no body [INFO] [stderr] --> src/interface.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 44 | | fn wrote_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `free` which has no body [INFO] [stderr] --> src/interface.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 46 | | fn free(&mut self, alloc_u8: &mut AllocU8); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `n_stream` which has no body [INFO] [stderr] --> src/interface.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 48 | | fn n_stream(&self) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `deserialize` which has no body [INFO] [stderr] --> src/interface.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 54 | | fn deserialize(&mut self, data: &[u8], alloc_u8: &mut AllocU8) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `read_buffer` which has no body [INFO] [stderr] --> src/interface.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 58 | | fn read_buffer(&mut self, stream_id: StreamID) -> ReadableBytes; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `data_len` which has no body [INFO] [stderr] --> src/interface.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 60 | | fn data_len(&self, stream_id: StreamID) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `data` which has no body [INFO] [stderr] --> src/interface.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 62 | | fn data(&self, stream_id: StreamID) -> &[u8]; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `editable_data` which has no body [INFO] [stderr] --> src/interface.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 64 | | fn editable_data( [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `consume_data` which has no body [INFO] [stderr] --> src/interface.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 69 | | fn consume_data(&mut self, stream_id: StreamID, count: usize); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `consumed_all_streams_until_eof` which has no body [INFO] [stderr] --> src/interface.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 71 | | fn consumed_all_streams_until_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `encountered_eof` which has no body [INFO] [stderr] --> src/interface.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 73 | | fn encountered_eof(&self) -> bool; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `free` which has no body [INFO] [stderr] --> src/interface.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 75 | | fn free(&mut self, alloc_u8: &mut AllocU8); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `n_stream` which has no body [INFO] [stderr] --> src/interface.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | #[inline(always)] [INFO] [stderr] | _____-^^^^^^^^^^^^^^^^ [INFO] [stderr] 77 | | fn n_stream(&self) -> usize; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/mux.rs:51:8 [INFO] [stderr] | [INFO] [stderr] 51 | if is_lagging == false || n_bytes_to_write == 4096 || n_bytes_to_write == 16384 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_lagging` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [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/mux.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | / match self.stream_state { [INFO] [stderr] 156 | | StreamState::EofDone => return 0, [INFO] [stderr] 157 | | _ => {} [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________^ help: try this: `if let StreamState::EofDone = self.stream_state { return 0 }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | / match self.stream_state { [INFO] [stderr] 164 | | StreamState::Running => { [INFO] [stderr] 165 | | output[ret] = EOF_MARKER[0]; [INFO] [stderr] 166 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 169 | | _ => {} [INFO] [stderr] 170 | | } [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] 163 | if let StreamState::Running = self.stream_state { [INFO] [stderr] 164 | output[ret] = EOF_MARKER[0]; [INFO] [stderr] 165 | ret += 1; [INFO] [stderr] 166 | self.stream_state = StreamState::EofStart; [INFO] [stderr] 167 | } [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/mux.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | / match self.stream_state { [INFO] [stderr] 175 | | StreamState::EofStart => { [INFO] [stderr] 176 | | output[ret] = EOF_MARKER[1]; [INFO] [stderr] 177 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 180 | | _ => {} [INFO] [stderr] 181 | | } [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] 174 | if let StreamState::EofStart = self.stream_state { [INFO] [stderr] 175 | output[ret] = EOF_MARKER[1]; [INFO] [stderr] 176 | ret += 1; [INFO] [stderr] 177 | self.stream_state = StreamState::EofMid; [INFO] [stderr] 178 | } [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/mux.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / match self.stream_state { [INFO] [stderr] 186 | | StreamState::EofMid => { [INFO] [stderr] 187 | | output[ret] = EOF_MARKER[2]; [INFO] [stderr] 188 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 191 | | _ => {} [INFO] [stderr] 192 | | } [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] 185 | if let StreamState::EofMid = self.stream_state { [INFO] [stderr] 186 | output[ret] = EOF_MARKER[2]; [INFO] [stderr] 187 | ret += 1; [INFO] [stderr] 188 | self.stream_state = StreamState::EofDone; [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:213:15 [INFO] [stderr] | [INFO] [stderr] 213 | while input.len() != 0 && match self.stream_state { [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:225:26 [INFO] [stderr] | [INFO] [stderr] 225 | (lsb as u32 | (input[0] as u32) << 8) + 1, [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lsb)` [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/mux.rs:225:39 [INFO] [stderr] | [INFO] [stderr] 225 | (lsb as u32 | (input[0] as u32) << 8) + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(input[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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/mux.rs:258:21 [INFO] [stderr] | [INFO] [stderr] 258 | / let bytes_to_copy: u32; [INFO] [stderr] 259 | | if input[0] < 16 { [INFO] [stderr] 260 | | // Fixed header [INFO] [stderr] 261 | | if input.len() < 3 { [INFO] [stderr] ... | [INFO] [stderr] 272 | | //eprintln!("({},{}),", stream_id, bytes_to_copy); [INFO] [stderr] 273 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let bytes_to_copy = if input[0] < 16 { ..; (input[1] as u32 | (input[2] as u32) << 8) + 1 } else { ..; 1024 << ((input[0] >> 4) << 1) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:266:42 [INFO] [stderr] | [INFO] [stderr] 266 | bytes_to_copy = (input[1] as u32 | (input[2] as u32) << 8) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(input[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 u32 may become silently lossy if types change [INFO] [stderr] --> src/mux.rs:266:60 [INFO] [stderr] | [INFO] [stderr] 266 | bytes_to_copy = (input[1] as u32 | (input[2] as u32) << 8) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(input[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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:544:9 [INFO] [stderr] | [INFO] [stderr] 544 | / match self.stream_state { [INFO] [stderr] 545 | | StreamState::Running => { [INFO] [stderr] 546 | | if input[0] == EOF_MARKER[0] { [INFO] [stderr] 547 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 552 | | _ => {} [INFO] [stderr] 553 | | } [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] 544 | if let StreamState::Running = self.stream_state { [INFO] [stderr] 545 | if input[0] == EOF_MARKER[0] { [INFO] [stderr] 546 | ret += 1; [INFO] [stderr] 547 | input = input.split_at(1).1; [INFO] [stderr] 548 | self.stream_state = StreamState::EofStart; [INFO] [stderr] 549 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:554:12 [INFO] [stderr] | [INFO] [stderr] 554 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:557:9 [INFO] [stderr] | [INFO] [stderr] 557 | / match self.stream_state { [INFO] [stderr] 558 | | StreamState::EofStart => { [INFO] [stderr] 559 | | if input[0] == EOF_MARKER[1] { [INFO] [stderr] 560 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 565 | | _ => {} [INFO] [stderr] 566 | | } [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] 557 | if let StreamState::EofStart = self.stream_state { [INFO] [stderr] 558 | if input[0] == EOF_MARKER[1] { [INFO] [stderr] 559 | ret += 1; [INFO] [stderr] 560 | input = input.split_at(1).1; [INFO] [stderr] 561 | self.stream_state = StreamState::EofMid [INFO] [stderr] 562 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/mux.rs:567:12 [INFO] [stderr] | [INFO] [stderr] 567 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/mux.rs:570:9 [INFO] [stderr] | [INFO] [stderr] 570 | / match self.stream_state { [INFO] [stderr] 571 | | StreamState::EofMid => { [INFO] [stderr] 572 | | if input[0] == EOF_MARKER[2] { [INFO] [stderr] 573 | | ret += 1; [INFO] [stderr] ... | [INFO] [stderr] 578 | | _ => {} [INFO] [stderr] 579 | | } [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] 570 | if let StreamState::EofMid = self.stream_state { [INFO] [stderr] 571 | if input[0] == EOF_MARKER[2] { [INFO] [stderr] 572 | ret += 1; [INFO] [stderr] 573 | self.stream_state = StreamState::EofDone; [INFO] [stderr] 574 | return ret; [INFO] [stderr] 575 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: aborting due to 17 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `lepton-mux`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "564fd6f00dc2098c39497f08d564bb1704621c04423bf1ad3725bc6139225688"` [INFO] running `"docker" "rm" "-f" "564fd6f00dc2098c39497f08d564bb1704621c04423bf1ad3725bc6139225688"` [INFO] [stdout] 564fd6f00dc2098c39497f08d564bb1704621c04423bf1ad3725bc6139225688