[INFO] updating cached repository maxbeutel/rust-hough-transform [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/maxbeutel/rust-hough-transform [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/maxbeutel/rust-hough-transform" "work/ex/clippy-test-run/sources/stable/gh/maxbeutel/rust-hough-transform"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/maxbeutel/rust-hough-transform'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/maxbeutel/rust-hough-transform" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/maxbeutel/rust-hough-transform"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/maxbeutel/rust-hough-transform'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e28c0f7dbd810d40d0dbc1085b1b65ce70e2a084 [INFO] sha for GitHub repo maxbeutel/rust-hough-transform: e28c0f7dbd810d40d0dbc1085b1b65ce70e2a084 [INFO] validating manifest of maxbeutel/rust-hough-transform on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of maxbeutel/rust-hough-transform on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing maxbeutel/rust-hough-transform [INFO] finished frobbing maxbeutel/rust-hough-transform [INFO] frobbed toml for maxbeutel/rust-hough-transform written to work/ex/clippy-test-run/sources/stable/gh/maxbeutel/rust-hough-transform/Cargo.toml [INFO] started frobbing maxbeutel/rust-hough-transform [INFO] finished frobbing maxbeutel/rust-hough-transform [INFO] frobbed toml for maxbeutel/rust-hough-transform written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/maxbeutel/rust-hough-transform/Cargo.toml [INFO] crate maxbeutel/rust-hough-transform has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting maxbeutel/rust-hough-transform against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/maxbeutel/rust-hough-transform:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] af0e3430605b14bf569d6e6f99332090f6d3353f48cd48be9c38e15ff3f39be2 [INFO] running `"docker" "start" "-a" "af0e3430605b14bf569d6e6f99332090f6d3353f48cd48be9c38e15ff3f39be2"` [INFO] [stderr] Checking rustc-serialize v0.3.20 [INFO] [stderr] Compiling typenum v1.6.0 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Checking deque v0.3.1 [INFO] [stderr] Checking png v0.6.2 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking conv v0.3.3 [INFO] [stderr] Checking rayon v0.5.0 [INFO] [stderr] Checking quickcheck v0.2.27 [INFO] [stderr] Checking jpeg-decoder v0.1.8 [INFO] [stderr] Checking generic-array v0.2.1 [INFO] [stderr] Checking num-bigint v0.1.35 [INFO] [stderr] Checking num-complex v0.1.35 [INFO] [stderr] Checking alga v0.5.1 [INFO] [stderr] Checking num-rational v0.1.35 [INFO] [stderr] Checking num v0.1.36 [INFO] [stderr] Checking enum_primitive v0.1.0 [INFO] [stderr] Checking nalgebra v0.5.1 [INFO] [stderr] Checking image v0.12.3 [INFO] [stderr] Checking nalgebra v0.11.1 [INFO] [stderr] Checking imageproc v0.7.0 [INFO] [stderr] Checking hough-transform v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | fn dump_line_visualization(mut img: &mut image::DynamicImage, [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | deg as f64 * (pi / axis_size as f64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(deg)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | deg as f64 * (pi / axis_size as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(axis_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:6 [INFO] [stderr] | [INFO] [stderr] 26 | ((img_width as f64).hypot(img_height as f64)).ceil() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:31 [INFO] [stderr] | [INFO] [stderr] 26 | ((img_width as f64).hypot(img_height as f64)).ceil() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:7 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:29 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / matrix.data [INFO] [stderr] 38 | | .iter() [INFO] [stderr] 39 | | .max() [INFO] [stderr] 40 | | .map(|m| *m) [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 37 | matrix.data [INFO] [stderr] 38 | .iter() [INFO] [stderr] 39 | .max().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:55:30 [INFO] [stderr] | [INFO] [stderr] 55 | let n = na::min(((accumulator[(x as usize, y as usize)] as f64) * 255.0 / [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(accumulator[(x as usize, y as usize)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | (max_accumulator_value as f64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(max_accumulator_value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | let ref mut fout = File::create(houghspace_img_path).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^---------------------------------------------- help: try: `let fout = &mut File::create(houghspace_img_path).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | let theta = (theta as f64 / theta_axis_scale_factor as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(theta)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:140:33 [INFO] [stderr] | [INFO] [stderr] 140 | let theta = (theta as f64 / theta_axis_scale_factor as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(theta_axis_scale_factor)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | if theta == 0.0 || theta == 180.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(theta - 180.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | if theta == 0.0 || theta == 180.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:149:16 [INFO] [stderr] | [INFO] [stderr] 149 | p1_y = img_height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | } else if theta == 90.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(theta - 90.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | } else if theta == 90.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:157:16 [INFO] [stderr] | [INFO] [stderr] 157 | p2_x = img_width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | p2_x = img_width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:182:21 [INFO] [stderr] | [INFO] [stderr] 182 | p2_y = (img_width as f64 - p1_x.abs()) * deg2rad(alpha as u32, theta_axis_size).sin() / [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | p2_y = (img_width as f64 + p1_x.abs()) * deg2rad(alpha as u32, theta_axis_size).sin() / [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:195:26 [INFO] [stderr] | [INFO] [stderr] 195 | let rho_axis_half = (rho_axis_size as f64 / 2.0).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(rho_axis_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:200:19 [INFO] [stderr] | [INFO] [stderr] 200 | fn is_edge(pixel: &image::Rgba) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `image::Rgba` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:209:38 [INFO] [stderr] | [INFO] [stderr] 209 | fn invert_y(img_height: u32, coords: &(u32, u32)) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:217:60 [INFO] [stderr] | [INFO] [stderr] 217 | fn calculate_rho(theta: u32, theta_axis_size: u32, coords: &(u32, u32)) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:222:5 [INFO] [stderr] | [INFO] [stderr] 222 | (x as f64) * cos + (y as f64) * sin [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:222:24 [INFO] [stderr] | [INFO] [stderr] 222 | (x as f64) * cos + (y as f64) * sin [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/main.rs:260:9 [INFO] [stderr] | [INFO] [stderr] 260 | / writeln!(io::stderr(), [INFO] [stderr] 261 | | "Usage: hough-image input_path houghspace_img_path line_visualization_img_path \ [INFO] [stderr] 262 | | theta_axis_scale_factor rho_axis_scale_factor houghspace_filter_threshold") [INFO] [stderr] 263 | | .unwrap(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:304:18 [INFO] [stderr] | [INFO] [stderr] 304 | let xdelta = (x1src as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x1src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:304:35 [INFO] [stderr] | [INFO] [stderr] 304 | let xdelta = (x1src as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:305:18 [INFO] [stderr] | [INFO] [stderr] 305 | let ydelta = (y1src as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y1src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:305:35 [INFO] [stderr] | [INFO] [stderr] 305 | let ydelta = (y1src as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:315:19 [INFO] [stderr] | [INFO] [stderr] 315 | q = -((edge_left as f64) - (x0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_left)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:315:40 [INFO] [stderr] | [INFO] [stderr] 315 | q = -((edge_left as f64) - (x0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:319:17 [INFO] [stderr] | [INFO] [stderr] 319 | q = (edge_right as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:319:39 [INFO] [stderr] | [INFO] [stderr] 319 | q = (edge_right as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:323:19 [INFO] [stderr] | [INFO] [stderr] 323 | q = -((edge_bottom as f64) - (y0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:323:42 [INFO] [stderr] | [INFO] [stderr] 323 | q = -((edge_bottom as f64) - (y0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:327:17 [INFO] [stderr] | [INFO] [stderr] 327 | q = (edge_top as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_top)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:327:37 [INFO] [stderr] | [INFO] [stderr] 327 | q = (edge_top as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:355:18 [INFO] [stderr] | [INFO] [stderr] 355 | let x0clip = (x0src as f64) + (t0 as f64) * (xdelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:356:18 [INFO] [stderr] | [INFO] [stderr] 356 | let y0clip = (y0src as f64) + (t0 as f64) * (ydelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:357:18 [INFO] [stderr] | [INFO] [stderr] 357 | let x1clip = (x0src as f64) + (t1 as f64) * (xdelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:358:18 [INFO] [stderr] | [INFO] [stderr] 358 | let y1clip = (y0src as f64) + (t1 as f64) * (ydelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hough-transform`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | fn dump_line_visualization(mut img: &mut image::DynamicImage, [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | deg as f64 * (pi / axis_size as f64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(deg)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | deg as f64 * (pi / axis_size as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(axis_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:6 [INFO] [stderr] | [INFO] [stderr] 26 | ((img_width as f64).hypot(img_height as f64)).ceil() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:31 [INFO] [stderr] | [INFO] [stderr] 26 | ((img_width as f64).hypot(img_height as f64)).ceil() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:7 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:31:29 [INFO] [stderr] | [INFO] [stderr] 31 | ((r as f64 + g as f64 + b as f64) / 3.0).round() as u8 [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / matrix.data [INFO] [stderr] 38 | | .iter() [INFO] [stderr] 39 | | .max() [INFO] [stderr] 40 | | .map(|m| *m) [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 37 | matrix.data [INFO] [stderr] 38 | .iter() [INFO] [stderr] 39 | .max().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:55:30 [INFO] [stderr] | [INFO] [stderr] 55 | let n = na::min(((accumulator[(x as usize, y as usize)] as f64) * 255.0 / [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(accumulator[(x as usize, y as usize)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | (max_accumulator_value as f64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(max_accumulator_value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | let ref mut fout = File::create(houghspace_img_path).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^---------------------------------------------- help: try: `let fout = &mut File::create(houghspace_img_path).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | let theta = (theta as f64 / theta_axis_scale_factor as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(theta)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:140:33 [INFO] [stderr] | [INFO] [stderr] 140 | let theta = (theta as f64 / theta_axis_scale_factor as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(theta_axis_scale_factor)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | if theta == 0.0 || theta == 180.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(theta - 180.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | if theta == 0.0 || theta == 180.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:149:16 [INFO] [stderr] | [INFO] [stderr] 149 | p1_y = img_height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(img_height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | } else if theta == 90.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(theta - 90.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | } else if theta == 90.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:157:16 [INFO] [stderr] | [INFO] [stderr] 157 | p2_x = img_width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | p2_x = img_width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:182:21 [INFO] [stderr] | [INFO] [stderr] 182 | p2_y = (img_width as f64 - p1_x.abs()) * deg2rad(alpha as u32, theta_axis_size).sin() / [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | p2_y = (img_width as f64 + p1_x.abs()) * deg2rad(alpha as u32, theta_axis_size).sin() / [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(img_width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:195:26 [INFO] [stderr] | [INFO] [stderr] 195 | let rho_axis_half = (rho_axis_size as f64 / 2.0).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(rho_axis_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:200:19 [INFO] [stderr] | [INFO] [stderr] 200 | fn is_edge(pixel: &image::Rgba) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `image::Rgba` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:209:38 [INFO] [stderr] | [INFO] [stderr] 209 | fn invert_y(img_height: u32, coords: &(u32, u32)) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:217:60 [INFO] [stderr] | [INFO] [stderr] 217 | fn calculate_rho(theta: u32, theta_axis_size: u32, coords: &(u32, u32)) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:222:5 [INFO] [stderr] | [INFO] [stderr] 222 | (x as f64) * cos + (y as f64) * sin [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:222:24 [INFO] [stderr] | [INFO] [stderr] 222 | (x as f64) * cos + (y as f64) * sin [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/main.rs:260:9 [INFO] [stderr] | [INFO] [stderr] 260 | / writeln!(io::stderr(), [INFO] [stderr] 261 | | "Usage: hough-image input_path houghspace_img_path line_visualization_img_path \ [INFO] [stderr] 262 | | theta_axis_scale_factor rho_axis_scale_factor houghspace_filter_threshold") [INFO] [stderr] 263 | | .unwrap(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:304:18 [INFO] [stderr] | [INFO] [stderr] 304 | let xdelta = (x1src as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x1src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:304:35 [INFO] [stderr] | [INFO] [stderr] 304 | let xdelta = (x1src as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:305:18 [INFO] [stderr] | [INFO] [stderr] 305 | let ydelta = (y1src as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y1src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:305:35 [INFO] [stderr] | [INFO] [stderr] 305 | let ydelta = (y1src as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:315:19 [INFO] [stderr] | [INFO] [stderr] 315 | q = -((edge_left as f64) - (x0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_left)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:315:40 [INFO] [stderr] | [INFO] [stderr] 315 | q = -((edge_left as f64) - (x0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:319:17 [INFO] [stderr] | [INFO] [stderr] 319 | q = (edge_right as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:319:39 [INFO] [stderr] | [INFO] [stderr] 319 | q = (edge_right as f64) - (x0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:323:19 [INFO] [stderr] | [INFO] [stderr] 323 | q = -((edge_bottom as f64) - (y0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:323:42 [INFO] [stderr] | [INFO] [stderr] 323 | q = -((edge_bottom as f64) - (y0src as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:327:17 [INFO] [stderr] | [INFO] [stderr] 327 | q = (edge_top as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(edge_top)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:327:37 [INFO] [stderr] | [INFO] [stderr] 327 | q = (edge_top as f64) - (y0src as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:355:18 [INFO] [stderr] | [INFO] [stderr] 355 | let x0clip = (x0src as f64) + (t0 as f64) * (xdelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:356:18 [INFO] [stderr] | [INFO] [stderr] 356 | let y0clip = (y0src as f64) + (t0 as f64) * (ydelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:357:18 [INFO] [stderr] | [INFO] [stderr] 357 | let x1clip = (x0src as f64) + (t1 as f64) * (xdelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(x0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:358:18 [INFO] [stderr] | [INFO] [stderr] 358 | let y1clip = (y0src as f64) + (t1 as f64) * (ydelta as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(y0src)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:438:9 [INFO] [stderr] | [INFO] [stderr] 438 | assert_eq!(50.0, calculate_rho(0, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:438:9 [INFO] [stderr] | [INFO] [stderr] 438 | assert_eq!(50.0, calculate_rho(0, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:439:9 [INFO] [stderr] | [INFO] [stderr] 439 | assert_eq!(64.0, calculate_rho(45, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:439:9 [INFO] [stderr] | [INFO] [stderr] 439 | assert_eq!(64.0, calculate_rho(45, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | assert_eq!(40.0, calculate_rho(90, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | assert_eq!(40.0, calculate_rho(90, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | assert_eq!(-50.0, calculate_rho(180, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | assert_eq!(-50.0, calculate_rho(180, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | assert_eq!(-40.0, calculate_rho(270, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | assert_eq!(-40.0, calculate_rho(270, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:443:9 [INFO] [stderr] | [INFO] [stderr] 443 | assert_eq!(-7.0, calculate_rho(135, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:443:9 [INFO] [stderr] | [INFO] [stderr] 443 | assert_eq!(-7.0, calculate_rho(135, theta_axis_size, &coords).round()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hough-transform`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "af0e3430605b14bf569d6e6f99332090f6d3353f48cd48be9c38e15ff3f39be2"` [INFO] running `"docker" "rm" "-f" "af0e3430605b14bf569d6e6f99332090f6d3353f48cd48be9c38e15ff3f39be2"` [INFO] [stdout] af0e3430605b14bf569d6e6f99332090f6d3353f48cd48be9c38e15ff3f39be2