[INFO] crate dataplotlib 0.1.3 is already in cache [INFO] extracting crate dataplotlib 0.1.3 into work/ex/clippy-test-run/sources/stable/reg/dataplotlib/0.1.3 [INFO] extracting crate dataplotlib 0.1.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dataplotlib/0.1.3 [INFO] validating manifest of dataplotlib-0.1.3 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 dataplotlib-0.1.3 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 dataplotlib-0.1.3 [INFO] finished frobbing dataplotlib-0.1.3 [INFO] frobbed toml for dataplotlib-0.1.3 written to work/ex/clippy-test-run/sources/stable/reg/dataplotlib/0.1.3/Cargo.toml [INFO] started frobbing dataplotlib-0.1.3 [INFO] finished frobbing dataplotlib-0.1.3 [INFO] frobbed toml for dataplotlib-0.1.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dataplotlib/0.1.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 dataplotlib-0.1.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dataplotlib/0.1.3:/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] 687adc7910f9a55ae2031ba6192829b68e8c34934757c01ae3415569d6d9c907 [INFO] running `"docker" "start" "-a" "687adc7910f9a55ae2031ba6192829b68e8c34934757c01ae3415569d6d9c907"` [INFO] [stderr] Checking pistoncore-input v0.14.0 [INFO] [stderr] Checking piston2d-graphics v0.17.3 [INFO] [stderr] Checking gfx_core v0.4.0 [INFO] [stderr] Compiling gfx_gl v0.3.1 [INFO] [stderr] Checking image v0.10.4 [INFO] [stderr] Checking pistoncore-window v0.22.1 [INFO] [stderr] Checking pistoncore-event_loop v0.25.1 [INFO] [stderr] Checking pistoncore-glutin_window v0.29.0 [INFO] [stderr] Checking piston v0.25.1 [INFO] [stderr] Checking gfx v0.12.2 [INFO] [stderr] Checking gfx_device_gl v0.11.2 [INFO] [stderr] Checking piston-gfx_texture v0.17.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.31.2 [INFO] [stderr] Checking piston_window v0.52.0 [INFO] [stderr] Checking dataplotlib v0.1.3 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/plotbuilder.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | const DEFAULT_FONT: &'static str = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | return v; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/plotbuilder.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | const DEFAULT_FONT: &'static str = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | return v; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:26:43 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_max(user_max: Option, values: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:40:43 [INFO] [stderr] | [INFO] [stderr] 40 | fn get_min(user_min: Option, values: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:66:15 [INFO] [stderr] | [INFO] [stderr] 66 | fn set_xy(xy: &Vec<(f64, f64)>, x_vector: &mut Vec>, y_vector: &mut Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f64, f64)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:46 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:66 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:90 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[[f32; 4]]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/plot.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | let m = min(w, h) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(min(w, h))` [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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/plot.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | let (xa, ya) = (xt[i + 0], yt[i + 0]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/plot.rs:114:51 [INFO] [stderr] | [INFO] [stderr] 114 | let (xa, ya) = (xt[i + 0], yt[i + 0]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:127:54 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_plot_bounds(plot_builder: &PlotBuilder2D, xs: &Vec>, ys: &Vec>) -> [f64; 4] { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:127:74 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_plot_bounds(plot_builder: &PlotBuilder2D, xs: &Vec>, ys: &Vec>) -> [f64; 4] { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:144:62 [INFO] [stderr] | [INFO] [stderr] 144 | max_xs.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:144:62 [INFO] [stderr] | [INFO] [stderr] 144 | max_xs.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:145:62 [INFO] [stderr] | [INFO] [stderr] 145 | max_ys.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:145:62 [INFO] [stderr] | [INFO] [stderr] 145 | max_ys.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:146:62 [INFO] [stderr] | [INFO] [stderr] 146 | min_xs.iter().cloned().fold(0. / 0., f64::min), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:146:62 [INFO] [stderr] | [INFO] [stderr] 146 | min_xs.iter().cloned().fold(0. / 0., f64::min), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:147:62 [INFO] [stderr] | [INFO] [stderr] 147 | min_ys.iter().cloned().fold(0. / 0., f64::min)]; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:147:62 [INFO] [stderr] | [INFO] [stderr] 147 | min_ys.iter().cloned().fold(0. / 0., f64::min)]; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/plot.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | / match pv { [INFO] [stderr] 182 | | PlotVals2D::XyColor(ref col, ref xy) => { [INFO] [stderr] 183 | | set_xy(xy, &mut x_points, &mut y_points); [INFO] [stderr] 184 | | colors.push(col.clone()); [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | _ => (), [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 181 | if let PlotVals2D::XyColor(ref col, ref xy) = pv { [INFO] [stderr] 182 | set_xy(xy, &mut x_points, &mut y_points); [INFO] [stderr] 183 | colors.push(col.clone()); [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `plotter::Plotter` [INFO] [stderr] --> src/plotter.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Plotter { [INFO] [stderr] 20 | | Plotter { plots: Vec::new() } [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 13 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `plotbuilder::PlotBuilder2D` [INFO] [stderr] --> src/plotbuilder.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> PlotBuilder2D { [INFO] [stderr] 76 | | PlotBuilder2D { [INFO] [stderr] 77 | | pvs: vec![], [INFO] [stderr] 78 | | min_x: None, [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 29 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:22:19 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn zip2(a: &Vec, b: &Vec) -> Vec<(T, T)> [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:22:31 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn zip2(a: &Vec, b: &Vec) -> Vec<(T, T)> [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dataplotlib`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:26:43 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_max(user_max: Option, values: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:40:43 [INFO] [stderr] | [INFO] [stderr] 40 | fn get_min(user_min: Option, values: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:66:15 [INFO] [stderr] | [INFO] [stderr] 66 | fn set_xy(xy: &Vec<(f64, f64)>, x_vector: &mut Vec>, y_vector: &mut Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f64, f64)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:46 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:66 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:78:90 [INFO] [stderr] | [INFO] [stderr] 78 | fn draw_plots(window: &mut PistonWindow, xs: &Vec>, ys: &Vec>, colors: &Vec<[f32; 4]>, plot_bounds: [f64; 4]) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[[f32; 4]]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/plot.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | let m = min(w, h) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(min(w, h))` [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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/plot.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | let (xa, ya) = (xt[i + 0], yt[i + 0]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/plot.rs:114:51 [INFO] [stderr] | [INFO] [stderr] 114 | let (xa, ya) = (xt[i + 0], yt[i + 0]); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:127:54 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_plot_bounds(plot_builder: &PlotBuilder2D, xs: &Vec>, ys: &Vec>) -> [f64; 4] { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/plot.rs:127:74 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_plot_bounds(plot_builder: &PlotBuilder2D, xs: &Vec>, ys: &Vec>) -> [f64; 4] { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:144:62 [INFO] [stderr] | [INFO] [stderr] 144 | max_xs.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:144:62 [INFO] [stderr] | [INFO] [stderr] 144 | max_xs.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:145:62 [INFO] [stderr] | [INFO] [stderr] 145 | max_ys.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:145:62 [INFO] [stderr] | [INFO] [stderr] 145 | max_ys.iter().cloned().fold(0. / 0., f64::max), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:146:62 [INFO] [stderr] | [INFO] [stderr] 146 | min_xs.iter().cloned().fold(0. / 0., f64::min), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:146:62 [INFO] [stderr] | [INFO] [stderr] 146 | min_xs.iter().cloned().fold(0. / 0., f64::min), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/plot.rs:147:62 [INFO] [stderr] | [INFO] [stderr] 147 | min_ys.iter().cloned().fold(0. / 0., f64::min)]; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/plot.rs:147:62 [INFO] [stderr] | [INFO] [stderr] 147 | min_ys.iter().cloned().fold(0. / 0., f64::min)]; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/plot.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | / match pv { [INFO] [stderr] 182 | | PlotVals2D::XyColor(ref col, ref xy) => { [INFO] [stderr] 183 | | set_xy(xy, &mut x_points, &mut y_points); [INFO] [stderr] 184 | | colors.push(col.clone()); [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | _ => (), [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 181 | if let PlotVals2D::XyColor(ref col, ref xy) = pv { [INFO] [stderr] 182 | set_xy(xy, &mut x_points, &mut y_points); [INFO] [stderr] 183 | colors.push(col.clone()); [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `plotter::Plotter` [INFO] [stderr] --> src/plotter.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Plotter { [INFO] [stderr] 20 | | Plotter { plots: Vec::new() } [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 13 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `plotbuilder::PlotBuilder2D` [INFO] [stderr] --> src/plotbuilder.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> PlotBuilder2D { [INFO] [stderr] 76 | | PlotBuilder2D { [INFO] [stderr] 77 | | pvs: vec![], [INFO] [stderr] 78 | | min_x: None, [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 29 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:22:19 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn zip2(a: &Vec, b: &Vec) -> Vec<(T, T)> [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:22:31 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn zip2(a: &Vec, b: &Vec) -> Vec<(T, T)> [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dataplotlib`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "687adc7910f9a55ae2031ba6192829b68e8c34934757c01ae3415569d6d9c907"` [INFO] running `"docker" "rm" "-f" "687adc7910f9a55ae2031ba6192829b68e8c34934757c01ae3415569d6d9c907"` [INFO] [stdout] 687adc7910f9a55ae2031ba6192829b68e8c34934757c01ae3415569d6d9c907