[INFO] cloning repository https://github.com/MarimeGui/smf_lib [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MarimeGui/smf_lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarimeGui%2Fsmf_lib", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarimeGui%2Fsmf_lib'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bd6124554f3065e92c2da9c25568799fd7c50927 [INFO] linting MarimeGui/smf_lib against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarimeGui%2Fsmf_lib" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/MarimeGui/smf_lib [INFO] finished tweaking git repo https://github.com/MarimeGui/smf_lib [INFO] tweaked toml for git repo https://github.com/MarimeGui/smf_lib written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MarimeGui/smf_lib on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MarimeGui/smf_lib already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 24e8b0dcb8fb4e29bc4bfe91afee9f9f90552f344ce069bec43c1c6ec4f6942a [INFO] running `Command { std: "docker" "start" "-a" "24e8b0dcb8fb4e29bc4bfe91afee9f9f90552f344ce069bec43c1c6ec4f6942a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "24e8b0dcb8fb4e29bc4bfe91afee9f9f90552f344ce069bec43c1c6ec4f6942a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "24e8b0dcb8fb4e29bc4bfe91afee9f9f90552f344ce069bec43c1c6ec4f6942a", kill_on_drop: false }` [INFO] [stdout] 24e8b0dcb8fb4e29bc4bfe91afee9f9f90552f344ce069bec43c1c6ec4f6942a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3fe61c15154e4eabfc2b182cbd4deac3256a9729740862d8813b8083fbcc6342 [INFO] running `Command { std: "docker" "start" "-a" "3fe61c15154e4eabfc2b182cbd4deac3256a9729740862d8813b8083fbcc6342", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking ez_io v0.1.0 (https://github.com/MarimeGui/ez_io#d2a48131) [INFO] [stderr] Checking smf_lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/header/mod.rs:43:79 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:14:101 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:35:112 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:56:107 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:76:104 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 76 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:94:109 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 94 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:112:100 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/sysex.rs:12:63 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:13:72 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:27:75 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn read(reader: &mut R, length: u32) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | pub fn read(reader: &mut R, length: u32) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:43:75 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:57:66 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 57 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:74:66 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:92:69 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:117:71 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 117 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:138:70 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:157:94 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn read(reader: &mut R, total_length: u32) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 157 | pub fn read(reader: &mut R, total_length: u32) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:66:115 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn read(reader: &mut R, code_byte: u8, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 66 | pub fn read(reader: &mut R, code_byte: u8, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:130:83 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn read(reader: &mut R, code_byte: u8) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 130 | pub fn read(reader: &mut R, code_byte: u8) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:180:74 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 180 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:276:96 [INFO] [stdout] | [INFO] [stdout] 276 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 276 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/mod.rs:18:101 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/mod.rs:21:68 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:31:47 [INFO] [stdout] | [INFO] [stdout] 31 | fn read_vlv(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 31 | fn read_vlv(&mut self) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/header/mod.rs:43:79 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:14:101 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:35:112 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:56:107 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:76:104 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 76 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:94:109 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 94 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/midi.rs:112:100 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn read(reader: &mut R, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/sysex.rs:12:63 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:13:72 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:27:75 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn read(reader: &mut R, length: u32) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | pub fn read(reader: &mut R, length: u32) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:43:75 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:57:66 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 57 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:74:66 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:92:69 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 92 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:117:71 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 117 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:138:70 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/meta.rs:157:94 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn read(reader: &mut R, total_length: u32) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 157 | pub fn read(reader: &mut R, total_length: u32) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:66:115 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn read(reader: &mut R, code_byte: u8, running_status_byte: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 66 | pub fn read(reader: &mut R, code_byte: u8, running_status_byte: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:130:83 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn read(reader: &mut R, code_byte: u8) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 130 | pub fn read(reader: &mut R, code_byte: u8) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:180:74 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 180 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/event/mod.rs:276:96 [INFO] [stdout] | [INFO] [stdout] 276 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 276 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/data/mod.rs:18:101 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(reader: &mut R, last_event: Option) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/track/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/file/mod.rs:21:68 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn read(reader: &mut R) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:31:47 [INFO] [stdout] | [INFO] [stdout] 31 | fn read_vlv(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 31 | fn read_vlv(&mut self) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/header/mod.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let format: MidiFormat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `format` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 ~ let format: MidiFormat = match format_num { [INFO] [stdout] 49 ~ 0 => MidiFormat::SingleTrack, [INFO] [stdout] 50 ~ 1 => MidiFormat::SimultaneousTracks, [INFO] [stdout] 51 ~ 2 => MidiFormat::IndependentTracks, [INFO] [stdout] 52 | _ => return Err(Box::new(InvalidMidiFormatError{})) [INFO] [stdout] 53 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/header/mod.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | let division_system; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `division_system` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 56 ~ [INFO] [stdout] 57 ~ let division_system = if (division_info & 0b1000_0000_0000_0000u16) == 0 { [INFO] [stdout] 58 ~ MidiDivisionsType::TicksPerQuarterNote( [INFO] [stdout] 59 ~ MidiTPQNDivisions{ ticks_per_quarter_note: division_info }) [INFO] [stdout] 60 | } else { [INFO] [stdout] 61 | let ticks_per_smtpe_frame: u16 = division_info & 0b0000_0000_1111_1111u16; [INFO] [stdout] 62 | let smtpe_frames_per_second: u16 = division_info & 0b0111_1111_0000_0000u16; [INFO] [stdout] 63 ~ MidiDivisionsType::SMTPEFrames( [INFO] [stdout] 64 | MidiSMTPEDivisions{ ticks_per_smtpe_frame, smtpe_frames_per_second } [INFO] [stdout] 65 | ) [INFO] [stdout] 66 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let key: u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `key` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 15 ~ [INFO] [stdout] 16 ~ let key: u8 = match running_status_byte { [INFO] [stdout] 17 ~ Some(x) => x, [INFO] [stdout] 18 ~ None => reader.read_to_u8()?, [INFO] [stdout] 19 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | let key: u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `key` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 36 ~ [INFO] [stdout] 37 ~ let key: u8 = match running_status_byte { [INFO] [stdout] 38 ~ Some(x) => x, [INFO] [stdout] 39 ~ None => reader.read_to_u8()?, [INFO] [stdout] 40 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let controller_number: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `controller_number` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 57 ~ [INFO] [stdout] 58 ~ let controller_number: u8 = match running_status_byte { [INFO] [stdout] 59 ~ Some(x) => x, [INFO] [stdout] 60 ~ None => reader.read_to_u8()?, [INFO] [stdout] 61 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | let new_program_number: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `new_program_number` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 77 ~ [INFO] [stdout] 78 ~ let new_program_number: u8 = match running_status_byte { [INFO] [stdout] 79 ~ Some(x) => x, [INFO] [stdout] 80 ~ None => reader.read_to_u8()?, [INFO] [stdout] 81 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let value: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 95 ~ [INFO] [stdout] 96 ~ let value: u8 = match running_status_byte { [INFO] [stdout] 97 ~ Some(x) => x, [INFO] [stdout] 98 ~ None => reader.read_to_u8()?, [INFO] [stdout] 99 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let value: u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 113 ~ [INFO] [stdout] 114 ~ let value: u16 = match running_status_byte { [INFO] [stdout] 115 ~ Some(x) => unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] 116 ~ None => reader.read_be_to_u16()?, [INFO] [stdout] 117 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/file/track/data/event/mod.rs:280:49 [INFO] [stdout] | [INFO] [stdout] 280 | if (code_byte & 0b1000_0000u8 == 0u8) & (!last_event.is_some()) { // Running Status [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `last_event.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `SeekFrom::Current` to start from current position [INFO] [stdout] --> src/file/track/mod.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | let track_event_start = reader.seek(SeekFrom::Current(0))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `reader.stream_position()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current [INFO] [stdout] = note: `#[warn(clippy::seek_from_current)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `SeekFrom::Current` to start from current position [INFO] [stdout] --> src/file/track/mod.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | while reader.seek(SeekFrom::Current(0))? < (track_event_start + (u64::from(length))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `reader.stream_position()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/file/track/data/event/midi.rs:115:40 [INFO] [stdout] | [INFO] [stdout] 115 | Some(x) => value = unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 115 - Some(x) => value = unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] 115 + Some(x) => value = unsafe {u16::from_ne_bytes([x, reader.read_to_u8()?])}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/header/mod.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let format: MidiFormat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `format` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 ~ let format: MidiFormat = match format_num { [INFO] [stdout] 49 ~ 0 => MidiFormat::SingleTrack, [INFO] [stdout] 50 ~ 1 => MidiFormat::SimultaneousTracks, [INFO] [stdout] 51 ~ 2 => MidiFormat::IndependentTracks, [INFO] [stdout] 52 | _ => return Err(Box::new(InvalidMidiFormatError{})) [INFO] [stdout] 53 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/header/mod.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | let division_system; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `division_system` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 56 ~ [INFO] [stdout] 57 ~ let division_system = if (division_info & 0b1000_0000_0000_0000u16) == 0 { [INFO] [stdout] 58 ~ MidiDivisionsType::TicksPerQuarterNote( [INFO] [stdout] 59 ~ MidiTPQNDivisions{ ticks_per_quarter_note: division_info }) [INFO] [stdout] 60 | } else { [INFO] [stdout] 61 | let ticks_per_smtpe_frame: u16 = division_info & 0b0000_0000_1111_1111u16; [INFO] [stdout] 62 | let smtpe_frames_per_second: u16 = division_info & 0b0111_1111_0000_0000u16; [INFO] [stdout] 63 ~ MidiDivisionsType::SMTPEFrames( [INFO] [stdout] 64 | MidiSMTPEDivisions{ ticks_per_smtpe_frame, smtpe_frames_per_second } [INFO] [stdout] 65 | ) [INFO] [stdout] 66 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let key: u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `key` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 15 ~ [INFO] [stdout] 16 ~ let key: u8 = match running_status_byte { [INFO] [stdout] 17 ~ Some(x) => x, [INFO] [stdout] 18 ~ None => reader.read_to_u8()?, [INFO] [stdout] 19 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | let key: u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `key` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 36 ~ [INFO] [stdout] 37 ~ let key: u8 = match running_status_byte { [INFO] [stdout] 38 ~ Some(x) => x, [INFO] [stdout] 39 ~ None => reader.read_to_u8()?, [INFO] [stdout] 40 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let controller_number: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `controller_number` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 57 ~ [INFO] [stdout] 58 ~ let controller_number: u8 = match running_status_byte { [INFO] [stdout] 59 ~ Some(x) => x, [INFO] [stdout] 60 ~ None => reader.read_to_u8()?, [INFO] [stdout] 61 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | let new_program_number: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `new_program_number` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 77 ~ [INFO] [stdout] 78 ~ let new_program_number: u8 = match running_status_byte { [INFO] [stdout] 79 ~ Some(x) => x, [INFO] [stdout] 80 ~ None => reader.read_to_u8()?, [INFO] [stdout] 81 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let value: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 95 ~ [INFO] [stdout] 96 ~ let value: u8 = match running_status_byte { [INFO] [stdout] 97 ~ Some(x) => x, [INFO] [stdout] 98 ~ None => reader.read_to_u8()?, [INFO] [stdout] 99 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/file/track/data/event/midi.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let value: u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 113 ~ [INFO] [stdout] 114 ~ let value: u16 = match running_status_byte { [INFO] [stdout] 115 ~ Some(x) => unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] 116 ~ None => reader.read_be_to_u16()?, [INFO] [stdout] 117 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/file/track/data/event/mod.rs:280:49 [INFO] [stdout] | [INFO] [stdout] 280 | if (code_byte & 0b1000_0000u8 == 0u8) & (!last_event.is_some()) { // Running Status [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `last_event.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `SeekFrom::Current` to start from current position [INFO] [stdout] --> src/file/track/mod.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | let track_event_start = reader.seek(SeekFrom::Current(0))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `reader.stream_position()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current [INFO] [stdout] = note: `#[warn(clippy::seek_from_current)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `SeekFrom::Current` to start from current position [INFO] [stdout] --> src/file/track/mod.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | while reader.seek(SeekFrom::Current(0))? < (track_event_start + (u64::from(length))) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `reader.stream_position()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#seek_from_current [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/file/track/data/event/midi.rs:115:40 [INFO] [stdout] | [INFO] [stdout] 115 | Some(x) => value = unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 115 - Some(x) => value = unsafe {transmute::<[u8; 2], u16>([x, reader.read_to_u8()?])}, [INFO] [stdout] 115 + Some(x) => value = unsafe {u16::from_ne_bytes([x, reader.read_to_u8()?])}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.44s [INFO] running `Command { std: "docker" "inspect" "3fe61c15154e4eabfc2b182cbd4deac3256a9729740862d8813b8083fbcc6342", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3fe61c15154e4eabfc2b182cbd4deac3256a9729740862d8813b8083fbcc6342", kill_on_drop: false }` [INFO] [stdout] 3fe61c15154e4eabfc2b182cbd4deac3256a9729740862d8813b8083fbcc6342