[INFO] fetching crate tuneutils 0.1.1...
[INFO] testing tuneutils-0.1.1 against beta-2020-10-09 for beta-1.48-1
[INFO] extracting crate tuneutils 0.1.1 into /workspace/builds/worker-5/source
[INFO] validating manifest of crates.io crate tuneutils 0.1.1 on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "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-5/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bv v0.10.0
[INFO] [stderr]   Downloaded eval v0.4.3
[INFO] [stderr]   Downloaded j2534 v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2bf76ea1433d99833f3798631264cc6da73a9ba733e00f3fdc19be256975612d
[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" "2bf76ea1433d99833f3798631264cc6da73a9ba733e00f3fdc19be256975612d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2bf76ea1433d99833f3798631264cc6da73a9ba733e00f3fdc19be256975612d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2bf76ea1433d99833f3798631264cc6da73a9ba733e00f3fdc19be256975612d", kill_on_drop: false }`
[INFO] [stdout] 2bf76ea1433d99833f3798631264cc6da73a9ba733e00f3fdc19be256975612d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 38e5d5094a60963a2bd87e0aad47a8b4d1fde80217aebcc41f501e2e67764eb7
[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" "38e5d5094a60963a2bd87e0aad47a8b4d1fde80217aebcc41f501e2e67764eb7", kill_on_drop: false }`
[INFO] [stderr]    Compiling feature-probe v0.1.1
[INFO] [stderr]    Compiling serde_yaml v0.8.13
[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.85s
[INFO] running `Command { std: "docker" "inspect" "38e5d5094a60963a2bd87e0aad47a8b4d1fde80217aebcc41f501e2e67764eb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38e5d5094a60963a2bd87e0aad47a8b4d1fde80217aebcc41f501e2e67764eb7", kill_on_drop: false }`
[INFO] [stdout] 38e5d5094a60963a2bd87e0aad47a8b4d1fde80217aebcc41f501e2e67764eb7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] da5b4ea0ce9c0c11bf686283c45668e98e8bd57631b3bd4eb0a7dc4f38e88c04
[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" "da5b4ea0ce9c0c11bf686283c45668e98e8bd57631b3bd4eb0a7dc4f38e88c04", 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 2.75s
[INFO] running `Command { std: "docker" "inspect" "da5b4ea0ce9c0c11bf686283c45668e98e8bd57631b3bd4eb0a7dc4f38e88c04", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da5b4ea0ce9c0c11bf686283c45668e98e8bd57631b3bd4eb0a7dc4f38e88c04", kill_on_drop: false }`
[INFO] [stdout] da5b4ea0ce9c0c11bf686283c45668e98e8bd57631b3bd4eb0a7dc4f38e88c04
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 86f2d3d082f7131af75b18bf4076c5ef3f27470db07398d61c1459c6e37f10ba
[INFO] running `Command { std: "docker" "start" "-a" "86f2d3d082f7131af75b18bf4076c5ef3f27470db07398d61c1459c6e37f10ba", 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/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/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/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/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/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/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/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/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/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.14s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/tuneutils-94ce6e5feabbcbb4
[INFO] [stderr]    Doc-tests tuneutils
[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] 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" "86f2d3d082f7131af75b18bf4076c5ef3f27470db07398d61c1459c6e37f10ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86f2d3d082f7131af75b18bf4076c5ef3f27470db07398d61c1459c6e37f10ba", kill_on_drop: false }`
[INFO] [stdout] 86f2d3d082f7131af75b18bf4076c5ef3f27470db07398d61c1459c6e37f10ba
