[INFO] crate tars 0.1.3 is already in cache [INFO] extracting crate tars 0.1.3 into work/ex/clippy-test-run/sources/stable/reg/tars/0.1.3 [INFO] extracting crate tars 0.1.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tars/0.1.3 [INFO] validating manifest of tars-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 tars-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 tars-0.1.3 [INFO] finished frobbing tars-0.1.3 [INFO] frobbed toml for tars-0.1.3 written to work/ex/clippy-test-run/sources/stable/reg/tars/0.1.3/Cargo.toml [INFO] started frobbing tars-0.1.3 [INFO] finished frobbing tars-0.1.3 [INFO] frobbed toml for tars-0.1.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tars/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 tars-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-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tars/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] 642ac48cad70aec4dd3d5e3bed2ae6765da1f43255a9cce451eb5842102f7e9a [INFO] running `"docker" "start" "-a" "642ac48cad70aec4dd3d5e3bed2ae6765da1f43255a9cce451eb5842102f7e9a"` [INFO] [stderr] Checking tars v0.1.3 (/opt/crater/workdir) [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/overlap_studies/ema.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | j = j + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `j += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/overlap_studies/psar.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / let mut long = false; [INFO] [stderr] 18 | | if high[0] + low[0] <= high[1] + low[1] { [INFO] [stderr] 19 | | long = true; [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let long = if high[0] + low[0] <= high[1] + low[1] { true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `changes`. [INFO] [stderr] --> src/momentum_indicators/rsi.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | for i in 0..changes.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 25 | for in &changes { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/helpers/mod.rs:3:38 [INFO] [stderr] | [INFO] [stderr] 3 | let divider = (10.0 as f64).powi(decimals as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(decimals)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/overlap_studies/ema.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | j = j + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `j += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/overlap_studies/psar.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / let mut long = false; [INFO] [stderr] 18 | | if high[0] + low[0] <= high[1] + low[1] { [INFO] [stderr] 19 | | long = true; [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let long = if high[0] + low[0] <= high[1] + low[1] { true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `changes`. [INFO] [stderr] --> src/momentum_indicators/rsi.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | for i in 0..changes.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 25 | for in &changes { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/helpers/mod.rs:3:38 [INFO] [stderr] | [INFO] [stderr] 3 | let divider = (10.0 as f64).powi(decimals as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(decimals)` [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: constant item is never used: `OPEN` [INFO] [stderr] --> tests/overlap_studies.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / const OPEN: &[f64] = &[1984.03, 1959.83, 2041.42, 2019.04, 1969.53, 2082.75, 2209.52, 2200.9, [INFO] [stderr] 11 | | 2364.04, 2543.32, 2423.95, 2483.28, 2604.88, 2393.81, 2231.27, 2420.82, [INFO] [stderr] 12 | | 2544.0, 2766.67, 2919.62, 2763.25]; [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `OPEN` [INFO] [stderr] --> tests/momentum_indicators.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | / const OPEN: &[f64] = &[1984.03, 1959.83, 2041.42, 2019.04, 1969.53, 2082.75, 2209.52, 2200.9, [INFO] [stderr] 8 | | 2364.04, 2543.32, 2423.95, 2483.28, 2604.88, 2393.81, 2231.27, 2420.82, [INFO] [stderr] 9 | | 2544.0, 2766.67, 2919.62, 2763.25]; [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `HIGH` [INFO] [stderr] --> tests/momentum_indicators.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / const HIGH: &[f64] = &[2174.72, 2129.49, 2158.92, 2050.2, 2042.12, 2151.19, 2220.64, 2352.98, [INFO] [stderr] 11 | | 2456.25, 2691.53, 2572.81, 2494.14, 2845.93, 2682.66, 2527.13, 2455.68, [INFO] [stderr] 12 | | 2607.54, 2872.17, 3004.26, 3036.05]; [INFO] [stderr] | |___________________________________________________________^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `LOW` [INFO] [stderr] --> tests/momentum_indicators.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / const LOW: &[f64] = &[1934.7, 1921.02, 1793.77, 1887.36, 1919.72, 1868.23, 1991.19, 2011.08, [INFO] [stderr] 14 | | 2193.91, 2183.96, 2223.15, 2363.19, 2240.03, 2208.31, 2192.15, 2199.02, [INFO] [stderr] 15 | | 2311.16, 2463.15, 2651.8, 2749.42]; [INFO] [stderr] | |_________________________________________________________^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.24s [INFO] running `"docker" "inspect" "642ac48cad70aec4dd3d5e3bed2ae6765da1f43255a9cce451eb5842102f7e9a"` [INFO] running `"docker" "rm" "-f" "642ac48cad70aec4dd3d5e3bed2ae6765da1f43255a9cce451eb5842102f7e9a"` [INFO] [stdout] 642ac48cad70aec4dd3d5e3bed2ae6765da1f43255a9cce451eb5842102f7e9a