[INFO] fetching crate tuneutils 0.1.1...
[INFO] testing tuneutils-0.1.1 against 1.47.0 for beta-1.48-1
[INFO] extracting crate tuneutils 0.1.1 into /workspace/builds/worker-3/source
[INFO] validating manifest of crates.io crate tuneutils 0.1.1 on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "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-3/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "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" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 764a35658b89952605f94759c1a099589c77fafd262025b5ee36e664870c1c93
[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" "764a35658b89952605f94759c1a099589c77fafd262025b5ee36e664870c1c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "764a35658b89952605f94759c1a099589c77fafd262025b5ee36e664870c1c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "764a35658b89952605f94759c1a099589c77fafd262025b5ee36e664870c1c93", kill_on_drop: false }`
[INFO] [stdout] 764a35658b89952605f94759c1a099589c77fafd262025b5ee36e664870c1c93
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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=warn" "-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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1d28fd5f323d51d4f3420ecb7bc5e9a77845c8a60e55a87e78e35478b042e18e
[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" "1d28fd5f323d51d4f3420ecb7bc5e9a77845c8a60e55a87e78e35478b042e18e", kill_on_drop: false }`
[INFO] [stderr]    Compiling feature-probe v0.1.1
[INFO] [stderr]    Compiling eval v0.4.3
[INFO] [stderr]    Compiling bv v0.10.0
[INFO] [stderr]    Compiling 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: 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] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 12.02s
[INFO] running `Command { std: "docker" "inspect" "1d28fd5f323d51d4f3420ecb7bc5e9a77845c8a60e55a87e78e35478b042e18e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d28fd5f323d51d4f3420ecb7bc5e9a77845c8a60e55a87e78e35478b042e18e", kill_on_drop: false }`
[INFO] [stdout] 1d28fd5f323d51d4f3420ecb7bc5e9a77845c8a60e55a87e78e35478b042e18e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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=warn" "-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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9b379a4431d938dce5cb8d0d7c73761a0349071c5c1f4204619d1d62cee4e199
[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" "9b379a4431d938dce5cb8d0d7c73761a0349071c5c1f4204619d1d62cee4e199", kill_on_drop: false }`
[INFO] [stderr]    Compiling 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: 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: 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: 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 test [unoptimized + debuginfo] target(s) in 3.58s
[INFO] running `Command { std: "docker" "inspect" "9b379a4431d938dce5cb8d0d7c73761a0349071c5c1f4204619d1d62cee4e199", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b379a4431d938dce5cb8d0d7c73761a0349071c5c1f4204619d1d62cee4e199", kill_on_drop: false }`
[INFO] [stdout] 9b379a4431d938dce5cb8d0d7c73761a0349071c5c1f4204619d1d62cee4e199
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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=warn" "-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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] aca26430dc96e3a94b7e802520ef1e35cccadef57e4f91dd02ba10cbfcde3624
[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" "aca26430dc96e3a94b7e802520ef1e35cccadef57e4f91dd02ba10cbfcde3624", kill_on_drop: false }`
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/can/mod.rs:79:20
[INFO] [stderr]    |
[INFO] [stderr] 79 |     interface: &'a CanInterface,
[INFO] [stderr]    |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/isotp/can.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |     can: Rc<CanInterface>,
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/isotp/can.rs:25:24
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn new(can: Rc<CanInterface>, options: Options) -> IsotpCan {
[INFO] [stderr]    |                        ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/uds/isotp.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 |     interface: Rc<IsotpInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/uds/isotp.rs:14:30
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn new(interface: Rc<IsotpInterface>) -> UdsIsotp {
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download/mazda.rs:14:16
[INFO] [stderr]    |
[INFO] [stderr] 14 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download/mazda.rs:20:27
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn new(interface: Rc<UdsInterface>, key: &str, download_size: usize) -> Mazda1Downloader {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/download/mod.rs:9:35
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stderr]   |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mazda.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mazda.rs:21:27
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn new(interface: Rc<UdsInterface>, key: &str) -> Mazda1Flasher {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mod.rs:13:35
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stderr]    |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `IsotpCan`
[INFO] [stderr]  --> src/link.rs:9:33
[INFO] [stderr]   |
[INFO] [stderr] 9 |         isotp::{self, IsotpInterface, IsotpCan},
[INFO] [stderr]   |                                       ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:24:46
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn can(&self, baudrate: usize) -> Option<Rc<CanInterface>>;
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:27:56
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn isotp(&self, options: isotp::Options) -> Option<Rc<IsotpInterface>>;
[INFO] [stderr]    |                                                           ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:77:33
[INFO] [stderr]    |
[INFO] [stderr] 77 |     fn create(&self) -> Result<Box<DataLink>>;
[INFO] [stderr]    |                                    ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:131:40
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub fn discover_datalinks() -> Vec<Box<DataLinkEntry>> {
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkEntry`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:176:12
[INFO] [stderr]     |
[INFO] [stderr] 176 |     link: Box<DataLink>,
[INFO] [stderr]     |               ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:181:23
[INFO] [stderr]     |
[INFO] [stderr] 181 |     pub fn new(link: Box<DataLink>, platform: Rc<definition::Main>) -> PlatformLink {
[INFO] [stderr]     |                          ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:202:35
[INFO] [stderr]     |
[INFO] [stderr] 202 |     pub fn isotp(&self) -> Option<Rc<IsotpInterface>> {
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:207:33
[INFO] [stderr]     |
[INFO] [stderr] 207 |     pub fn uds(&self) -> Option<Rc<UdsInterface>> {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:215:41
[INFO] [stderr]     |
[INFO] [stderr] 215 |     pub fn downloader(&self) -> Option<Box<Downloader>> {
[INFO] [stderr]     |                                            ^^^^^^^^^^ help: use `dyn`: `dyn Downloader`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:228:38
[INFO] [stderr]     |
[INFO] [stderr] 228 |     pub fn flasher(&self) -> Option<Box<Flasher>> {
[INFO] [stderr]     |                                         ^^^^^^^ help: use `dyn`: `dyn Flasher`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:241:41
[INFO] [stderr]     |
[INFO] [stderr] 241 |     pub fn datalogger(&self) -> Option<Box<datalog::Logger>> {
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn datalog::Logger`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]  --> src/authenticator.rs:2:19
[INFO] [stderr]   |
[INFO] [stderr] 2 |     protocols::uds::{self, UdsInterface},
[INFO] [stderr]   |                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/authenticator.rs:12:52
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub fn authenticate(&self, key: &str, interface: &UdsInterface, session_type: u8) -> Result<()> {
[INFO] [stderr]    |                                                       ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> src/rom/mod.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::path::{Path, PathBuf};
[INFO] [stderr]   |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/rom/tune.rs:194:96
[INFO] [stderr]     |
[INFO] [stderr] 194 | fn deserialize_table<O: ByteOrder>(datatype: DataType, data: &[u8], size: usize) -> Result<Box<TableDataTrait>> {
[INFO] [stderr]     |                                                                                                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/rom/tune.rs:219:12
[INFO] [stderr]     |
[INFO] [stderr] 219 |     data: Box<TableDataTrait>,
[INFO] [stderr]     |               ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/datalog.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:26:29
[INFO] [stderr]    |
[INFO] [stderr] 26 |     callbacks: Vec<Box<RefCell<FnMut(&Entry, NumVariant)>>>,
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&Entry, NumVariant)`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:85:16
[INFO] [stderr]    |
[INFO] [stderr] 85 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:91:27
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn new(interface: Rc<UdsInterface>) -> UdsLogger {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/diagnostics.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr] 10 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/diagnostics.rs:29:21
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let second_char = ((self.raw[0] & 0x30) >> 4);
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/diagnostics.rs:37:27
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(interface: Rc<UdsInterface>) -> UdsScanner {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/error.rs:81:13
[INFO] [stderr]    |
[INFO] [stderr] 81 |             _ => write!(f, "unimplemented: {:?}", *self),
[INFO] [stderr]    |             ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]   --> src/authenticator.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 |             for r in (1..=8).rev() {
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/link.rs:132:6
[INFO] [stderr]     |
[INFO] [stderr] 132 |     let mut links = Vec::new();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `index`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 |     index: u8,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `data`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:102:5
[INFO] [stderr]     |
[INFO] [stderr] 102 |     data: [u8; 7],
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `data_length`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:103:5
[INFO] [stderr]     |
[INFO] [stderr] 103 |     data_length: u8,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `get_type`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:184:8
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get_type(&self) -> Option<FrameType> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: 42 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/can/mod.rs:79:20
[INFO] [stderr]    |
[INFO] [stderr] 79 |     interface: &'a CanInterface,
[INFO] [stderr]    |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/isotp/can.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |     can: Rc<CanInterface>,
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/isotp/can.rs:25:24
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn new(can: Rc<CanInterface>, options: Options) -> IsotpCan {
[INFO] [stderr]    |                        ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/uds/isotp.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 |     interface: Rc<IsotpInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/protocols/uds/isotp.rs:14:30
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub fn new(interface: Rc<IsotpInterface>) -> UdsIsotp {
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download/mazda.rs:14:16
[INFO] [stderr]    |
[INFO] [stderr] 14 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download/mazda.rs:20:27
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn new(interface: Rc<UdsInterface>, key: &str, download_size: usize) -> Mazda1Downloader {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/download/mod.rs:9:35
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stderr]   |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mazda.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mazda.rs:21:27
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn new(interface: Rc<UdsInterface>, key: &str) -> Mazda1Flasher {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/flash/mod.rs:13:35
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub callback: Option<Box<RefCell<FnMut(f32)>>>,
[INFO] [stderr]    |                                      ^^^^^^^^^^ help: use `dyn`: `dyn FnMut(f32)`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `IsotpCan`
[INFO] [stderr]  --> src/link.rs:9:33
[INFO] [stderr]   |
[INFO] [stderr] 9 |         isotp::{self, IsotpInterface, IsotpCan},
[INFO] [stderr]   |                                       ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:24:46
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn can(&self, baudrate: usize) -> Option<Rc<CanInterface>>;
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^ help: use `dyn`: `dyn CanInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:27:56
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn isotp(&self, options: isotp::Options) -> Option<Rc<IsotpInterface>>;
[INFO] [stderr]    |                                                           ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/link.rs:77:33
[INFO] [stderr]    |
[INFO] [stderr] 77 |     fn create(&self) -> Result<Box<DataLink>>;
[INFO] [stderr]    |                                    ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:131:40
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub fn discover_datalinks() -> Vec<Box<DataLinkEntry>> {
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^ help: use `dyn`: `dyn DataLinkEntry`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:176:12
[INFO] [stderr]     |
[INFO] [stderr] 176 |     link: Box<DataLink>,
[INFO] [stderr]     |               ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:181:23
[INFO] [stderr]     |
[INFO] [stderr] 181 |     pub fn new(link: Box<DataLink>, platform: Rc<definition::Main>) -> PlatformLink {
[INFO] [stderr]     |                          ^^^^^^^^ help: use `dyn`: `dyn DataLink`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:202:35
[INFO] [stderr]     |
[INFO] [stderr] 202 |     pub fn isotp(&self) -> Option<Rc<IsotpInterface>> {
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^ help: use `dyn`: `dyn IsotpInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:207:33
[INFO] [stderr]     |
[INFO] [stderr] 207 |     pub fn uds(&self) -> Option<Rc<UdsInterface>> {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:215:41
[INFO] [stderr]     |
[INFO] [stderr] 215 |     pub fn downloader(&self) -> Option<Box<Downloader>> {
[INFO] [stderr]     |                                            ^^^^^^^^^^ help: use `dyn`: `dyn Downloader`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:228:38
[INFO] [stderr]     |
[INFO] [stderr] 228 |     pub fn flasher(&self) -> Option<Box<Flasher>> {
[INFO] [stderr]     |                                         ^^^^^^^ help: use `dyn`: `dyn Flasher`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/link.rs:241:41
[INFO] [stderr]     |
[INFO] [stderr] 241 |     pub fn datalogger(&self) -> Option<Box<datalog::Logger>> {
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn datalog::Logger`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]  --> src/authenticator.rs:2:19
[INFO] [stderr]   |
[INFO] [stderr] 2 |     protocols::uds::{self, UdsInterface},
[INFO] [stderr]   |                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/authenticator.rs:12:52
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub fn authenticate(&self, key: &str, interface: &UdsInterface, session_type: u8) -> Result<()> {
[INFO] [stderr]    |                                                       ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> src/rom/mod.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::path::{Path, PathBuf};
[INFO] [stderr]   |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/rom/tune.rs:194:96
[INFO] [stderr]     |
[INFO] [stderr] 194 | fn deserialize_table<O: ByteOrder>(datatype: DataType, data: &[u8], size: usize) -> Result<Box<TableDataTrait>> {
[INFO] [stderr]     |                                                                                                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/rom/tune.rs:219:12
[INFO] [stderr]     |
[INFO] [stderr] 219 |     data: Box<TableDataTrait>,
[INFO] [stderr]     |               ^^^^^^^^^^^^^^ help: use `dyn`: `dyn TableDataTrait`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/datalog.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:26:29
[INFO] [stderr]    |
[INFO] [stderr] 26 |     callbacks: Vec<Box<RefCell<FnMut(&Entry, NumVariant)>>>,
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(&Entry, NumVariant)`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:85:16
[INFO] [stderr]    |
[INFO] [stderr] 85 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/datalog.rs:91:27
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn new(interface: Rc<UdsInterface>) -> UdsLogger {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/diagnostics.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr] 10 |     interface: Rc<UdsInterface>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/diagnostics.rs:29:21
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let second_char = ((self.raw[0] & 0x30) >> 4);
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/diagnostics.rs:37:27
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(interface: Rc<UdsInterface>) -> UdsScanner {
[INFO] [stderr]    |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn UdsInterface`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/error.rs:81:13
[INFO] [stderr]    |
[INFO] [stderr] 81 |             _ => write!(f, "unimplemented: {:?}", *self),
[INFO] [stderr]    |             ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]   --> src/authenticator.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 |             for r in (1..=8).rev() {
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/link.rs:132:6
[INFO] [stderr]     |
[INFO] [stderr] 132 |     let mut links = Vec::new();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `index`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 |     index: u8,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `data`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:102:5
[INFO] [stderr]     |
[INFO] [stderr] 102 |     data: [u8; 7],
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `data_length`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:103:5
[INFO] [stderr]     |
[INFO] [stderr] 103 |     data_length: u8,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `get_type`
[INFO] [stderr]    --> src/protocols/isotp/mod.rs:184:8
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get_type(&self) -> Option<FrameType> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: 42 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/tuneutils-9602479e191e989e
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tuneutils
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> /opt/rustwide/workdir/src/diagnostics.rs:29:21
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let second_char = ((self.raw[0] & 0x30) >> 4);
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "aca26430dc96e3a94b7e802520ef1e35cccadef57e4f91dd02ba10cbfcde3624", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aca26430dc96e3a94b7e802520ef1e35cccadef57e4f91dd02ba10cbfcde3624", kill_on_drop: false }`
[INFO] [stdout] aca26430dc96e3a94b7e802520ef1e35cccadef57e4f91dd02ba10cbfcde3624
