[INFO] cloning repository https://github.com/owenpmckenna/BasicLidarSLAM [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/owenpmckenna/BasicLidarSLAM" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowenpmckenna%2FBasicLidarSLAM", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowenpmckenna%2FBasicLidarSLAM'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 67546aecfa4d2c8cb94fa75a3fa48e4eb7aea9e1 [INFO] testing owenpmckenna/BasicLidarSLAM against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fowenpmckenna%2FBasicLidarSLAM" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/owenpmckenna/BasicLidarSLAM [INFO] finished tweaking git repo https://github.com/owenpmckenna/BasicLidarSLAM [INFO] tweaked toml for git repo https://github.com/owenpmckenna/BasicLidarSLAM written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/owenpmckenna/BasicLidarSLAM on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/owenpmckenna/BasicLidarSLAM already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/ysimonson/roboclaw-rs.git` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded numtoa v0.2.4 [INFO] [stderr] Downloaded mpu6050 v0.1.6 [INFO] [stderr] Downloaded rplidar_drv_rs v0.7.0 [INFO] [stderr] Downloaded axum-extra v0.10.3 [INFO] [stderr] Downloaded dwrote v0.11.4 [INFO] [stderr] Downloaded rppal v0.22.1 [INFO] [stderr] Downloaded serial2 v0.2.33 [INFO] [stderr] Downloaded termion v4.0.5 [INFO] [stderr] Downloaded nalgebra v0.31.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7d19741c32bd3facda8d7812eb410a127280638a176a8e4c3cc8634840b76048 [INFO] running `Command { std: "docker" "start" "-a" "7d19741c32bd3facda8d7812eb410a127280638a176a8e4c3cc8634840b76048", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d19741c32bd3facda8d7812eb410a127280638a176a8e4c3cc8634840b76048", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d19741c32bd3facda8d7812eb410a127280638a176a8e4c3cc8634840b76048", kill_on_drop: false }` [INFO] [stdout] 7d19741c32bd3facda8d7812eb410a127280638a176a8e4c3cc8634840b76048 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7a377c5fefbe880098c277e7b1acec045a15d5991d8fa9155317a92dd8015d3d [INFO] running `Command { std: "docker" "start" "-a" "7a377c5fefbe880098c277e7b1acec045a15d5991d8fa9155317a92dd8015d3d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling freetype-sys v0.20.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling libloading v0.8.8 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling data-encoding v2.9.0 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling build_const v0.2.2 [INFO] [stderr] Compiling dlib v0.5.2 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling crc v1.8.1 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling font-kit v0.14.3 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling pathfinder_simd v0.5.5 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling weezl v0.1.10 [INFO] [stderr] Compiling nb v1.1.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling bytemuck v1.23.2 [INFO] [stderr] Compiling rustc-demangle v0.1.26 [INFO] [stderr] Compiling crc16 v0.4.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling gif v0.12.0 [INFO] [stderr] Compiling simba v0.7.3 [INFO] [stderr] Compiling nb v0.1.3 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling pathfinder_geometry v0.5.1 [INFO] [stderr] Compiling axum-core v0.5.5 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling headers-core v0.3.0 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling float-ord v0.3.2 [INFO] [stderr] Compiling embedded-hal v0.2.7 [INFO] [stderr] Compiling headers v0.4.1 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling mio v1.1.0 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling image v0.24.9 [INFO] [stderr] Compiling libudev v0.3.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling nix v0.26.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling numtoa v0.2.4 [INFO] [stderr] Compiling ttf-parser v0.20.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling termion v4.0.5 [INFO] [stderr] Compiling serial2 v0.2.33 [INFO] [stderr] Compiling rppal v0.22.1 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling plotters-bitmap v0.3.7 [INFO] [stderr] Compiling failure v0.1.8 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rplidar_drv_rs v0.7.0 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling nalgebra v0.31.4 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling unescaper v0.1.6 [INFO] [stderr] Compiling serialport v4.8.1 [INFO] [stderr] Compiling roboclaw v0.1.0 (https://github.com/ysimonson/roboclaw-rs.git?branch=serialport#094159b6) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling axum v0.8.6 [INFO] [stderr] Compiling mpu6050 v0.1.6 [INFO] [stderr] Compiling axum-extra v0.10.3 [INFO] [stderr] Compiling BasicLidarSLAM v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Utf8Bytes` [INFO] [stdout] --> src/Webserver.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use axum::extract::ws::{Message, Utf8Bytes, WebSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error` and `Form` [INFO] [stdout] --> src/Webserver.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use axum::{Error, Form, Json, Router}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get` [INFO] [stdout] --> src/Webserver.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | use axum::routing::{any, get, post}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Sender` and `unbounded` [INFO] [stdout] --> src/Webserver.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use crossbeam_channel::{unbounded, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/LidarLocalizer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write`, `stdin`, and `stdout` [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::{stdin, stdout, Write}; [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnixListener` and `UnixStream` [INFO] [stdout] --> src/main.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | use std::os::unix::net::{UnixListener, UnixStream}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::exit` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::process::exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Thread` and `sleep` [INFO] [stdout] --> src/main.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use std::thread::{sleep, Thread}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IntoDrawingArea` [INFO] [stdout] --> src/main.rs:20:38 [INFO] [stdout] | [INFO] [stdout] 20 | use plotters::drawing::{DrawingArea, IntoDrawingArea}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `roboclaw::Roboclaw` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use roboclaw::Roboclaw; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Channel`, `RplidarHostProtocol`, `RposError`, and `ScanOptions` [INFO] [stdout] --> src/main.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | use rplidar_drv::{Channel, RplidarHostProtocol, RposError, ScanOptions}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rppal::gpio::Gpio` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use rppal::gpio::Gpio; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataBits`, `FlowControl`, `Parity`, and `StopBits` [INFO] [stdout] --> src/main.rs:26:18 [INFO] [stdout] | [INFO] [stdout] 26 | use serialport::{DataBits, FlowControl, Parity, StopBits}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `termion::event::Key` [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use termion::event::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `termion::input::TermRead` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use termion::input::TermRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IntoRawMode` and `RawTerminal` [INFO] [stdout] --> src/main.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | use termion::raw::{IntoRawMode, RawTerminal}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Line` [INFO] [stdout] --> src/main.rs:32:52 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::LidarLocalizer::{InstantLidarLocalizer, Line}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:81:45 [INFO] [stdout] | [INFO] [stdout] 81 | async fn handle_socket(state: AppState, mut ws: WebSocket) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Drivetrain.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let mut rc = Roboclaw::new(serial_port); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Drivetrain.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut rc_2 = Roboclaw::new(serial_port_2); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `it2` [INFO] [stdout] --> src/LidarLocalizer.rs:108:27 [INFO] [stdout] | [INFO] [stdout] 108 | Some((i2, it2)) => { Some((i, i2)) } [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_it2` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `present` is never used [INFO] [stdout] --> src/main.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn present(root: &DrawingArea, data: &[(f32, f32); Lidar::DATA_LEN]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `polar_to_cartesian_radians` is never used [INFO] [stdout] --> src/Lidar.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn polar_to_cartesian_radians(radius: f32, theta_radians: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `data` and `data_index` are never read [INFO] [stdout] --> src/Lidar.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LidarUnit { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 15 | lidar_dev: Option>, [INFO] [stdout] 16 | data: [(f32, f32); DATA_LEN], [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | data_index: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_data`, `grab_single_point`, `read_single_point`, and `read_points` are never used [INFO] [stdout] --> src/Lidar.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 21 | impl LidarUnit { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 22 | pub(crate) fn get_data(&self) -> &[(f32, f32); DATA_LEN] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn grab_single_point(&mut self) -> Result<(f32, f32), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub(crate) fn read_single_point(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub(crate) fn read_points(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `angle_comp_deg` is never used [INFO] [stdout] --> src/LidarLocalizer.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn angle_comp_deg(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `pos`, `heading`, `vel`, and `ang_vel` are never read [INFO] [stdout] --> src/LidarLocalizer.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct LidarLocalizer { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 18 | pub pos: (f32, f32), [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | pub heading: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub vel: (f32, f32), [INFO] [stdout] | ^^^ [INFO] [stdout] 21 | pub ang_vel: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `avg_point_dist_from_center` is never used [INFO] [stdout] --> src/LidarLocalizer.rs:138:8 [INFO] [stdout] | [INFO] [stdout] 117 | impl InstantLine { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 138 | fn avg_point_dist_from_center(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `altered_point_list` is never read [INFO] [stdout] --> src/LidarLocalizer.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 206 | pub struct InstantLidarLocalizer { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 207 | altered_point_list: Vec<(f32, f32)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Lidar` should have a snake case name [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | mod Lidar; [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `lidar` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Drivetrain` should have a snake case name [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | mod Drivetrain; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `drivetrain` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Webserver` should have a snake case name [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | mod Webserver; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `webserver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `LidarLocalizer` should have a snake case name [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | mod LidarLocalizer; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lidar_localizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/Lidar.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | dev.grab_scan_point();//Ignore result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 43 | let _ = dev.grab_scan_point();//Ignore result [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "7a377c5fefbe880098c277e7b1acec045a15d5991d8fa9155317a92dd8015d3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7a377c5fefbe880098c277e7b1acec045a15d5991d8fa9155317a92dd8015d3d", kill_on_drop: false }` [INFO] [stdout] 7a377c5fefbe880098c277e7b1acec045a15d5991d8fa9155317a92dd8015d3d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71898c8cf4be3e53847aaa67d2912f207a7415b2bb3e21a98ea04fa898fa689d [INFO] running `Command { std: "docker" "start" "-a" "71898c8cf4be3e53847aaa67d2912f207a7415b2bb3e21a98ea04fa898fa689d", kill_on_drop: false }` [INFO] [stderr] Compiling BasicLidarSLAM v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Utf8Bytes` [INFO] [stdout] --> src/Webserver.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use axum::extract::ws::{Message, Utf8Bytes, WebSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error` and `Form` [INFO] [stdout] --> src/Webserver.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use axum::{Error, Form, Json, Router}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get` [INFO] [stdout] --> src/Webserver.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | use axum::routing::{any, get, post}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Sender` and `unbounded` [INFO] [stdout] --> src/Webserver.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use crossbeam_channel::{unbounded, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/LidarLocalizer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write`, `stdin`, and `stdout` [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::{stdin, stdout, Write}; [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnixListener` and `UnixStream` [INFO] [stdout] --> src/main.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | use std::os::unix::net::{UnixListener, UnixStream}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::exit` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::process::exit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Thread` and `sleep` [INFO] [stdout] --> src/main.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use std::thread::{sleep, Thread}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IntoDrawingArea` [INFO] [stdout] --> src/main.rs:20:38 [INFO] [stdout] | [INFO] [stdout] 20 | use plotters::drawing::{DrawingArea, IntoDrawingArea}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `roboclaw::Roboclaw` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use roboclaw::Roboclaw; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Channel`, `RplidarHostProtocol`, `RposError`, and `ScanOptions` [INFO] [stdout] --> src/main.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 24 | use rplidar_drv::{Channel, RplidarHostProtocol, RposError, ScanOptions}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rppal::gpio::Gpio` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use rppal::gpio::Gpio; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataBits`, `FlowControl`, `Parity`, and `StopBits` [INFO] [stdout] --> src/main.rs:26:18 [INFO] [stdout] | [INFO] [stdout] 26 | use serialport::{DataBits, FlowControl, Parity, StopBits}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `termion::event::Key` [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use termion::event::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `termion::input::TermRead` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use termion::input::TermRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IntoRawMode` and `RawTerminal` [INFO] [stdout] --> src/main.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | use termion::raw::{IntoRawMode, RawTerminal}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Line` [INFO] [stdout] --> src/main.rs:32:52 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::LidarLocalizer::{InstantLidarLocalizer, Line}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:81:45 [INFO] [stdout] | [INFO] [stdout] 81 | async fn handle_socket(state: AppState, mut ws: WebSocket) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Webserver.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Drivetrain.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let mut rc = Roboclaw::new(serial_port); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/Drivetrain.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut rc_2 = Roboclaw::new(serial_port_2); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `it2` [INFO] [stdout] --> src/LidarLocalizer.rs:108:27 [INFO] [stdout] | [INFO] [stdout] 108 | Some((i2, it2)) => { Some((i, i2)) } [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_it2` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `present` is never used [INFO] [stdout] --> src/main.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn present(root: &DrawingArea, data: &[(f32, f32); Lidar::DATA_LEN]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `polar_to_cartesian_radians` is never used [INFO] [stdout] --> src/Lidar.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn polar_to_cartesian_radians(radius: f32, theta_radians: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `data` and `data_index` are never read [INFO] [stdout] --> src/Lidar.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LidarUnit { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 15 | lidar_dev: Option>, [INFO] [stdout] 16 | data: [(f32, f32); DATA_LEN], [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | data_index: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_data`, `grab_single_point`, `read_single_point`, and `read_points` are never used [INFO] [stdout] --> src/Lidar.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 21 | impl LidarUnit { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 22 | pub(crate) fn get_data(&self) -> &[(f32, f32); DATA_LEN] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn grab_single_point(&mut self) -> Result<(f32, f32), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub(crate) fn read_single_point(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub(crate) fn read_points(&mut self) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `angle_comp_deg` is never used [INFO] [stdout] --> src/LidarLocalizer.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn angle_comp_deg(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `pos`, `heading`, `vel`, and `ang_vel` are never read [INFO] [stdout] --> src/LidarLocalizer.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct LidarLocalizer { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 18 | pub pos: (f32, f32), [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | pub heading: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub vel: (f32, f32), [INFO] [stdout] | ^^^ [INFO] [stdout] 21 | pub ang_vel: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `avg_point_dist_from_center` is never used [INFO] [stdout] --> src/LidarLocalizer.rs:138:8 [INFO] [stdout] | [INFO] [stdout] 117 | impl InstantLine { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 138 | fn avg_point_dist_from_center(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `altered_point_list` is never read [INFO] [stdout] --> src/LidarLocalizer.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 206 | pub struct InstantLidarLocalizer { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 207 | altered_point_list: Vec<(f32, f32)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Lidar` should have a snake case name [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | mod Lidar; [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `lidar` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Drivetrain` should have a snake case name [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | mod Drivetrain; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `drivetrain` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Webserver` should have a snake case name [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | mod Webserver; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `webserver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `LidarLocalizer` should have a snake case name [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | mod LidarLocalizer; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lidar_localizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/Lidar.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | dev.grab_scan_point();//Ignore result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 43 | let _ = dev.grab_scan_point();//Ignore result [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.15s [INFO] running `Command { std: "docker" "inspect" "71898c8cf4be3e53847aaa67d2912f207a7415b2bb3e21a98ea04fa898fa689d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71898c8cf4be3e53847aaa67d2912f207a7415b2bb3e21a98ea04fa898fa689d", kill_on_drop: false }` [INFO] [stdout] 71898c8cf4be3e53847aaa67d2912f207a7415b2bb3e21a98ea04fa898fa689d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f125ba472138da5dd087cf18a324b09193046df48ba94cf58d0aebf030e27425 [INFO] running `Command { std: "docker" "start" "-a" "f125ba472138da5dd087cf18a324b09193046df48ba94cf58d0aebf030e27425", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Utf8Bytes` [INFO] [stderr] --> src/Webserver.rs:4:34 [INFO] [stderr] | [INFO] [stderr] 4 | use axum::extract::ws::{Message, Utf8Bytes, WebSocket}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Error` and `Form` [INFO] [stderr] --> src/Webserver.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | use axum::{Error, Form, Json, Router}; [INFO] [stderr] | ^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `get` [INFO] [stderr] --> src/Webserver.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | use axum::routing::{any, get, post}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Sender` and `unbounded` [INFO] [stderr] --> src/Webserver.rs:11:25 [INFO] [stderr] | [INFO] [stderr] 11 | use crossbeam_channel::{unbounded, Receiver, Sender}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::min` [INFO] [stderr] --> src/LidarLocalizer.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::min; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::max` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::cmp::max; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Write`, `stdin`, and `stdout` [INFO] [stderr] --> src/main.rs:10:15 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::{stdin, stdout, Write}; [INFO] [stderr] | ^^^^^ ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `UnixListener` and `UnixStream` [INFO] [stderr] --> src/main.rs:11:26 [INFO] [stderr] | [INFO] [stderr] 11 | use std::os::unix::net::{UnixListener, UnixStream}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::exit` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::process::exit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Thread` and `sleep` [INFO] [stderr] --> src/main.rs:14:19 [INFO] [stderr] | [INFO] [stderr] 14 | use std::thread::{sleep, Thread}; [INFO] [stderr] | ^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IntoDrawingArea` [INFO] [stderr] --> src/main.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | use plotters::drawing::{DrawingArea, IntoDrawingArea}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `roboclaw::Roboclaw` [INFO] [stderr] --> src/main.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | use roboclaw::Roboclaw; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Channel`, `RplidarHostProtocol`, `RposError`, and `ScanOptions` [INFO] [stderr] --> src/main.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | use rplidar_drv::{Channel, RplidarHostProtocol, RposError, ScanOptions}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rppal::gpio::Gpio` [INFO] [stderr] --> src/main.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use rppal::gpio::Gpio; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DataBits`, `FlowControl`, `Parity`, and `StopBits` [INFO] [stderr] --> src/main.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | use serialport::{DataBits, FlowControl, Parity, StopBits}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `termion::event::Key` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use termion::event::Key; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `termion::input::TermRead` [INFO] [stderr] --> src/main.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use termion::input::TermRead; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IntoRawMode` and `RawTerminal` [INFO] [stderr] --> src/main.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | use termion::raw::{IntoRawMode, RawTerminal}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Line` [INFO] [stderr] --> src/main.rs:32:52 [INFO] [stderr] | [INFO] [stderr] 32 | use crate::LidarLocalizer::{InstantLidarLocalizer, Line}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/Webserver.rs:81:45 [INFO] [stderr] | [INFO] [stderr] 81 | async fn handle_socket(state: AppState, mut ws: WebSocket) { [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/Webserver.rs:82:14 [INFO] [stderr] | [INFO] [stderr] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/Webserver.rs:82:26 [INFO] [stderr] | [INFO] [stderr] 82 | let (mut sender, mut reciever) = ws.split(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/Drivetrain.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let mut rc = Roboclaw::new(serial_port); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/Drivetrain.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | let mut rc_2 = Roboclaw::new(serial_port_2); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `it2` [INFO] [stderr] --> src/LidarLocalizer.rs:108:27 [INFO] [stderr] | [INFO] [stderr] 108 | Some((i2, it2)) => { Some((i, i2)) } [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_it2` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `present` is never used [INFO] [stderr] --> src/main.rs:150:4 [INFO] [stderr] | [INFO] [stderr] 150 | fn present(root: &DrawingArea, data: &[(f32, f32); Lidar::DATA_LEN]) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `polar_to_cartesian_radians` is never used [INFO] [stderr] --> src/Lidar.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn polar_to_cartesian_radians(radius: f32, theta_radians: f32) -> (f32, f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `data` and `data_index` are never read [INFO] [stderr] --> src/Lidar.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct LidarUnit { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] 15 | lidar_dev: Option>, [INFO] [stderr] 16 | data: [(f32, f32); DATA_LEN], [INFO] [stderr] | ^^^^ [INFO] [stderr] 17 | data_index: usize, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_data`, `grab_single_point`, `read_single_point`, and `read_points` are never used [INFO] [stderr] --> src/Lidar.rs:22:19 [INFO] [stderr] | [INFO] [stderr] 21 | impl LidarUnit { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] 22 | pub(crate) fn get_data(&self) -> &[(f32, f32); DATA_LEN] { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 71 | fn grab_single_point(&mut self) -> Result<(f32, f32), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub(crate) fn read_single_point(&mut self) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub(crate) fn read_points(&mut self) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `angle_comp_deg` is never used [INFO] [stderr] --> src/LidarLocalizer.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn angle_comp_deg(a: f32, b: f32) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `pos`, `heading`, `vel`, and `ang_vel` are never read [INFO] [stderr] --> src/LidarLocalizer.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct LidarLocalizer { [INFO] [stderr] | -------------- fields in this struct [INFO] [stderr] 18 | pub pos: (f32, f32), [INFO] [stderr] | ^^^ [INFO] [stderr] 19 | pub heading: f32, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 20 | pub vel: (f32, f32), [INFO] [stderr] | ^^^ [INFO] [stderr] 21 | pub ang_vel: f32, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `avg_point_dist_from_center` is never used [INFO] [stderr] --> src/LidarLocalizer.rs:138:8 [INFO] [stderr] | [INFO] [stderr] 117 | impl InstantLine { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 138 | fn avg_point_dist_from_center(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `altered_point_list` is never read [INFO] [stderr] --> src/LidarLocalizer.rs:207:5 [INFO] [stderr] | [INFO] [stderr] 206 | pub struct InstantLidarLocalizer { [INFO] [stderr] | --------------------- field in this struct [INFO] [stderr] 207 | altered_point_list: Vec<(f32, f32)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: module `Lidar` should have a snake case name [INFO] [stderr] --> src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | mod Lidar; [INFO] [stderr] | ^^^^^ help: convert the identifier to snake case: `lidar` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: module `Drivetrain` should have a snake case name [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | mod Drivetrain; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `drivetrain` [INFO] [stderr] [INFO] [stderr] warning: module `Webserver` should have a snake case name [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | mod Webserver; [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `webserver` [INFO] [stderr] [INFO] [stderr] warning: module `LidarLocalizer` should have a snake case name [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | mod LidarLocalizer; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lidar_localizer` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/Lidar.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | dev.grab_scan_point();//Ignore result [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 43 | let _ = dev.grab_scan_point();//Ignore result [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `BasicLidarSLAM` (bin "BasicLidarSLAM" test) generated 40 warnings (run `cargo fix --bin "BasicLidarSLAM" -p BasicLidarSLAM --tests` to apply 27 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/BasicLidarSLAM-5a4d44960a2d7094) [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; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "f125ba472138da5dd087cf18a324b09193046df48ba94cf58d0aebf030e27425", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f125ba472138da5dd087cf18a324b09193046df48ba94cf58d0aebf030e27425", kill_on_drop: false }` [INFO] [stdout] f125ba472138da5dd087cf18a324b09193046df48ba94cf58d0aebf030e27425