[INFO] updating cached repository RyanBluth/stocko [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/RyanBluth/stocko [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/RyanBluth/stocko" "work/ex/clippy-test-run/sources/stable/gh/RyanBluth/stocko"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/RyanBluth/stocko'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/RyanBluth/stocko" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RyanBluth/stocko"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RyanBluth/stocko'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b18b15a6a0c7062ef4655edbf9c59428439d2b57 [INFO] sha for GitHub repo RyanBluth/stocko: b18b15a6a0c7062ef4655edbf9c59428439d2b57 [INFO] validating manifest of RyanBluth/stocko 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 RyanBluth/stocko 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 RyanBluth/stocko [INFO] finished frobbing RyanBluth/stocko [INFO] frobbed toml for RyanBluth/stocko written to work/ex/clippy-test-run/sources/stable/gh/RyanBluth/stocko/Cargo.toml [INFO] started frobbing RyanBluth/stocko [INFO] finished frobbing RyanBluth/stocko [INFO] frobbed toml for RyanBluth/stocko written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RyanBluth/stocko/Cargo.toml [INFO] crate RyanBluth/stocko 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 RyanBluth/stocko 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/RyanBluth/stocko:/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] 4ab518be37fac1468d4f9467ad09bc0b85a2f149803a2cfac571d402998b6eab [INFO] running `"docker" "start" "-a" "4ab518be37fac1468d4f9467ad09bc0b85a2f149803a2cfac571d402998b6eab"` [INFO] [stderr] Checking wcwidth v1.0.1 [INFO] [stderr] Checking chrono v0.4.4 [INFO] [stderr] Checking tokio v0.1.7 [INFO] [stderr] Checking term-table v0.1.5 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking tokio-tls v0.1.4 [INFO] [stderr] Checking hyper v0.11.27 [INFO] [stderr] Checking hyper-tls v0.1.3 [INFO] [stderr] Checking reqwest v0.8.6 [INFO] [stderr] Checking alphavantage v0.2.0 [INFO] [stderr] Checking stocko v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:494:17 [INFO] [stderr] | [INFO] [stderr] 494 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:494:17 [INFO] [stderr] | [INFO] [stderr] 494 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:514:9 [INFO] [stderr] | [INFO] [stderr] 514 | shares: shares, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shares` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:613:9 [INFO] [stderr] | [INFO] [stderr] 613 | change_percentage: change_percentage, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `change_percentage` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:514:9 [INFO] [stderr] | [INFO] [stderr] 514 | shares: shares, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shares` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:613:9 [INFO] [stderr] | [INFO] [stderr] 613 | change_percentage: change_percentage, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `change_percentage` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return Exchange::NYSE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Exchange::NYSE` [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/main.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | return Ok(Exchange::NYSE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Exchange::NYSE)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / return OrderMetrics { [INFO] [stderr] 130 | | total_spent, [INFO] [stderr] 131 | | total_shares, [INFO] [stderr] 132 | | average_price, [INFO] [stderr] 133 | | total_sell, [INFO] [stderr] 134 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 129 | OrderMetrics { [INFO] [stderr] 130 | total_spent, [INFO] [stderr] 131 | total_shares, [INFO] [stderr] 132 | average_price, [INFO] [stderr] 133 | total_sell, [INFO] [stderr] 134 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | / return StockCollections { [INFO] [stderr] 168 | | portfolio: HashMap::new(), [INFO] [stderr] 169 | | watchlist: HashMap::new(), [INFO] [stderr] 170 | | archive: HashMap::new(), [INFO] [stderr] 171 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 167 | StockCollections { [INFO] [stderr] 168 | portfolio: HashMap::new(), [INFO] [stderr] 169 | watchlist: HashMap::new(), [INFO] [stderr] 170 | archive: HashMap::new(), [INFO] [stderr] 171 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:539:5 [INFO] [stderr] | [INFO] [stderr] 539 | return Ok(time_series); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(time_series)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:588:5 [INFO] [stderr] | [INFO] [stderr] 588 | return exe_path; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `exe_path` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:612:5 [INFO] [stderr] | [INFO] [stderr] 612 | / return StockMetrics { [INFO] [stderr] 613 | | change_percentage: change_percentage, [INFO] [stderr] 614 | | change: change_value, [INFO] [stderr] 615 | | close_today: entry_today.close, [INFO] [stderr] 616 | | close_yesterday: entry_yesterday.close, [INFO] [stderr] 617 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 612 | StockMetrics { [INFO] [stderr] 613 | change_percentage: change_percentage, [INFO] [stderr] 614 | change: change_value, [INFO] [stderr] 615 | close_today: entry_today.close, [INFO] [stderr] 616 | close_yesterday: entry_yesterday.close, [INFO] [stderr] 617 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:621:5 [INFO] [stderr] | [INFO] [stderr] 621 | / return if metrics.change >= 0.0 { [INFO] [stderr] 622 | | Green [INFO] [stderr] 623 | | .paint(format!( [INFO] [stderr] 624 | | "+{:.2} (+{:.2}%)", [INFO] [stderr] ... | [INFO] [stderr] 632 | | )).to_string() [INFO] [stderr] 633 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 621 | if metrics.change >= 0.0 { [INFO] [stderr] 622 | Green [INFO] [stderr] 623 | .paint(format!( [INFO] [stderr] 624 | "+{:.2} (+{:.2}%)", [INFO] [stderr] 625 | metrics.change, metrics.change_percentage [INFO] [stderr] 626 | )) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:637:5 [INFO] [stderr] | [INFO] [stderr] 637 | / return if gain >= 0.0 { [INFO] [stderr] 638 | | Green [INFO] [stderr] 639 | | .paint(format!("+{:.2} (+{:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] 640 | | .to_string() [INFO] [stderr] ... | [INFO] [stderr] 643 | | .to_string() [INFO] [stderr] 644 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 637 | if gain >= 0.0 { [INFO] [stderr] 638 | Green [INFO] [stderr] 639 | .paint(format!("+{:.2} (+{:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] 640 | .to_string() [INFO] [stderr] 641 | } else { [INFO] [stderr] 642 | Red.paint(format!("{:.2} ({:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: field is never used: `close_yesterday` [INFO] [stderr] --> src/main.rs:162:5 [INFO] [stderr] | [INFO] [stderr] 162 | close_yesterday: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | .fold(0.0, |acc, x| acc + x.shares as f64 * x.share_price); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(x.shares)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:123:39 [INFO] [stderr] | [INFO] [stderr] 123 | .fold(0.0, |acc, x| acc + x.shares.abs() as f64 * x.share_price); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.shares.abs())` [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:127:43 [INFO] [stderr] | [INFO] [stderr] 127 | let average_price = total_spent / total_shares as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(total_shares)` [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:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | order_metrics.total_shares as f64 * order_metrics.average_price, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(order_metrics.total_shares)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:500:21 [INFO] [stderr] | [INFO] [stderr] 500 | let mut stock = collection.portfolio.get(&symbol).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&collection.portfolio[&symbol]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return Exchange::NYSE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Exchange::NYSE` [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/main.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | return Ok(Exchange::NYSE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Exchange::NYSE)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / return OrderMetrics { [INFO] [stderr] 130 | | total_spent, [INFO] [stderr] 131 | | total_shares, [INFO] [stderr] 132 | | average_price, [INFO] [stderr] 133 | | total_sell, [INFO] [stderr] 134 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 129 | OrderMetrics { [INFO] [stderr] 130 | total_spent, [INFO] [stderr] 131 | total_shares, [INFO] [stderr] 132 | average_price, [INFO] [stderr] 133 | total_sell, [INFO] [stderr] 134 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | / return StockCollections { [INFO] [stderr] 168 | | portfolio: HashMap::new(), [INFO] [stderr] 169 | | watchlist: HashMap::new(), [INFO] [stderr] 170 | | archive: HashMap::new(), [INFO] [stderr] 171 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 167 | StockCollections { [INFO] [stderr] 168 | portfolio: HashMap::new(), [INFO] [stderr] 169 | watchlist: HashMap::new(), [INFO] [stderr] 170 | archive: HashMap::new(), [INFO] [stderr] 171 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:539:5 [INFO] [stderr] | [INFO] [stderr] 539 | return Ok(time_series); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(time_series)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:588:5 [INFO] [stderr] | [INFO] [stderr] 588 | return exe_path; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `exe_path` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:612:5 [INFO] [stderr] | [INFO] [stderr] 612 | / return StockMetrics { [INFO] [stderr] 613 | | change_percentage: change_percentage, [INFO] [stderr] 614 | | change: change_value, [INFO] [stderr] 615 | | close_today: entry_today.close, [INFO] [stderr] 616 | | close_yesterday: entry_yesterday.close, [INFO] [stderr] 617 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 612 | StockMetrics { [INFO] [stderr] 613 | change_percentage: change_percentage, [INFO] [stderr] 614 | change: change_value, [INFO] [stderr] 615 | close_today: entry_today.close, [INFO] [stderr] 616 | close_yesterday: entry_yesterday.close, [INFO] [stderr] 617 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:621:5 [INFO] [stderr] | [INFO] [stderr] 621 | / return if metrics.change >= 0.0 { [INFO] [stderr] 622 | | Green [INFO] [stderr] 623 | | .paint(format!( [INFO] [stderr] 624 | | "+{:.2} (+{:.2}%)", [INFO] [stderr] ... | [INFO] [stderr] 632 | | )).to_string() [INFO] [stderr] 633 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 621 | if metrics.change >= 0.0 { [INFO] [stderr] 622 | Green [INFO] [stderr] 623 | .paint(format!( [INFO] [stderr] 624 | "+{:.2} (+{:.2}%)", [INFO] [stderr] 625 | metrics.change, metrics.change_percentage [INFO] [stderr] 626 | )) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:637:5 [INFO] [stderr] | [INFO] [stderr] 637 | / return if gain >= 0.0 { [INFO] [stderr] 638 | | Green [INFO] [stderr] 639 | | .paint(format!("+{:.2} (+{:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] 640 | | .to_string() [INFO] [stderr] ... | [INFO] [stderr] 643 | | .to_string() [INFO] [stderr] 644 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 637 | if gain >= 0.0 { [INFO] [stderr] 638 | Green [INFO] [stderr] 639 | .paint(format!("+{:.2} (+{:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] 640 | .to_string() [INFO] [stderr] 641 | } else { [INFO] [stderr] 642 | Red.paint(format!("{:.2} ({:.2}%)", gain, gain_percentage * 100.0)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: field is never used: `close_yesterday` [INFO] [stderr] --> src/main.rs:162:5 [INFO] [stderr] | [INFO] [stderr] 162 | close_yesterday: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | .fold(0.0, |acc, x| acc + x.shares as f64 * x.share_price); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(x.shares)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:123:39 [INFO] [stderr] | [INFO] [stderr] 123 | .fold(0.0, |acc, x| acc + x.shares.abs() as f64 * x.share_price); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.shares.abs())` [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:127:43 [INFO] [stderr] | [INFO] [stderr] 127 | let average_price = total_spent / total_shares as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(total_shares)` [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:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | order_metrics.total_shares as f64 * order_metrics.average_price, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(order_metrics.total_shares)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:500:21 [INFO] [stderr] | [INFO] [stderr] 500 | let mut stock = collection.portfolio.get(&symbol).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&collection.portfolio[&symbol]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 40.49s [INFO] running `"docker" "inspect" "4ab518be37fac1468d4f9467ad09bc0b85a2f149803a2cfac571d402998b6eab"` [INFO] running `"docker" "rm" "-f" "4ab518be37fac1468d4f9467ad09bc0b85a2f149803a2cfac571d402998b6eab"` [INFO] [stdout] 4ab518be37fac1468d4f9467ad09bc0b85a2f149803a2cfac571d402998b6eab