[INFO] updating cached repository Tangent128/webmetro [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Tangent128/webmetro [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Tangent128/webmetro" "work/ex/clippy-test-run/sources/stable/gh/Tangent128/webmetro"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Tangent128/webmetro'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Tangent128/webmetro" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tangent128/webmetro"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tangent128/webmetro'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1c4ea2f3ed207e1ccbd4c9a96974e0bd1b520e7d [INFO] sha for GitHub repo Tangent128/webmetro: 1c4ea2f3ed207e1ccbd4c9a96974e0bd1b520e7d [INFO] validating manifest of Tangent128/webmetro 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 Tangent128/webmetro 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 Tangent128/webmetro [INFO] finished frobbing Tangent128/webmetro [INFO] frobbed toml for Tangent128/webmetro written to work/ex/clippy-test-run/sources/stable/gh/Tangent128/webmetro/Cargo.toml [INFO] started frobbing Tangent128/webmetro [INFO] finished frobbing Tangent128/webmetro [INFO] frobbed toml for Tangent128/webmetro written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tangent128/webmetro/Cargo.toml [INFO] crate Tangent128/webmetro has a lockfile. skipping [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 Tangent128/webmetro against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Tangent128/webmetro:/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] cccb52ead70530e4848279efa6ff583e93c84ddc05107bc351b06def872f3860 [INFO] running `"docker" "start" "-a" "cccb52ead70530e4848279efa6ff583e93c84ddc05107bc351b06def872f3860"` [INFO] [stderr] Checking unchecked-index v0.2.2 [INFO] [stderr] Checking time v0.1.39 [INFO] [stderr] Checking atty v0.2.8 [INFO] [stderr] Checking net2 v0.2.32 [INFO] [stderr] Checking log v0.4.5 [INFO] [stderr] Checking rawslice v0.1.0 [INFO] [stderr] Checking tokio-timer v0.2.6 [INFO] [stderr] Checking mime_guess v2.0.0-alpha.6 [INFO] [stderr] Checking odds v0.3.1 [INFO] [stderr] Checking tokio-io v0.1.10 [INFO] [stderr] Checking tokio-threadpool v0.1.6 [INFO] [stderr] Checking want v0.0.6 [INFO] [stderr] Checking tungstenite v0.6.0 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking mio v0.6.14 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking h2 v0.1.13 [INFO] [stderr] Checking tokio-fs v0.1.3 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking tokio-reactor v0.1.1 [INFO] [stderr] Checking tokio-udp v0.1.0 [INFO] [stderr] Checking tokio-tcp v0.1.0 [INFO] [stderr] Checking tokio-uds v0.2.1 [INFO] [stderr] Checking tokio v0.1.11 [INFO] [stderr] Checking hyper v0.12.12 [INFO] [stderr] Checking warp v0.1.4 [INFO] [stderr] Checking webmetro v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/webm.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | track: track, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `track` [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/webm.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | timecode: timecode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `timecode` [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/webm.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/channel.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | receiver: receiver [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [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/webm.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | track: track, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `track` [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/webm.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | timecode: timecode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `timecode` [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/webm.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/channel.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | receiver: receiver [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [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/ebml.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub const EBML_HEAD_ID: u64 = 0x0A45DFA3; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0A45_DFA3` [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/ebml.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | return output.write_all(&buffer.get_ref()[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `output.write_all(&buffer.get_ref()[..size])` [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/stream_parser.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return EbmlStreamingParser::poll_event(self); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EbmlStreamingParser::poll_event(self)` [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/chunk.rs:204:47 [INFO] [stderr] | [INFO] [stderr] 204 | if (block.flags & 0b10000000) != 0 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | const SEGMENT_ID: u64 = 0x08538067; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0853_8067` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | const SEEK_HEAD_ID: u64 = 0x014D9B74; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x014D_9B74` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | const SEGMENT_INFO_ID: u64 = 0x0549A966; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0549_A966` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | const CUES_ID: u64 = 0x0C53BB6B; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0C53_BB6B` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const TRACKS_ID: u64 = 0x0654AE6B; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0654_AE6B` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | const CLUSTER_ID: u64 = 0x0F43B675; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0F43_B675` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub const EBML_HEAD_ID: u64 = 0x0A45DFA3; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0A45_DFA3` [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/ebml.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | return output.write_all(&buffer.get_ref()[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `output.write_all(&buffer.get_ref()[..size])` [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: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:377:37 [INFO] [stderr] | [INFO] [stderr] 377 | encode_varint(Varint::Value(0x03FFFFFFFFFE), &mut six_buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0x03FF_FFFF_FFFE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:383:37 [INFO] [stderr] | [INFO] [stderr] 383 | encode_varint(Varint::Value(0x03FFFFFFFFFF), &mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0x03FF_FFFF_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: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | encode_varint(Varint::Value(0x01000000000000), &mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0001_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:389:37 [INFO] [stderr] | [INFO] [stderr] 389 | encode_varint(Varint::Value(0x01FFFFFFFFFFFE), &mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0001_FFFF_FFFF_FFFE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:392:48 [INFO] [stderr] | [INFO] [stderr] 392 | assert_eq!(encode_varint(Varint::Value(0x01FFFFFFFFFFFE), &mut no_space).unwrap_err().kind(), ErrorKind::WriteZero); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0001_FFFF_FFFF_FFFE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:393:48 [INFO] [stderr] | [INFO] [stderr] 393 | assert_eq!(encode_varint(Varint::Value(0x01FFFFFFFFFFFE), &mut six_buffer).unwrap_err().kind(), ErrorKind::WriteZero); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0001_FFFF_FFFF_FFFE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:396:37 [INFO] [stderr] | [INFO] [stderr] 396 | encode_varint(Varint::Value(0x01FFFFFFFFFFFF), &mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x0001_FFFF_FFFF_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: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:399:37 [INFO] [stderr] | [INFO] [stderr] 399 | encode_varint(Varint::Value(0xFFFFFFFFFFFFFE), &mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x00FF_FFFF_FFFF_FFFE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:402:48 [INFO] [stderr] | [INFO] [stderr] 402 | assert_eq!(encode_varint(Varint::Value(0xFFFFFFFFFFFFFF), &mut buffer).unwrap_err().kind(), ErrorKind::InvalidInput); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `0x00FF_FFFF_FFFF_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: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:444:80 [INFO] [stderr] | [INFO] [stderr] 444 | assert_eq!(decode_uint(&[0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]), Ok(9223372036854775807)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `9_223_372_036_854_775_807` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:445:59 [INFO] [stderr] | [INFO] [stderr] 445 | assert_eq!(decode_uint(&[0x80,0,0,0,0,0,0,0]), Ok(9223372036854775808)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `9_223_372_036_854_775_808` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:446:59 [INFO] [stderr] | [INFO] [stderr] 446 | assert_eq!(decode_uint(&[0x80,0,0,0,0,0,0,1]), Ok(9223372036854775809)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `9_223_372_036_854_775_809` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ebml.rs:469:53 [INFO] [stderr] | [INFO] [stderr] 469 | assert_eq!(decoded, Ok(Some((GenericElement(0x0A45DFA3, 31), 43)))); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0A45_DFA3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/stream_parser.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return EbmlStreamingParser::poll_event(self); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EbmlStreamingParser::poll_event(self)` [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/chunk.rs:204:47 [INFO] [stderr] | [INFO] [stderr] 204 | if (block.flags & 0b10000000) != 0 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | const SEGMENT_ID: u64 = 0x08538067; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0853_8067` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | const SEEK_HEAD_ID: u64 = 0x014D9B74; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x014D_9B74` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:9:30 [INFO] [stderr] | [INFO] [stderr] 9 | const SEGMENT_INFO_ID: u64 = 0x0549A966; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0549_A966` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | const CUES_ID: u64 = 0x0C53BB6B; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0C53_BB6B` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const TRACKS_ID: u64 = 0x0654AE6B; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0654_AE6B` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | const CLUSTER_ID: u64 = 0x0F43B675; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0F43_B675` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:157:20 [INFO] [stderr] | [INFO] [stderr] 157 | flags: 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | flags: 0b00000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/webm.rs:169:20 [INFO] [stderr] | [INFO] [stderr] 169 | flags: 0b00000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [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/lib.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | pub const TEST_FILE: &'static [u8] = include_bytes!("data/test1.webm"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:26:39 [INFO] [stderr] | [INFO] [stderr] 26 | pub const ENCODE_WEBM_TEST_FILE: &'static [u8] = include_bytes!("data/encode_webm_test.webm"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &EbmlError::CorruptVarint => "EBML Varint could not be parsed", [INFO] [stderr] 27 | | &EbmlError::UnknownElementId => "EBML element ID was \"unknown\"", [INFO] [stderr] 28 | | &EbmlError::UnknownElementLength => "EBML element length was \"unknown\" for an element not allowing that", [INFO] [stderr] 29 | | &EbmlError::CorruptPayload => "EBML element payload could not be parsed", [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 25 | match *self { [INFO] [stderr] 26 | EbmlError::CorruptVarint => "EBML Varint could not be parsed", [INFO] [stderr] 27 | EbmlError::UnknownElementId => "EBML element ID was \"unknown\"", [INFO] [stderr] 28 | EbmlError::UnknownElementLength => "EBML element length was \"unknown\" for an element not allowing that", [INFO] [stderr] 29 | EbmlError::CorruptPayload => "EBML element payload could not be parsed", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &WriteError::OutOfRange => write!(f, "EBML Varint out of range") [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 40 | match *self { [INFO] [stderr] 41 | WriteError::OutOfRange => write!(f, "EBML Varint out of range") [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &WriteError::OutOfRange => "EBML Varint out of range" [INFO] [stderr] 49 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | WriteError::OutOfRange => "EBML Varint out of range" [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ebml.rs:72:8 [INFO] [stderr] | [INFO] [stderr] 72 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.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 u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:79:21 [INFO] [stderr] | [INFO] [stderr] 79 | value = (bytes[0] & !mask) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[0] & !mask)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:80:30 [INFO] [stderr] | [INFO] [stderr] 80 | unknown_marker = (mask - 1) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(mask - 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: manual implementation of an assign operation [INFO] [stderr] --> src/ebml.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | mask = mask >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `mask >>= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/ebml.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 1..value_length { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 97 | for in bytes.iter().take(value_length).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:98:32 [INFO] [stderr] | [INFO] [stderr] 98 | value = (value << 8) + (bytes[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[i])` [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: length comparison to one [INFO] [stderr] --> src/ebml.rs:138:8 [INFO] [stderr] | [INFO] [stderr] 138 | if bytes.len() < 1 || bytes.len() > 8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.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: manual implementation of an assign operation [INFO] [stderr] --> src/ebml.rs:164:17 [INFO] [stderr] | [INFO] [stderr] 164 | flag = flag << (8 - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `flag <<= (8 - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/error.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn from_str(string: &str) -> WebmetroError { [INFO] [stderr] 23 | | string.into() [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match self { [INFO] [stderr] 34 | | &WebmetroError::ResourcesExceeded => write!(f, "resources exceeded"), [INFO] [stderr] 35 | | &WebmetroError::EbmlError(ref err) => err.fmt(f), [INFO] [stderr] 36 | | &WebmetroError::IoError(ref err) => err.fmt(f), [INFO] [stderr] 37 | | &WebmetroError::Unknown(ref err) => err.fmt(f), [INFO] [stderr] 38 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 33 | match *self { [INFO] [stderr] 34 | WebmetroError::ResourcesExceeded => write!(f, "resources exceeded"), [INFO] [stderr] 35 | WebmetroError::EbmlError(ref err) => err.fmt(f), [INFO] [stderr] 36 | WebmetroError::IoError(ref err) => err.fmt(f), [INFO] [stderr] 37 | WebmetroError::Unknown(ref err) => err.fmt(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | / match self { [INFO] [stderr] 44 | | &WebmetroError::ResourcesExceeded => "resources exceeded", [INFO] [stderr] 45 | | &WebmetroError::EbmlError(ref err) => err.description(), [INFO] [stderr] 46 | | &WebmetroError::IoError(ref err) => err.description(), [INFO] [stderr] 47 | | &WebmetroError::Unknown(ref err) => err.description(), [INFO] [stderr] 48 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 43 | match *self { [INFO] [stderr] 44 | WebmetroError::ResourcesExceeded => "resources exceeded", [INFO] [stderr] 45 | WebmetroError::EbmlError(ref err) => err.description(), [INFO] [stderr] 46 | WebmetroError::IoError(ref err) => err.description(), [INFO] [stderr] 47 | WebmetroError::Unknown(ref err) => err.description(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/chunk.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &Chunk::Headers {ref bytes, ..} => bytes.as_ref(), [INFO] [stderr] 85 | | &Chunk::ClusterHead(ref cluster_head) => cluster_head.as_ref(), [INFO] [stderr] 86 | | &Chunk::ClusterBody {ref bytes, ..} => bytes.as_ref() [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | match *self { [INFO] [stderr] 84 | Chunk::Headers {ref bytes, ..} => bytes.as_ref(), [INFO] [stderr] 85 | Chunk::ClusterHead(ref cluster_head) => cluster_head.as_ref(), [INFO] [stderr] 86 | Chunk::ClusterBody {ref bytes, ..} => bytes.as_ref() [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/fixers.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match poll_chunk { [INFO] [stderr] 24 | | Ok(Async::Ready(Some(Chunk::ClusterHead(ref mut cluster_head)))) => { [INFO] [stderr] 25 | | let start = cluster_head.start; [INFO] [stderr] 26 | | if start < self.last_observed_timecode { [INFO] [stderr] ... | [INFO] [stderr] 34 | | _ => {} [INFO] [stderr] 35 | | }; [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] 23 | if let Ok(Async::Ready(Some(Chunk::ClusterHead(ref mut cluster_head)))) = poll_chunk { [INFO] [stderr] 24 | let start = cluster_head.start; [INFO] [stderr] 25 | if start < self.last_observed_timecode { [INFO] [stderr] 26 | let next_timecode = self.last_observed_timecode + self.assumed_duration; [INFO] [stderr] 27 | self.current_offset = next_timecode - start; [INFO] [stderr] 28 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/webm.rs:117:39 [INFO] [stderr] | [INFO] [stderr] 117 | encode_bytes(DOC_TYPE_ID, "webm".as_bytes(), output) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"webm"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/main.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/main.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &EbmlError::CorruptVarint => "EBML Varint could not be parsed", [INFO] [stderr] 27 | | &EbmlError::UnknownElementId => "EBML element ID was \"unknown\"", [INFO] [stderr] 28 | | &EbmlError::UnknownElementLength => "EBML element length was \"unknown\" for an element not allowing that", [INFO] [stderr] 29 | | &EbmlError::CorruptPayload => "EBML element payload could not be parsed", [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 25 | match *self { [INFO] [stderr] 26 | EbmlError::CorruptVarint => "EBML Varint could not be parsed", [INFO] [stderr] 27 | EbmlError::UnknownElementId => "EBML element ID was \"unknown\"", [INFO] [stderr] 28 | EbmlError::UnknownElementLength => "EBML element length was \"unknown\" for an element not allowing that", [INFO] [stderr] 29 | EbmlError::CorruptPayload => "EBML element payload could not be parsed", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &WriteError::OutOfRange => write!(f, "EBML Varint out of range") [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 40 | match *self { [INFO] [stderr] 41 | WriteError::OutOfRange => write!(f, "EBML Varint out of range") [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ebml.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &WriteError::OutOfRange => "EBML Varint out of range" [INFO] [stderr] 49 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | WriteError::OutOfRange => "EBML Varint out of range" [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ebml.rs:72:8 [INFO] [stderr] | [INFO] [stderr] 72 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.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 u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:79:21 [INFO] [stderr] | [INFO] [stderr] 79 | value = (bytes[0] & !mask) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[0] & !mask)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:80:30 [INFO] [stderr] | [INFO] [stderr] 80 | unknown_marker = (mask - 1) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(mask - 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: manual implementation of an assign operation [INFO] [stderr] --> src/ebml.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | mask = mask >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `mask >>= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/ebml.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 1..value_length { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 97 | for in bytes.iter().take(value_length).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/ebml.rs:98:32 [INFO] [stderr] | [INFO] [stderr] 98 | value = (value << 8) + (bytes[i] as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[i])` [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: length comparison to one [INFO] [stderr] --> src/ebml.rs:138:8 [INFO] [stderr] | [INFO] [stderr] 138 | if bytes.len() < 1 || bytes.len() > 8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.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: manual implementation of an assign operation [INFO] [stderr] --> src/ebml.rs:164:17 [INFO] [stderr] | [INFO] [stderr] 164 | flag = flag << (8 - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `flag <<= (8 - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/ebml.rs:340:5 [INFO] [stderr] | [INFO] [stderr] 340 | / fn encode_varints() { [INFO] [stderr] 341 | | let mut buffer = BytesMut::with_capacity(10).writer(); [INFO] [stderr] 342 | | [INFO] [stderr] 343 | | let mut no_space = Cursor::new([0; 0]).writer(); [INFO] [stderr] ... | [INFO] [stderr] 403 | | assert_eq!(encode_varint(Varint::Value(u64::max_value()), &mut buffer).unwrap_err().kind(), ErrorKind::InvalidInput); [INFO] [stderr] 404 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `0x80` [INFO] [stderr] --> src/ebml.rs:355:52 [INFO] [stderr] | [INFO] [stderr] 355 | assert_eq!(buffer.get_mut().split_to(1), &[0x80 | 0].as_ref()); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/error.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn from_str(string: &str) -> WebmetroError { [INFO] [stderr] 23 | | string.into() [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match self { [INFO] [stderr] 34 | | &WebmetroError::ResourcesExceeded => write!(f, "resources exceeded"), [INFO] [stderr] 35 | | &WebmetroError::EbmlError(ref err) => err.fmt(f), [INFO] [stderr] 36 | | &WebmetroError::IoError(ref err) => err.fmt(f), [INFO] [stderr] 37 | | &WebmetroError::Unknown(ref err) => err.fmt(f), [INFO] [stderr] 38 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 33 | match *self { [INFO] [stderr] 34 | WebmetroError::ResourcesExceeded => write!(f, "resources exceeded"), [INFO] [stderr] 35 | WebmetroError::EbmlError(ref err) => err.fmt(f), [INFO] [stderr] 36 | WebmetroError::IoError(ref err) => err.fmt(f), [INFO] [stderr] 37 | WebmetroError::Unknown(ref err) => err.fmt(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | / match self { [INFO] [stderr] 44 | | &WebmetroError::ResourcesExceeded => "resources exceeded", [INFO] [stderr] 45 | | &WebmetroError::EbmlError(ref err) => err.description(), [INFO] [stderr] 46 | | &WebmetroError::IoError(ref err) => err.description(), [INFO] [stderr] 47 | | &WebmetroError::Unknown(ref err) => err.description(), [INFO] [stderr] 48 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 43 | match *self { [INFO] [stderr] 44 | WebmetroError::ResourcesExceeded => "resources exceeded", [INFO] [stderr] 45 | WebmetroError::EbmlError(ref err) => err.description(), [INFO] [stderr] 46 | WebmetroError::IoError(ref err) => err.description(), [INFO] [stderr] 47 | WebmetroError::Unknown(ref err) => err.description(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/chunk.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &Chunk::Headers {ref bytes, ..} => bytes.as_ref(), [INFO] [stderr] 85 | | &Chunk::ClusterHead(ref cluster_head) => cluster_head.as_ref(), [INFO] [stderr] 86 | | &Chunk::ClusterBody {ref bytes, ..} => bytes.as_ref() [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | match *self { [INFO] [stderr] 84 | Chunk::Headers {ref bytes, ..} => bytes.as_ref(), [INFO] [stderr] 85 | Chunk::ClusterHead(ref cluster_head) => cluster_head.as_ref(), [INFO] [stderr] 86 | Chunk::ClusterBody {ref bytes, ..} => bytes.as_ref() [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/fixers.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match poll_chunk { [INFO] [stderr] 24 | | Ok(Async::Ready(Some(Chunk::ClusterHead(ref mut cluster_head)))) => { [INFO] [stderr] 25 | | let start = cluster_head.start; [INFO] [stderr] 26 | | if start < self.last_observed_timecode { [INFO] [stderr] ... | [INFO] [stderr] 34 | | _ => {} [INFO] [stderr] 35 | | }; [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] 23 | if let Ok(Async::Ready(Some(Chunk::ClusterHead(ref mut cluster_head)))) = poll_chunk { [INFO] [stderr] 24 | let start = cluster_head.start; [INFO] [stderr] 25 | if start < self.last_observed_timecode { [INFO] [stderr] 26 | let next_timecode = self.last_observed_timecode + self.assumed_duration; [INFO] [stderr] 27 | self.current_offset = next_timecode - start; [INFO] [stderr] 28 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/webm.rs:117:39 [INFO] [stderr] | [INFO] [stderr] 117 | encode_bytes(DOC_TYPE_ID, "webm".as_bytes(), output) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"webm"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/webm.rs:211:19 [INFO] [stderr] | [INFO] [stderr] 211 | data: "Hello, World".as_bytes() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Hello, World"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/commands/relay.rs:124:8 [INFO] [stderr] | [INFO] [stderr] 124 | Ok(warp::serve(routes).run(addr)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 124 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/commands/relay.rs:124:8 [INFO] [stderr] | [INFO] [stderr] 124 | Ok(warp::serve(routes).run(addr)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 124 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 38.73s [INFO] running `"docker" "inspect" "cccb52ead70530e4848279efa6ff583e93c84ddc05107bc351b06def872f3860"` [INFO] running `"docker" "rm" "-f" "cccb52ead70530e4848279efa6ff583e93c84ddc05107bc351b06def872f3860"` [INFO] [stdout] cccb52ead70530e4848279efa6ff583e93c84ddc05107bc351b06def872f3860