[INFO] fetching crate tuneutils 0.1.1...
[INFO] checking tuneutils-0.1.1 against beta-2020-07-24 for pr-75494-beta
[INFO] extracting crate tuneutils 0.1.1 into /workspace/builds/worker-13/source
[INFO] validating manifest of crates.io crate tuneutils 0.1.1 on toolchain beta-2020-07-24
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate tuneutils 0.1.1
[INFO] finished tweaking crates.io crate tuneutils 0.1.1
[INFO] tweaked toml for crates.io crate tuneutils 0.1.1 written to /workspace/builds/worker-13/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65147df3fbab18990b03e431dd8cd684489f91394488cabadc699bca259abc4d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "65147df3fbab18990b03e431dd8cd684489f91394488cabadc699bca259abc4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65147df3fbab18990b03e431dd8cd684489f91394488cabadc699bca259abc4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65147df3fbab18990b03e431dd8cd684489f91394488cabadc699bca259abc4d", kill_on_drop: false }`
[INFO] [stdout] 65147df3fbab18990b03e431dd8cd684489f91394488cabadc699bca259abc4d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d8b6805a072fbbea6b54218a2fd3e9d11c35e627a44dbde262f8611674ff0d9f
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "d8b6805a072fbbea6b54218a2fd3e9d11c35e627a44dbde262f8611674ff0d9f", kill_on_drop: false }`
[INFO] [stderr]    Compiling feature-probe v0.1.1
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling libc v0.2.76
[INFO] [stderr]    Compiling serde v1.0.115
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]    Compiling bv v0.10.0
[INFO] [stderr]     Checking serde_json v1.0.57
[INFO] [stderr]     Checking serde_yaml v0.8.13
[INFO] [stderr]     Checking eval v0.4.3
[INFO] [stderr]     Checking tuneutils v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/can/mod.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |     interface: &'a CanInterface,
[INFO] [stdout]    |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/isotp/can.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     can: Rc<CanInterface>,
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/isotp/can.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(can: Rc<CanInterface>, options: Options) -> IsotpCan {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/uds/isotp.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interface: Rc<IsotpInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/uds/isotp.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(interface: Rc<IsotpInterface>) -> UdsIsotp {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/download/mazda.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/download/mazda.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(interface: Rc<UdsInterface>, key: &str, download_size: usize) -> Mazda1Downloader {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/download/mod.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stdout]   |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mazda.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mazda.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(interface: Rc<UdsInterface>, key: &str) -> Mazda1Flasher {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mod.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stdout]    |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsotpCan`
[INFO] [stdout]  --> src/link.rs:9:33
[INFO] [stdout]   |
[INFO] [stdout] 9 |         isotp::{self, IsotpInterface, IsotpCan},
[INFO] [stdout]   |                                       ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:24:46
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn can(&self, baudrate: usize) -> Option<Rc<CanInterface>>;
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn isotp(&self, options: isotp::Options) -> Option<Rc<IsotpInterface>>;
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:77:33
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn create(&self) -> Result<Box<DataLink>>;
[INFO] [stdout]    |                                    ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn discover_datalinks() -> Vec<Box<DataLinkEntry>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkEntry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 |     link: Box<DataLink>,
[INFO] [stdout]     |               ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:181:23
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn new(link: Box<DataLink>, platform: Rc<definition::Main>) -> PlatformLink {
[INFO] [stdout]     |                          ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:202:35
[INFO] [stdout]     |
[INFO] [stdout] 202 |     pub fn isotp(&self) -> Option<Rc<IsotpInterface>> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:207:33
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn uds(&self) -> Option<Rc<UdsInterface>> {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:215:41
[INFO] [stdout]     |
[INFO] [stdout] 215 |     pub fn downloader(&self) -> Option<Box<Downloader>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^ help: use `dyn`: `dyn Downloader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:228:38
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn flasher(&self) -> Option<Box<Flasher>> {
[INFO] [stdout]     |                                         ^^^^^^^ help: use `dyn`: `dyn Flasher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:241:41
[INFO] [stdout]     |
[INFO] [stdout] 241 |     pub fn datalogger(&self) -> Option<Box<datalog::Logger>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn datalog::Logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/authenticator.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     protocols::uds::{self, UdsInterface},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/authenticator.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn authenticate(&self, key: &str, interface: &UdsInterface, session_type: u8) -> Result<()> {
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/rom/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rom/tune.rs:194:96
[INFO] [stdout]     |
[INFO] [stdout] 194 | fn deserialize_table<O: ByteOrder>(datatype: DataType, data: &[u8], size: usize) -> Result<Box<TableDataTrait>> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rom/tune.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     data: Box<TableDataTrait>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/datalog.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 |     callbacks: Vec<Box<RefCell<FnMut(&Entry, NumVariant)>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&Entry, NumVariant)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:91:27
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn new(interface: Rc<UdsInterface>) -> UdsLogger {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/diagnostics.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/diagnostics.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let second_char = ((self.raw[0] & 0x30) >> 4);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/diagnostics.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(interface: Rc<UdsInterface>) -> UdsScanner {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/can/mod.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |     interface: &'a CanInterface,
[INFO] [stdout]    |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/isotp/can.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     can: Rc<CanInterface>,
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/isotp/can.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(can: Rc<CanInterface>, options: Options) -> IsotpCan {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/uds/isotp.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interface: Rc<IsotpInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocols/uds/isotp.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(interface: Rc<IsotpInterface>) -> UdsIsotp {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/download/mazda.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/download/mazda.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(interface: Rc<UdsInterface>, key: &str, download_size: usize) -> Mazda1Downloader {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/download/mod.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stdout]   |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mazda.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mazda.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(interface: Rc<UdsInterface>, key: &str) -> Mazda1Flasher {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/flash/mod.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stdout]    |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsotpCan`
[INFO] [stdout]  --> src/link.rs:9:33
[INFO] [stdout]   |
[INFO] [stdout] 9 |         isotp::{self, IsotpInterface, IsotpCan},
[INFO] [stdout]   |                                       ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:24:46
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn can(&self, baudrate: usize) -> Option<Rc<CanInterface>>;
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn isotp(&self, options: isotp::Options) -> Option<Rc<IsotpInterface>>;
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/link.rs:77:33
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn create(&self) -> Result<Box<DataLink>>;
[INFO] [stdout]    |                                    ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn discover_datalinks() -> Vec<Box<DataLinkEntry>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkEntry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 |     link: Box<DataLink>,
[INFO] [stdout]     |               ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:181:23
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn new(link: Box<DataLink>, platform: Rc<definition::Main>) -> PlatformLink {
[INFO] [stdout]     |                          ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:202:35
[INFO] [stdout]     |
[INFO] [stdout] 202 |     pub fn isotp(&self) -> Option<Rc<IsotpInterface>> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:207:33
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn uds(&self) -> Option<Rc<UdsInterface>> {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:215:41
[INFO] [stdout]     |
[INFO] [stdout] 215 |     pub fn downloader(&self) -> Option<Box<Downloader>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^ help: use `dyn`: `dyn Downloader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:228:38
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn flasher(&self) -> Option<Box<Flasher>> {
[INFO] [stdout]     |                                         ^^^^^^^ help: use `dyn`: `dyn Flasher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/link.rs:241:41
[INFO] [stdout]     |
[INFO] [stdout] 241 |     pub fn datalogger(&self) -> Option<Box<datalog::Logger>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn datalog::Logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/authenticator.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     protocols::uds::{self, UdsInterface},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/authenticator.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn authenticate(&self, key: &str, interface: &UdsInterface, session_type: u8) -> Result<()> {
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/rom/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rom/tune.rs:194:96
[INFO] [stdout]     |
[INFO] [stdout] 194 | fn deserialize_table<O: ByteOrder>(datatype: DataType, data: &[u8], size: usize) -> Result<Box<TableDataTrait>> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rom/tune.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     data: Box<TableDataTrait>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/datalog.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 |     callbacks: Vec<Box<RefCell<FnMut(&Entry, NumVariant)>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&Entry, NumVariant)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/datalog.rs:91:27
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn new(interface: Rc<UdsInterface>) -> UdsLogger {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/diagnostics.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interface: Rc<UdsInterface>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/diagnostics.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let second_char = ((self.raw[0] & 0x30) >> 4);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/diagnostics.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(interface: Rc<UdsInterface>) -> UdsScanner {
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/error.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             _ => write!(f, "unimplemented: {:?}", *self),
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/authenticator.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |             for r in (1..=8).rev() {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/link.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut links = Vec::new();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/error.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             _ => write!(f, "unimplemented: {:?}", *self),
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/authenticator.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |             for r in (1..=8).rev() {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/link.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut links = Vec::new();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `index`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     index: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `data`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     data: [u8; 7],
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `data_length`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     data_length: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_type`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get_type(&self) -> Option<FrameType> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 42 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `index`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     index: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `data`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     data: [u8; 7],
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `data_length`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     data_length: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_type`
[INFO] [stdout]    --> src/protocols/isotp/mod.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get_type(&self) -> Option<FrameType> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 42 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 20.69s
[INFO] running `Command { std: "docker" "inspect" "d8b6805a072fbbea6b54218a2fd3e9d11c35e627a44dbde262f8611674ff0d9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d8b6805a072fbbea6b54218a2fd3e9d11c35e627a44dbde262f8611674ff0d9f", kill_on_drop: false }`
[INFO] [stdout] d8b6805a072fbbea6b54218a2fd3e9d11c35e627a44dbde262f8611674ff0d9f
