[INFO] cloning repository https://github.com/alexjbush/grokking-deep-learning [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexjbush/grokking-deep-learning" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjbush%2Fgrokking-deep-learning", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjbush%2Fgrokking-deep-learning'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d9da50716d5bb2ea1547c73faa11c5b5305372ad [INFO] linting alexjbush/grokking-deep-learning against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjbush%2Fgrokking-deep-learning" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/alexjbush/grokking-deep-learning [INFO] finished tweaking git repo https://github.com/alexjbush/grokking-deep-learning [INFO] tweaked toml for git repo https://github.com/alexjbush/grokking-deep-learning written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/alexjbush/grokking-deep-learning on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/alexjbush/grokking-deep-learning already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uuid-macro-internal v1.11.0 [INFO] [stderr] Downloaded pbr v1.1.1 [INFO] [stderr] Downloaded noisy_float v0.2.0 [INFO] [stderr] Downloaded nano-gemm v0.1.2 [INFO] [stderr] Downloaded unicode-ident v1.0.13 [INFO] [stderr] Downloaded equator-macro v0.2.1 [INFO] [stderr] Downloaded equator-macro v0.4.1 [INFO] [stderr] Downloaded gemm v0.18.0 [INFO] [stderr] Downloaded ndarray-stats v0.6.0 [INFO] [stderr] Downloaded cpufeatures v0.2.14 [INFO] [stderr] Downloaded dbgf v0.1.2 [INFO] [stderr] Downloaded gemm-c64 v0.18.0 [INFO] [stderr] Downloaded nano-gemm-f64 v0.1.0 [INFO] [stderr] Downloaded gemm-f32 v0.18.0 [INFO] [stderr] Downloaded portable-atomic-util v0.2.2 [INFO] [stderr] Downloaded counter v0.6.0 [INFO] [stderr] Downloaded faer-entity v0.19.2 [INFO] [stderr] Downloaded matrixcompare-core v0.1.0 [INFO] [stderr] Downloaded nano-gemm-c64 v0.1.0 [INFO] [stderr] Downloaded mnist v0.6.0 [INFO] [stderr] Downloaded coe-rs v0.1.2 [INFO] [stderr] Downloaded approx v0.5.1 [INFO] [stderr] Downloaded nalgebra-macros v0.2.2 [INFO] [stderr] Downloaded ndarray-rand v0.15.0 [INFO] [stderr] Downloaded nano-gemm-codegen v0.1.0 [INFO] [stderr] Downloaded equator v0.2.2 [INFO] [stderr] Downloaded pest_derive v2.7.12 [INFO] [stderr] Downloaded enum-as-inner v0.6.1 [INFO] [stderr] Downloaded nano-gemm-c32 v0.1.0 [INFO] [stderr] Downloaded equator v0.4.1 [INFO] [stderr] Downloaded gemm-c32 v0.18.0 [INFO] [stderr] Downloaded nano-gemm-core v0.1.0 [INFO] [stderr] Downloaded gemm-f16 v0.18.0 [INFO] [stderr] Downloaded nano-gemm-f32 v0.1.0 [INFO] [stderr] Downloaded gemm-common v0.18.0 [INFO] [stderr] Downloaded py_literal v0.4.0 [INFO] [stderr] Downloaded gemm-f64 v0.18.0 [INFO] [stderr] Downloaded pest_generator v2.7.12 [INFO] [stderr] Downloaded matrixmultiply v0.3.9 [INFO] [stderr] Downloaded bytemuck_derive v1.7.1 [INFO] [stderr] Downloaded pest_meta v2.7.12 [INFO] [stderr] Downloaded schannel v0.1.24 [INFO] [stderr] Downloaded simba v0.9.0 [INFO] [stderr] Downloaded matrixcompare v0.3.0 [INFO] [stderr] Downloaded bytemuck v1.18.0 [INFO] [stderr] Downloaded serde v1.0.210 [INFO] [stderr] Downloaded serde_derive v1.0.210 [INFO] [stderr] Downloaded npyz v0.8.3 [INFO] [stderr] Downloaded openssl-sys v0.9.103 [INFO] [stderr] Downloaded safe_arch v0.7.2 [INFO] [stderr] Downloaded cc v1.1.18 [INFO] [stderr] Downloaded wide v0.7.28 [INFO] [stderr] Downloaded flate2 v1.0.34 [INFO] [stderr] Downloaded pulp v0.18.22 [INFO] [stderr] Downloaded pest v2.7.12 [INFO] [stderr] Downloaded portable-atomic v1.8.0 [INFO] [stderr] Downloaded curl v0.4.47 [INFO] [stderr] Downloaded hashbrown v0.15.0 [INFO] [stderr] Downloaded syn v2.0.77 [INFO] [stderr] Downloaded ndarray v0.16.1 [INFO] [stderr] Downloaded nalgebra v0.33.0 [INFO] [stderr] Downloaded libz-sys v1.1.20 [INFO] [stderr] Downloaded faer v0.19.3 [INFO] [stderr] Downloaded curl-sys v0.4.77+curl-8.10.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3ee0041198e9c9d535c2ebae51d4a17ddb7c7c5920c13d39439cef55977e125e [INFO] running `Command { std: "docker" "start" "-a" "3ee0041198e9c9d535c2ebae51d4a17ddb7c7c5920c13d39439cef55977e125e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3ee0041198e9c9d535c2ebae51d4a17ddb7c7c5920c13d39439cef55977e125e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ee0041198e9c9d535c2ebae51d4a17ddb7c7c5920c13d39439cef55977e125e", kill_on_drop: false }` [INFO] [stdout] 3ee0041198e9c9d535c2ebae51d4a17ddb7c7c5920c13d39439cef55977e125e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6da5875c2817b5d627b2487514fcff3f5d0e860b1bfea380445b91bbf6e5232b [INFO] running `Command { std: "docker" "start" "-a" "6da5875c2817b5d627b2487514fcff3f5d0e860b1bfea380445b91bbf6e5232b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Checking bytemuck v1.18.0 [INFO] [stderr] Compiling nano-gemm-codegen v0.1.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking reborrow v0.5.5 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Checking raw-cpuid v10.7.0 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling seq-macro v0.3.5 [INFO] [stderr] Compiling matrixmultiply v0.3.9 [INFO] [stderr] Checking nano-gemm-core v0.1.0 [INFO] [stderr] Compiling cc v1.1.18 [INFO] [stderr] Checking dyn-stack v0.10.0 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking safe_arch v0.7.2 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling curl v0.4.47 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Checking matrixcompare-core v0.1.0 [INFO] [stderr] Checking coe-rs v0.1.2 [INFO] [stderr] Checking hashbrown v0.15.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking dbgf v0.1.2 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking wide v0.7.28 [INFO] [stderr] Checking flate2 v1.0.34 [INFO] [stderr] Compiling nano-gemm-f64 v0.1.0 [INFO] [stderr] Compiling nano-gemm-f32 v0.1.0 [INFO] [stderr] Compiling nano-gemm-c64 v0.1.0 [INFO] [stderr] Compiling nano-gemm-c32 v0.1.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking matrixcompare v0.3.0 [INFO] [stderr] Checking noisy_float v0.2.0 [INFO] [stderr] Checking counter v0.6.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking indexmap v2.6.0 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking pbr v1.1.1 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling openssl-sys v0.9.103 [INFO] [stderr] Compiling libz-sys v1.1.20 [INFO] [stderr] Compiling curl-sys v0.4.77+curl-8.10.1 [INFO] [stderr] Checking mnist v0.6.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling equator-macro v0.2.1 [INFO] [stderr] Compiling equator-macro v0.4.1 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling uuid-macro-internal v1.11.0 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Checking equator v0.2.2 [INFO] [stderr] Checking equator v0.4.1 [INFO] [stderr] Compiling pest v2.7.12 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling pest_meta v2.7.12 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling pest_generator v2.7.12 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking uuid v1.11.0 [INFO] [stderr] Checking pulp v0.18.22 [INFO] [stderr] Checking ndarray v0.16.1 [INFO] [stderr] Checking simba v0.9.0 [INFO] [stderr] Compiling pest_derive v2.7.12 [INFO] [stderr] Checking py_literal v0.4.0 [INFO] [stderr] Checking npyz v0.8.3 [INFO] [stderr] Checking gemm-common v0.18.0 [INFO] [stderr] Checking faer-entity v0.19.2 [INFO] [stderr] Checking gemm-c64 v0.18.0 [INFO] [stderr] Checking gemm-f64 v0.18.0 [INFO] [stderr] Checking gemm-c32 v0.18.0 [INFO] [stderr] Checking gemm-f32 v0.18.0 [INFO] [stderr] Checking gemm v0.18.0 [INFO] [stderr] Checking ndarray-rand v0.15.0 [INFO] [stderr] Checking ndarray-stats v0.6.0 [INFO] [stderr] Checking nalgebra v0.33.0 [INFO] [stderr] Checking nano-gemm v0.1.2 [INFO] [stderr] Checking faer v0.19.3 [INFO] [stderr] Checking grokking-deep-learning v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `ndarray::Dim` [INFO] [stdout] --> src/chapter13/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use ndarray::Dim; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ndarray_rand::rand::seq::SliceRandom` [INFO] [stdout] --> src/chapter13/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ndarray_rand::rand::seq::SliceRandom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ndarray_rand::rand_distr::num_traits::ToPrimitive` [INFO] [stdout] --> src/chapter13/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use ndarray_rand::rand_distr::num_traits::ToPrimitive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | iteration: iteration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iteration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | layer_2_error: layer_2_error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:418:17 [INFO] [stdout] | [INFO] [stdout] 418 | correct_cnt: correct_cnt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `correct_cnt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | validation_layer_2_error: validation_layer_2_error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `validation_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | validation_correct_cnt: validation_correct_cnt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `validation_correct_cnt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ndarray::Dim` [INFO] [stdout] --> src/chapter13/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use ndarray::Dim; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ndarray_rand::rand::seq::SliceRandom` [INFO] [stdout] --> src/chapter13/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ndarray_rand::rand::seq::SliceRandom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ndarray_rand::rand_distr::num_traits::ToPrimitive` [INFO] [stdout] --> src/chapter13/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use ndarray_rand::rand_distr::num_traits::ToPrimitive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | iteration: iteration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iteration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | layer_2_error: layer_2_error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:418:17 [INFO] [stdout] | [INFO] [stdout] 418 | correct_cnt: correct_cnt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `correct_cnt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | validation_layer_2_error: validation_layer_2_error, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `validation_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/chapter8/mod.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | validation_correct_cnt: validation_correct_cnt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `validation_correct_cnt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | m.map(|v| return v.tanh()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - m.map(|v| return v.tanh()) [INFO] [stdout] 33 + m.map(|v| v.tanh()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 - m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] 39 + m.map(|v| 1.0 - v.powi(2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | return temp / sum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return temp / sum; [INFO] [stdout] 47 + temp / sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter10/mod.rs:191:31 [INFO] [stdout] | [INFO] [stdout] 191 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 192 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 191 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 192 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | m.map(|v| return v.tanh()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - m.map(|v| return v.tanh()) [INFO] [stdout] 33 + m.map(|v| v.tanh()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 - m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] 39 + m.map(|v| 1.0 - v.powi(2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter10/mod.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | return temp / sum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return temp / sum; [INFO] [stdout] 47 + temp / sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:57:15 [INFO] [stdout] | [INFO] [stdout] 57 | m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] 57 + m.map(|v| 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return ab; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return ab; [INFO] [stdout] 76 + ab [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:82:36 [INFO] [stdout] | [INFO] [stdout] 82 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 83 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:88:10 [INFO] [stdout] | [INFO] [stdout] 88 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:86:35 [INFO] [stdout] | [INFO] [stdout] 86 | let raw_labels: Vec = read_lines(Path::new(BASE_PATH).join(FILE_LABELS)) [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 87 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter10/mod.rs:191:31 [INFO] [stdout] | [INFO] [stdout] 191 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 192 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 191 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 192 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/chapter11/mod.rs:98:52 [INFO] [stdout] | [INFO] [stdout] 98 | .flat_map(|sent| sent.iter().filter(|word| word.len() > 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | return 1.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 - return 1.0; [INFO] [stdout] 128 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | return 0.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - return 0.0; [INFO] [stdout] 130 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:57:15 [INFO] [stdout] | [INFO] [stdout] 57 | m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] 57 + m.map(|v| 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return ab; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return ab; [INFO] [stdout] 76 + ab [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:230:10 [INFO] [stdout] | [INFO] [stdout] 230 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:228:36 [INFO] [stdout] | [INFO] [stdout] 228 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 229 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:234:10 [INFO] [stdout] | [INFO] [stdout] 234 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:232:35 [INFO] [stdout] | [INFO] [stdout] 232 | let raw_labels: Vec = read_lines(Path::new(BASE_PATH).join(FILE_LABELS)) [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 233 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:82:36 [INFO] [stdout] | [INFO] [stdout] 82 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 83 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/chapter11/mod.rs:244:52 [INFO] [stdout] | [INFO] [stdout] 244 | .flat_map(|sent| sent.iter().filter(|word| word.len() > 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:88:10 [INFO] [stdout] | [INFO] [stdout] 88 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:86:35 [INFO] [stdout] | [INFO] [stdout] 86 | let raw_labels: Vec = read_lines(Path::new(BASE_PATH).join(FILE_LABELS)) [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 87 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/chapter11/mod.rs:98:52 [INFO] [stdout] | [INFO] [stdout] 98 | .flat_map(|sent| sent.iter().filter(|word| word.len() > 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | return 1.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return 1.0; [INFO] [stdout] 274 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:276:17 [INFO] [stdout] | [INFO] [stdout] 276 | return 0.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return 0.0; [INFO] [stdout] 276 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | return 1.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 - return 1.0; [INFO] [stdout] 128 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | return 0.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - return 0.0; [INFO] [stdout] 130 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | return scores.into_iter().take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return scores.into_iter().take(10).collect(); [INFO] [stdout] 330 + scores.into_iter().take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:327:33 [INFO] [stdout] | [INFO] [stdout] 327 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:345:10 [INFO] [stdout] | [INFO] [stdout] 345 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:343:36 [INFO] [stdout] | [INFO] [stdout] 343 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 344 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:230:10 [INFO] [stdout] | [INFO] [stdout] 230 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:228:36 [INFO] [stdout] | [INFO] [stdout] 228 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 229 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:234:10 [INFO] [stdout] | [INFO] [stdout] 234 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:232:35 [INFO] [stdout] | [INFO] [stdout] 232 | let raw_labels: Vec = read_lines(Path::new(BASE_PATH).join(FILE_LABELS)) [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 233 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/chapter11/mod.rs:244:52 [INFO] [stdout] | [INFO] [stdout] 244 | .flat_map(|sent| sent.iter().filter(|word| word.len() > 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:370:14 [INFO] [stdout] | [INFO] [stdout] 370 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:383:10 [INFO] [stdout] | [INFO] [stdout] 383 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:420:10 [INFO] [stdout] | [INFO] [stdout] 420 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | return 1.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return 1.0; [INFO] [stdout] 274 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:425:23 [INFO] [stdout] | [INFO] [stdout] 425 | Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:276:17 [INFO] [stdout] | [INFO] [stdout] 276 | return 0.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return 0.0; [INFO] [stdout] 276 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | return scores.into_iter().take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 443 - return scores.into_iter().take(10).collect(); [INFO] [stdout] 443 + scores.into_iter().take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:440:33 [INFO] [stdout] | [INFO] [stdout] 440 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter11/mod.rs:458:40 [INFO] [stdout] | [INFO] [stdout] 458 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 459 | | target_i - window [INFO] [stdout] 460 | | } else { [INFO] [stdout] 461 | | 0 [INFO] [stdout] 462 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] = note: `#[warn(clippy::unnecessary_min_or_max)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 458 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 459 + target_i - window [INFO] [stdout] 460 + } else { [INFO] [stdout] 461 + 0 [INFO] [stdout] 462 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter11/mod.rs:458:46 [INFO] [stdout] | [INFO] [stdout] 458 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 459 | | target_i - window [INFO] [stdout] 460 | | } else { [INFO] [stdout] 461 | | 0 [INFO] [stdout] 462 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | return scores.into_iter().take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return scores.into_iter().take(10).collect(); [INFO] [stdout] 330 + scores.into_iter().take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter11/mod.rs:477:22 [INFO] [stdout] | [INFO] [stdout] 477 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 477 - for i in 0..full_context.len() { [INFO] [stdout] 477 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter11/mod.rs:484:22 [INFO] [stdout] | [INFO] [stdout] 484 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 484 - for i in 0..target_samples.len() { [INFO] [stdout] 484 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:327:33 [INFO] [stdout] | [INFO] [stdout] 327 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:345:10 [INFO] [stdout] | [INFO] [stdout] 345 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:343:36 [INFO] [stdout] | [INFO] [stdout] 343 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 344 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:511:10 [INFO] [stdout] | [INFO] [stdout] 511 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:509:36 [INFO] [stdout] | [INFO] [stdout] 509 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 510 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:370:14 [INFO] [stdout] | [INFO] [stdout] 370 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:383:10 [INFO] [stdout] | [INFO] [stdout] 383 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:541:10 [INFO] [stdout] | [INFO] [stdout] 541 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:578:10 [INFO] [stdout] | [INFO] [stdout] 578 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:582:41 [INFO] [stdout] | [INFO] [stdout] 582 | let mut weights_1_2 = Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:420:10 [INFO] [stdout] | [INFO] [stdout] 420 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:425:23 [INFO] [stdout] | [INFO] [stdout] 425 | Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | return scores.into_iter().take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 443 - return scores.into_iter().take(10).collect(); [INFO] [stdout] 443 + scores.into_iter().take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter11/mod.rs:599:40 [INFO] [stdout] | [INFO] [stdout] 599 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 600 | | target_i - window [INFO] [stdout] 601 | | } else { [INFO] [stdout] 602 | | 0 [INFO] [stdout] 603 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 599 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 600 + target_i - window [INFO] [stdout] 601 + } else { [INFO] [stdout] 602 + 0 [INFO] [stdout] 603 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter11/mod.rs:599:46 [INFO] [stdout] | [INFO] [stdout] 599 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 600 | | target_i - window [INFO] [stdout] 601 | | } else { [INFO] [stdout] 602 | | 0 [INFO] [stdout] 603 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:440:33 [INFO] [stdout] | [INFO] [stdout] 440 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter11/mod.rs:618:22 [INFO] [stdout] | [INFO] [stdout] 618 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 618 - for i in 0..full_context.len() { [INFO] [stdout] 618 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter11/mod.rs:625:22 [INFO] [stdout] | [INFO] [stdout] 625 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 625 - for i in 0..target_samples.len() { [INFO] [stdout] 625 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter11/mod.rs:458:40 [INFO] [stdout] | [INFO] [stdout] 458 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 459 | | target_i - window [INFO] [stdout] 460 | | } else { [INFO] [stdout] 461 | | 0 [INFO] [stdout] 462 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] = note: `#[warn(clippy::unnecessary_min_or_max)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 458 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 459 + target_i - window [INFO] [stdout] 460 + } else { [INFO] [stdout] 461 + 0 [INFO] [stdout] 462 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter11/mod.rs:458:46 [INFO] [stdout] | [INFO] [stdout] 458 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 459 | | target_i - window [INFO] [stdout] 460 | | } else { [INFO] [stdout] 461 | | 0 [INFO] [stdout] 462 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter11/mod.rs:477:22 [INFO] [stdout] | [INFO] [stdout] 477 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 477 - for i in 0..full_context.len() { [INFO] [stdout] 477 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:661:9 [INFO] [stdout] | [INFO] [stdout] 661 | return scores.into_iter().skip(1).take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 661 - return scores.into_iter().skip(1).take(10).collect(); [INFO] [stdout] 661 + scores.into_iter().skip(1).take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:657:33 [INFO] [stdout] | [INFO] [stdout] 657 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter11/mod.rs:484:22 [INFO] [stdout] | [INFO] [stdout] 484 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 484 - for i in 0..target_samples.len() { [INFO] [stdout] 484 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter11/mod.rs:511:10 [INFO] [stdout] | [INFO] [stdout] 511 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter11/mod.rs:509:36 [INFO] [stdout] | [INFO] [stdout] 509 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 510 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter11/mod.rs:541:10 [INFO] [stdout] | [INFO] [stdout] 541 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:578:10 [INFO] [stdout] | [INFO] [stdout] 578 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] 54 + m.map(|v| 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | return ab; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return ab; [INFO] [stdout] 73 + ab [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter12/mod.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter12/mod.rs:79:36 [INFO] [stdout] | [INFO] [stdout] 79 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 80 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter11/mod.rs:582:41 [INFO] [stdout] | [INFO] [stdout] 582 | let mut weights_1_2 = Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter11/mod.rs:599:40 [INFO] [stdout] | [INFO] [stdout] 599 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 600 | | target_i - window [INFO] [stdout] 601 | | } else { [INFO] [stdout] 602 | | 0 [INFO] [stdout] 603 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 599 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 600 + target_i - window [INFO] [stdout] 601 + } else { [INFO] [stdout] 602 + 0 [INFO] [stdout] 603 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter11/mod.rs:599:46 [INFO] [stdout] | [INFO] [stdout] 599 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 600 | | target_i - window [INFO] [stdout] 601 | | } else { [INFO] [stdout] 602 | | 0 [INFO] [stdout] 603 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:152:41 [INFO] [stdout] | [INFO] [stdout] 152 | let mut weights_1_2 = Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter11/mod.rs:618:22 [INFO] [stdout] | [INFO] [stdout] 618 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 618 - for i in 0..full_context.len() { [INFO] [stdout] 618 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter12/mod.rs:169:40 [INFO] [stdout] | [INFO] [stdout] 169 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 170 | | target_i - window [INFO] [stdout] 171 | | } else { [INFO] [stdout] 172 | | 0 [INFO] [stdout] 173 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 169 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 170 + target_i - window [INFO] [stdout] 171 + } else { [INFO] [stdout] 172 + 0 [INFO] [stdout] 173 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter12/mod.rs:169:46 [INFO] [stdout] | [INFO] [stdout] 169 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 170 | | target_i - window [INFO] [stdout] 171 | | } else { [INFO] [stdout] 172 | | 0 [INFO] [stdout] 173 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter11/mod.rs:625:22 [INFO] [stdout] | [INFO] [stdout] 625 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 625 - for i in 0..target_samples.len() { [INFO] [stdout] 625 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter12/mod.rs:188:22 [INFO] [stdout] | [INFO] [stdout] 188 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 188 - for i in 0..full_context.len() { [INFO] [stdout] 188 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter11/mod.rs:661:9 [INFO] [stdout] | [INFO] [stdout] 661 | return scores.into_iter().skip(1).take(10).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 661 - return scores.into_iter().skip(1).take(10).collect(); [INFO] [stdout] 661 + scores.into_iter().skip(1).take(10).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter12/mod.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 195 - for i in 0..target_samples.len() { [INFO] [stdout] 195 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | / return normed_weights [INFO] [stdout] 217 | | .select(Axis(0), &indices) [INFO] [stdout] 218 | | .mean_axis(Axis(0)) [INFO] [stdout] 219 | | .unwrap(); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 216 ~ normed_weights [INFO] [stdout] 217 + .select(Axis(0), &indices) [INFO] [stdout] 218 + .mean_axis(Axis(0)) [INFO] [stdout] 219 ~ .unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:213:14 [INFO] [stdout] | [INFO] [stdout] 213 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/chapter12/mod.rs:214:27 [INFO] [stdout] | [INFO] [stdout] 214 | .flat_map(|v| word2index.get(*v).map(|v| *v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `word2index.get(*v).copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter11/mod.rs:657:33 [INFO] [stdout] | [INFO] [stdout] 657 | scores.push((*word, -1.0 * (squared_difference.sum().sqrt()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(squared_difference.sum().sqrt())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | / return _scores_most_common [INFO] [stdout] 249 | | .into_iter() [INFO] [stdout] 250 | | .map(|(idx, _)| idx) [INFO] [stdout] 251 | | .take(3) [INFO] [stdout] 252 | | .map(|idx| &(raw_reviews[idx][0..40])) [INFO] [stdout] 253 | | .collect(); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 248 ~ _scores_most_common [INFO] [stdout] 249 + .into_iter() [INFO] [stdout] 250 + .map(|(idx, _)| idx) [INFO] [stdout] 251 + .take(3) [INFO] [stdout] 252 + .map(|idx| &(raw_reviews[idx][0..40])) [INFO] [stdout] 253 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter12/mod.rs:238:22 [INFO] [stdout] | [INFO] [stdout] 238 | raw_reviews: &'a Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 238 - raw_reviews: &'a Vec, [INFO] [stdout] 238 + raw_reviews: &'a [String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | return &e_x / &e_x.sum_axis(Axis(0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - return &e_x / &e_x.sum_axis(Axis(0)); [INFO] [stdout] 275 + &e_x / &e_x.sum_axis(Axis(0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - m.map(|v| return 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] 54 + m.map(|v| 1.0 / (1.0 + (-1.0 * v).exp())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter12/mod.rs:283:10 [INFO] [stdout] | [INFO] [stdout] 283 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter12/mod.rs:281:28 [INFO] [stdout] | [INFO] [stdout] 281 | let raw: Vec = read_lines(Path::new(BASE_PATH).join(BABI_FILE)) [INFO] [stdout] | ____________________________^ [INFO] [stdout] 282 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | return ab; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return ab; [INFO] [stdout] 73 + ab [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:301:26 [INFO] [stdout] | [INFO] [stdout] 301 | .map(|sent| sent.into_iter().map(|word| &word[..]).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/chapter12/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let vocab = tokens [INFO] [stdout] | _________________^ [INFO] [stdout] 305 | | .iter() [INFO] [stdout] 306 | | .flat_map(|sent| sent) [INFO] [stdout] 307 | | .map(|v| *v) [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 304 ~ let vocab = tokens [INFO] [stdout] 305 + .iter() [INFO] [stdout] 306 + .flat_map(|sent| sent).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/chapter12/mod.rs:306:10 [INFO] [stdout] | [INFO] [stdout] 306 | .flat_map(|sent| sent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 314 - return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] 314 + sentence.into_iter().map(|word| word2index[word]).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | ((&vocab).len(), embed_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter12/mod.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter12/mod.rs:79:36 [INFO] [stdout] | [INFO] [stdout] 79 | let raw_reviews: Vec = read_lines(Path::new(BASE_PATH).join(FILE_REVIEWS)) [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 80 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:331:22 [INFO] [stdout] | [INFO] [stdout] 331 | (embed_size, (&vocab).len()), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:336:43 [INFO] [stdout] | [INFO] [stdout] 336 | let one_hot: Array2 = Array::eye((&vocab).len()); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | return (layers, loss); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return (layers, loss); [INFO] [stdout] 367 + (layers, loss) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter12/mod.rs:339:15 [INFO] [stdout] | [INFO] [stdout] 339 | sent: &Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 339 - sent: &Vec, [INFO] [stdout] 339 + sent: &[usize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `target_i` is only used to index `sent` [INFO] [stdout] --> src/chapter12/mod.rs:350:25 [INFO] [stdout] | [INFO] [stdout] 350 | for target_i in 0..sent.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 350 - for target_i in 0..sent.len() { [INFO] [stdout] 350 + for in &sent { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | ((&vocab).len(), hidden_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:152:41 [INFO] [stdout] | [INFO] [stdout] 152 | let mut weights_1_2 = Array::zeros(((&vocab).len(), hidden_size)); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0` is never greater than `if window < target_i { [INFO] [stdout] target_i - window [INFO] [stdout] } else { [INFO] [stdout] 0 [INFO] [stdout] }` and has therefore no effect [INFO] [stdout] --> src/chapter12/mod.rs:169:40 [INFO] [stdout] | [INFO] [stdout] 169 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 170 | | target_i - window [INFO] [stdout] 171 | | } else { [INFO] [stdout] 172 | | 0 [INFO] [stdout] 173 | | })..target_i]; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 169 ~ let left_context = &review[if window < target_i { [INFO] [stdout] 170 + target_i - window [INFO] [stdout] 171 + } else { [INFO] [stdout] 172 + 0 [INFO] [stdout] 173 ~ }..target_i]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/chapter12/mod.rs:169:46 [INFO] [stdout] | [INFO] [stdout] 169 | let left_context = &review[0.max(if window < target_i { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 170 | | target_i - window [INFO] [stdout] 171 | | } else { [INFO] [stdout] 172 | | 0 [INFO] [stdout] 173 | | })..target_i]; [INFO] [stdout] | |_____________^ help: replace it with: `target_i.saturating_sub(window)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:419:35 [INFO] [stdout] | [INFO] [stdout] 419 | for (layer_idx, layer) in (&layers[1..]).iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `layers[1..]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter12/mod.rs:420:32 [INFO] [stdout] | [INFO] [stdout] 420 | decoder -= &(outer(&(&layers[layer_idx]["hidden"]), &layer["output_delta"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&layers[layer_idx]["hidden"])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter12/mod.rs:427:34 [INFO] [stdout] | [INFO] [stdout] 427 | recurrent -= &(outer(&(&layers[layer_idx]["hidden"]), &layer["hidden_delta"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&layers[layer_idx]["hidden"])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `full_context` [INFO] [stdout] --> src/chapter12/mod.rs:188:22 [INFO] [stdout] | [INFO] [stdout] 188 | for i in 0..full_context.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 188 - for i in 0..full_context.len() { [INFO] [stdout] 188 + for in &full_context { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target_samples` [INFO] [stdout] --> src/chapter12/mod.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | for i in 0..target_samples.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 195 - for i in 0..target_samples.len() { [INFO] [stdout] 195 + for (i, ) in target_samples.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | / return normed_weights [INFO] [stdout] 217 | | .select(Axis(0), &indices) [INFO] [stdout] 218 | | .mean_axis(Axis(0)) [INFO] [stdout] 219 | | .unwrap(); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 216 ~ normed_weights [INFO] [stdout] 217 + .select(Axis(0), &indices) [INFO] [stdout] 218 + .mean_axis(Axis(0)) [INFO] [stdout] 219 ~ .unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:213:14 [INFO] [stdout] | [INFO] [stdout] 213 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/chapter12/mod.rs:214:27 [INFO] [stdout] | [INFO] [stdout] 214 | .flat_map(|v| word2index.get(*v).map(|v| *v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `word2index.get(*v).copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter13/mod.rs:47:51 [INFO] [stdout] | [INFO] [stdout] 47 | fn deriv(&self, grad: &Tensor, creators: &Vec<&Tensor>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&Tensor]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | / return _scores_most_common [INFO] [stdout] 249 | | .into_iter() [INFO] [stdout] 250 | | .map(|(idx, _)| idx) [INFO] [stdout] 251 | | .take(3) [INFO] [stdout] 252 | | .map(|idx| &(raw_reviews[idx][0..40])) [INFO] [stdout] 253 | | .collect(); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 248 ~ _scores_most_common [INFO] [stdout] 249 + .into_iter() [INFO] [stdout] 250 + .map(|(idx, _)| idx) [INFO] [stdout] 251 + .take(3) [INFO] [stdout] 252 + .map(|idx| &(raw_reviews[idx][0..40])) [INFO] [stdout] 253 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter12/mod.rs:238:22 [INFO] [stdout] | [INFO] [stdout] 238 | raw_reviews: &'a Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 238 - raw_reviews: &'a Vec, [INFO] [stdout] 238 + raw_reviews: &'a [String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | return &e_x / &e_x.sum_axis(Axis(0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - return &e_x / &e_x.sum_axis(Axis(0)); [INFO] [stdout] 275 + &e_x / &e_x.sum_axis(Axis(0)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/chapter12/mod.rs:283:10 [INFO] [stdout] | [INFO] [stdout] 283 | .flatten() [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/chapter12/mod.rs:281:28 [INFO] [stdout] | [INFO] [stdout] 281 | let raw: Vec = read_lines(Path::new(BASE_PATH).join(BABI_FILE)) [INFO] [stdout] | ____________________________^ [INFO] [stdout] 282 | | .unwrap() [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:301:26 [INFO] [stdout] | [INFO] [stdout] 301 | .map(|sent| sent.into_iter().map(|word| &word[..]).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/chapter12/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let vocab = tokens [INFO] [stdout] | _________________^ [INFO] [stdout] 305 | | .iter() [INFO] [stdout] 306 | | .flat_map(|sent| sent) [INFO] [stdout] 307 | | .map(|v| *v) [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 304 ~ let vocab = tokens [INFO] [stdout] 305 + .iter() [INFO] [stdout] 306 + .flat_map(|sent| sent).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/chapter12/mod.rs:306:10 [INFO] [stdout] | [INFO] [stdout] 306 | .flat_map(|sent| sent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 314 - return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] 314 + sentence.into_iter().map(|word| word2index[word]).collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter12/mod.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | return sentence.into_iter().map(|word| word2index[word]).collect(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | ((&vocab).len(), embed_size), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:331:22 [INFO] [stdout] | [INFO] [stdout] 331 | (embed_size, (&vocab).len()), [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:336:43 [INFO] [stdout] | [INFO] [stdout] 336 | let one_hot: Array2 = Array::eye((&vocab).len()); [INFO] [stdout] | ^^^^^^^^ help: change this to: `vocab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter12/mod.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | return (layers, loss); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return (layers, loss); [INFO] [stdout] 367 + (layers, loss) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter12/mod.rs:339:15 [INFO] [stdout] | [INFO] [stdout] 339 | sent: &Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 339 - sent: &Vec, [INFO] [stdout] 339 + sent: &[usize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `target_i` is only used to index `sent` [INFO] [stdout] --> src/chapter12/mod.rs:350:25 [INFO] [stdout] | [INFO] [stdout] 350 | for target_i in 0..sent.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 350 - for target_i in 0..sent.len() { [INFO] [stdout] 350 + for in &sent { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return &self.data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 220 - return &self.data; [INFO] [stdout] 220 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 226 - return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] 226 + &grads.grads.get(&self.id).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter13/mod.rs:226:16 [INFO] [stdout] | [INFO] [stdout] 226 | return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `grads.grads.get(&self.id).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return grads; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 303 - return grads; [INFO] [stdout] 303 + grads [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter12/mod.rs:419:35 [INFO] [stdout] | [INFO] [stdout] 419 | for (layer_idx, layer) in (&layers[1..]).iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `layers[1..]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter12/mod.rs:420:32 [INFO] [stdout] | [INFO] [stdout] 420 | decoder -= &(outer(&(&layers[layer_idx]["hidden"]), &layer["output_delta"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&layers[layer_idx]["hidden"])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter12/mod.rs:427:34 [INFO] [stdout] | [INFO] [stdout] 427 | recurrent -= &(outer(&(&layers[layer_idx]["hidden"]), &layer["hidden_delta"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&layers[layer_idx]["hidden"])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> src/chapter13/mod.rs:283:29 [INFO] [stdout] | [INFO] [stdout] 283 | let op: &Box = this.creation_op.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&dyn Operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/chapter13/mod.rs:332:27 [INFO] [stdout] | [INFO] [stdout] 332 | .flat_map(|v| iter::repeat(*v).take(copies)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(*v, copies)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter13/mod.rs:47:51 [INFO] [stdout] | [INFO] [stdout] 47 | fn deriv(&self, grad: &Tensor, creators: &Vec<&Tensor>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&Tensor]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter13/mod.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | let g = (&data).mm(&t0); [INFO] [stdout] | ^^^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return &self.data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 220 - return &self.data; [INFO] [stdout] 220 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 226 - return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] 226 + &grads.grads.get(&self.id).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/chapter13/mod.rs:226:16 [INFO] [stdout] | [INFO] [stdout] 226 | return &grads.grads.get(&self.id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `grads.grads.get(&self.id).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter3/mod.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | i.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter3/mod.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/chapter3/mod.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 52 - .zip(j.into_iter()) [INFO] [stdout] 52 + .zip(&*j) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter3/mod.rs:76:43 [INFO] [stdout] | [INFO] [stdout] 76 | fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] 76 + fn mult_vect_matrix(vect: &Vec, mat: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter13/mod.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return grads; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 303 - return grads; [INFO] [stdout] 303 + grads [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> src/chapter13/mod.rs:283:29 [INFO] [stdout] | [INFO] [stdout] 283 | let op: &Box = this.creation_op.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&dyn Operation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/chapter13/mod.rs:332:27 [INFO] [stdout] | [INFO] [stdout] 332 | .flat_map(|v| iter::repeat(*v).take(copies)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(*v, copies)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/chapter13/mod.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | let g = (&data).mm(&t0); [INFO] [stdout] | ^^^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter3/mod.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | i.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter3/mod.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/chapter3/mod.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 52 - .zip(j.into_iter()) [INFO] [stdout] 52 + .zip(&*j) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter3/mod.rs:76:43 [INFO] [stdout] | [INFO] [stdout] 76 | fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] 76 + fn mult_vect_matrix(vect: &Vec, mat: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | weight = weight - step_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= step_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | weight = weight + step_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight += step_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | weight = weight - direction_and_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= direction_and_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | weight = weight - alpha*derivative; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= alpha*derivative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::f64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import and use the associated constant `f64::MAX` from the primitive type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter5/mod.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | i.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter5/mod.rs:42:16 [INFO] [stdout] | [INFO] [stdout] 42 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/chapter5/mod.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 42 - .zip(j.into_iter()) [INFO] [stdout] 42 + .zip(&*j) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 46 - fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] 46 + fn add(i: &mut [f64], j: &Vec) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 46 - fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] 46 + fn add(i: &mut Vec, j: &[f64]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:55:23 [INFO] [stdout] | [INFO] [stdout] 55 | fn ele_mul(s: f64, v: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 55 - fn ele_mul(s: f64, v: &Vec) -> Vec { [INFO] [stdout] 55 + fn ele_mul(s: f64, v: &[f64]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / return Output { [INFO] [stdout] 96 | | weights, [INFO] [stdout] 97 | | prediction: pred, [INFO] [stdout] 98 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 99 | | error, [INFO] [stdout] 100 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 ~ Output { [INFO] [stdout] 96 + weights, [INFO] [stdout] 97 + prediction: pred, [INFO] [stdout] 98 + iterations: MAX_ITERATIONS, [INFO] [stdout] 99 + error, [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let mut error = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 74 | let mut error = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | let mut pred = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 75 | let mut pred = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:91:41 [INFO] [stdout] | [INFO] [stdout] 91 | let weight_deltas = ele_mul(-1.0 * delta * ALPHA, input); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-delta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | / return Output { [INFO] [stdout] 155 | | weights, [INFO] [stdout] 156 | | prediction: pred, [INFO] [stdout] 157 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 158 | | error, [INFO] [stdout] 159 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 ~ Output { [INFO] [stdout] 155 + weights, [INFO] [stdout] 156 + prediction: pred, [INFO] [stdout] 157 + iterations: MAX_ITERATIONS, [INFO] [stdout] 158 + error, [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | let mut error = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 132 | let mut error = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:133:24 [INFO] [stdout] | [INFO] [stdout] 133 | let mut pred = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 133 | let mut pred = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:149:45 [INFO] [stdout] | [INFO] [stdout] 149 | let mut weight_deltas = ele_mul(-1.0 * delta * ALPHA, input); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-delta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | weight = weight - step_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= step_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | weight = weight + step_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight += step_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | weight = weight - direction_and_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= direction_and_amount` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | / return Output { [INFO] [stdout] 217 | | weights, [INFO] [stdout] 218 | | prediction: pred, [INFO] [stdout] 219 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 220 | | error, [INFO] [stdout] 221 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 216 ~ Output { [INFO] [stdout] 217 + weights, [INFO] [stdout] 218 + prediction: pred, [INFO] [stdout] 219 + iterations: MAX_ITERATIONS, [INFO] [stdout] 220 + error, [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:188:67 [INFO] [stdout] | [INFO] [stdout] 188 | fn solve_weights(input: f64, weights: &Vec, true_values: &Vec) -> Output { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 188 - fn solve_weights(input: f64, weights: &Vec, true_values: &Vec) -> Output { [INFO] [stdout] 188 + fn solve_weights(input: f64, weights: &Vec, true_values: &[f64]) -> Output { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:212:41 [INFO] [stdout] | [INFO] [stdout] 212 | let weight_deltas = ele_mul(-1.0 * input * ALPHA, &delta); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter4/mod.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | weight = weight - alpha*derivative; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight -= alpha*derivative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::f64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import and use the associated constant `f64::MAX` from the primitive type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter5/mod.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | i.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/chapter5/mod.rs:42:16 [INFO] [stdout] | [INFO] [stdout] 42 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/chapter5/mod.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | .zip(j.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 42 - .zip(j.into_iter()) [INFO] [stdout] 42 + .zip(&*j) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 46 - fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] 46 + fn add(i: &mut [f64], j: &Vec) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 46 - fn add(i: &mut Vec, j: &Vec) -> () { [INFO] [stdout] 46 + fn add(i: &mut Vec, j: &[f64]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:55:23 [INFO] [stdout] | [INFO] [stdout] 55 | fn ele_mul(s: f64, v: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 55 - fn ele_mul(s: f64, v: &Vec) -> Vec { [INFO] [stdout] 55 + fn ele_mul(s: f64, v: &[f64]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / return Output { [INFO] [stdout] 96 | | weights, [INFO] [stdout] 97 | | prediction: pred, [INFO] [stdout] 98 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 99 | | error, [INFO] [stdout] 100 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 ~ Output { [INFO] [stdout] 96 + weights, [INFO] [stdout] 97 + prediction: pred, [INFO] [stdout] 98 + iterations: MAX_ITERATIONS, [INFO] [stdout] 99 + error, [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let mut error = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 74 | let mut error = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:250:43 [INFO] [stdout] | [INFO] [stdout] 250 | fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 250 - fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] 250 + fn mult_vect_matrix(vect: &Vec, mat: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | let mut pred = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 75 | let mut pred = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/chapter5/mod.rs:256:14 [INFO] [stdout] | [INFO] [stdout] 256 | for i in 0..(*a).len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 256 - for i in 0..(*a).len() { [INFO] [stdout] 256 + for in a.iter().take((*a).len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:91:41 [INFO] [stdout] | [INFO] [stdout] 91 | let weight_deltas = ele_mul(-1.0 * delta * ALPHA, input); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-delta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `b` [INFO] [stdout] --> src/chapter5/mod.rs:258:18 [INFO] [stdout] | [INFO] [stdout] 258 | for j in 0..(*b).len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 258 - for j in 0..(*b).len() { [INFO] [stdout] 258 + for in b.iter().take((*b).len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:266:53 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:266:15 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 - fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] 266 + fn mat_add(a: &mut [Vec], b: &Vec>) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:266:38 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 - fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] 266 + fn mat_add(a: &mut Vec>, b: &[Vec]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:280:46 [INFO] [stdout] | [INFO] [stdout] 280 | fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:280:27 [INFO] [stdout] | [INFO] [stdout] 280 | fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] 280 + fn ele_mul_mat(s: f64, m: &mut [Vec]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | / return Output { [INFO] [stdout] 155 | | weights, [INFO] [stdout] 156 | | prediction: pred, [INFO] [stdout] 157 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 158 | | error, [INFO] [stdout] 159 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 ~ Output { [INFO] [stdout] 155 + weights, [INFO] [stdout] 156 + prediction: pred, [INFO] [stdout] 157 + iterations: MAX_ITERATIONS, [INFO] [stdout] 158 + error, [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `m` [INFO] [stdout] --> src/chapter5/mod.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 281 | for i in 0..m.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 281 - for i in 0..m.len() { [INFO] [stdout] 281 + for in &mut m { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | let mut error = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 132 | let mut error = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/chapter5/mod.rs:133:24 [INFO] [stdout] | [INFO] [stdout] 133 | let mut pred = MAX; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 133 | let mut pred = f64::MAX; [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter5/mod.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | m[i][j] = m[i][j] * s; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `m[i][j] *= s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:149:45 [INFO] [stdout] | [INFO] [stdout] 149 | let mut weight_deltas = ele_mul(-1.0 * delta * ALPHA, input); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-delta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | / return Output { [INFO] [stdout] 331 | | weights, [INFO] [stdout] 332 | | prediction: pred, [INFO] [stdout] 333 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 334 | | error, [INFO] [stdout] 335 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 ~ Output { [INFO] [stdout] 331 + weights, [INFO] [stdout] 332 + prediction: pred, [INFO] [stdout] 333 + iterations: MAX_ITERATIONS, [INFO] [stdout] 334 + error, [INFO] [stdout] 335 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:300:78 [INFO] [stdout] | [INFO] [stdout] 300 | fn solve_weights(input: &Vec, weights: &Vec>, true_values: &Vec) -> Output { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 300 - fn solve_weights(input: &Vec, weights: &Vec>, true_values: &Vec) -> Output { [INFO] [stdout] 300 + fn solve_weights(input: &Vec, weights: &Vec>, true_values: &[f64]) -> Output { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:325:25 [INFO] [stdout] | [INFO] [stdout] 325 | ele_mul_mat(-1.0 * ALPHA, &mut weight_deltas); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-ALPHA` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | / return Output { [INFO] [stdout] 217 | | weights, [INFO] [stdout] 218 | | prediction: pred, [INFO] [stdout] 219 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 220 | | error, [INFO] [stdout] 221 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 216 ~ Output { [INFO] [stdout] 217 + weights, [INFO] [stdout] 218 + prediction: pred, [INFO] [stdout] 219 + iterations: MAX_ITERATIONS, [INFO] [stdout] 220 + error, [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:188:67 [INFO] [stdout] | [INFO] [stdout] 188 | fn solve_weights(input: f64, weights: &Vec, true_values: &Vec) -> Output { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 188 - fn solve_weights(input: f64, weights: &Vec, true_values: &Vec) -> Output { [INFO] [stdout] 188 + fn solve_weights(input: f64, weights: &Vec, true_values: &[f64]) -> Output { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:212:41 [INFO] [stdout] | [INFO] [stdout] 212 | let weight_deltas = ele_mul(-1.0 * input * ALPHA, &delta); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:250:43 [INFO] [stdout] | [INFO] [stdout] 250 | fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 250 - fn mult_vect_matrix(vect: &Vec, mat: &Vec>) -> Vec { [INFO] [stdout] 250 + fn mult_vect_matrix(vect: &Vec, mat: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/chapter5/mod.rs:256:14 [INFO] [stdout] | [INFO] [stdout] 256 | for i in 0..(*a).len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 256 - for i in 0..(*a).len() { [INFO] [stdout] 256 + for in a.iter().take((*a).len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `b` [INFO] [stdout] --> src/chapter5/mod.rs:258:18 [INFO] [stdout] | [INFO] [stdout] 258 | for j in 0..(*b).len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 258 - for j in 0..(*b).len() { [INFO] [stdout] 258 + for in b.iter().take((*b).len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:266:53 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:266:15 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 - fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] 266 + fn mat_add(a: &mut [Vec], b: &Vec>) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:266:38 [INFO] [stdout] | [INFO] [stdout] 266 | fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 266 - fn mat_add(a: &mut Vec>, b: &Vec>) -> () { [INFO] [stdout] 266 + fn mat_add(a: &mut Vec>, b: &[Vec]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/chapter5/mod.rs:280:46 [INFO] [stdout] | [INFO] [stdout] 280 | fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:280:27 [INFO] [stdout] | [INFO] [stdout] 280 | fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn ele_mul_mat(s: f64, m: &mut Vec>) -> () { [INFO] [stdout] 280 + fn ele_mul_mat(s: f64, m: &mut [Vec]) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `m` [INFO] [stdout] --> src/chapter5/mod.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 281 | for i in 0..m.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 281 - for i in 0..m.len() { [INFO] [stdout] 281 + for in &mut m { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter6/mod.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | weight_delta_for_all_lights = weight_delta_for_all_lights / walk_vs_stop.len() as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight_delta_for_all_lights /= walk_vs_stop.len() as f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | return *v [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 144 - return *v [INFO] [stdout] 144 + *v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | return 0.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return 0.0 [INFO] [stdout] 146 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter5/mod.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | m[i][j] = m[i][j] * s; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `m[i][j] *= s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | return 1.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 - return 1.0 [INFO] [stdout] 154 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | return 0.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return 0.0 [INFO] [stdout] 156 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter5/mod.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | / return Output { [INFO] [stdout] 331 | | weights, [INFO] [stdout] 332 | | prediction: pred, [INFO] [stdout] 333 | | iterations: MAX_ITERATIONS, [INFO] [stdout] 334 | | error, [INFO] [stdout] 335 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 ~ Output { [INFO] [stdout] 331 + weights, [INFO] [stdout] 332 + prediction: pred, [INFO] [stdout] 333 + iterations: MAX_ITERATIONS, [INFO] [stdout] 334 + error, [INFO] [stdout] 335 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/chapter5/mod.rs:300:78 [INFO] [stdout] | [INFO] [stdout] 300 | fn solve_weights(input: &Vec, weights: &Vec>, true_values: &Vec) -> Output { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 300 - fn solve_weights(input: &Vec, weights: &Vec>, true_values: &Vec) -> Output { [INFO] [stdout] 300 + fn solve_weights(input: &Vec, weights: &Vec>, true_values: &[f64]) -> Output { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/chapter5/mod.rs:325:25 [INFO] [stdout] | [INFO] [stdout] 325 | ele_mul_mat(-1.0 * ALPHA, &mut weight_deltas); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using: `-ALPHA` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] 62 + m.map(|v| if *v > 0.0 { *v } else { return 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:62:48 [INFO] [stdout] | [INFO] [stdout] 62 | m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] 62 + m.map(|v| if *v > 0.0 { return *v } else { 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] 68 + m.map(|v| if *v > 0.0 { 1.0 } else { return 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:68:49 [INFO] [stdout] | [INFO] [stdout] 68 | m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] 68 + m.map(|v| if *v > 0.0 { return 1.0 } else { 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/chapter6/mod.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | weight_delta_for_all_lights = weight_delta_for_all_lights / walk_vs_stop.len() as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight_delta_for_all_lights /= walk_vs_stop.len() as f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | return *v [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 144 - return *v [INFO] [stdout] 144 + *v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | return 0.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return 0.0 [INFO] [stdout] 146 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | return 1.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 - return 1.0 [INFO] [stdout] 154 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter6/mod.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | return 0.0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return 0.0 [INFO] [stdout] 156 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] 62 + m.map(|v| if *v > 0.0 { *v } else { return 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:62:48 [INFO] [stdout] | [INFO] [stdout] 62 | m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - m.map(|v| if *v > 0.0 { return *v } else { return 0.0 }) [INFO] [stdout] 62 + m.map(|v| if *v > 0.0 { return *v } else { 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] 68 + m.map(|v| if *v > 0.0 { 1.0 } else { return 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter8/mod.rs:68:49 [INFO] [stdout] | [INFO] [stdout] 68 | m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - m.map(|v| if *v > 0.0 { return 1.0 } else { return 0.0 }) [INFO] [stdout] 68 + m.map(|v| if *v > 0.0 { return 1.0 } else { 0.0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:259:17 [INFO] [stdout] | [INFO] [stdout] 259 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:259:17 [INFO] [stdout] | [INFO] [stdout] 259 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:452:17 [INFO] [stdout] | [INFO] [stdout] 452 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:576:17 [INFO] [stdout] | [INFO] [stdout] 576 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:452:17 [INFO] [stdout] | [INFO] [stdout] 452 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter8/mod.rs:666:31 [INFO] [stdout] | [INFO] [stdout] 666 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 667 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 666 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 667 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:706:17 [INFO] [stdout] | [INFO] [stdout] 706 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:708:17 [INFO] [stdout] | [INFO] [stdout] 708 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:576:17 [INFO] [stdout] | [INFO] [stdout] 576 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter8/mod.rs:666:31 [INFO] [stdout] | [INFO] [stdout] 666 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 667 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 666 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 667 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter8/mod.rs:803:31 [INFO] [stdout] | [INFO] [stdout] 803 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 804 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 803 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 804 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:837:17 [INFO] [stdout] | [INFO] [stdout] 837 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:706:17 [INFO] [stdout] | [INFO] [stdout] 706 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:708:17 [INFO] [stdout] | [INFO] [stdout] 708 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:839:17 [INFO] [stdout] | [INFO] [stdout] 839 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | m.map(|v| return v.tanh()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - m.map(|v| return v.tanh()) [INFO] [stdout] 30 + m.map(|v| v.tanh()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 36 - m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] 36 + m.map(|v| 1.0 - v.powi(2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return temp / sum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return temp / sum; [INFO] [stdout] 44 + temp / sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter8/mod.rs:803:31 [INFO] [stdout] | [INFO] [stdout] 803 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 804 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 803 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 804 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter9/mod.rs:124:31 [INFO] [stdout] | [INFO] [stdout] 124 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 125 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 124 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 125 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:837:17 [INFO] [stdout] | [INFO] [stdout] 837 | layer_2_error as f64 / train_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/chapter8/mod.rs:839:17 [INFO] [stdout] | [INFO] [stdout] 839 | test_layer_2_error as f64 / test_image_count as f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_layer_2_error` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | m.map(|v| return v.tanh()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - m.map(|v| return v.tanh()) [INFO] [stdout] 30 + m.map(|v| v.tanh()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 36 - m.map(|v| return 1.0 - v.powi(2)) [INFO] [stdout] 36 + m.map(|v| 1.0 - v.powi(2)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chapter9/mod.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return temp / sum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return temp / sum; [INFO] [stdout] 44 + temp / sum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)` [INFO] [stdout] --> src/utils/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / fs::create_dir_all(&download_dir).or_else(|e| { [INFO] [stdout] 39 | | Err(format!( [INFO] [stdout] 40 | | "Failed to create directory {:?}: {:?}", [INFO] [stdout] 41 | | download_dir, e [INFO] [stdout] 42 | | )) [INFO] [stdout] 43 | | })?; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 38 ~ fs::create_dir_all(&download_dir).map_err(|e| format!( [INFO] [stdout] 39 + "Failed to create directory {:?}: {:?}", [INFO] [stdout] 40 + download_dir, e [INFO] [stdout] 41 ~ ))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/utils/mod.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | .expect(&format!("Couldn't get metadata on {:?}", file_name)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Couldn't get metadata on {:?}", file_name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/mod.rs:91:18 [INFO] [stdout] | [INFO] [stdout] 91 | easy.url(&url.to_str().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `url.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/chapter9/mod.rs:124:31 [INFO] [stdout] | [INFO] [stdout] 124 | let correct = &layer_2.row(k).argmax().unwrap() [INFO] [stdout] | _______________________________^ [INFO] [stdout] 125 | | == &labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 124 ~ let correct = layer_2.row(k).argmax().unwrap() [INFO] [stdout] 125 ~ == labels.row(batch_start + k).argmax().unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/chapter13/mod.rs:327:25 [INFO] [stdout] | [INFO] [stdout] 327 | let new_shape = vec![self.data.dim().as_array_view().to_vec(), vec![copies]].concat(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[self.data.dim().as_array_view().to_vec(), vec![copies]]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | fn deriv(&self, grad: &Tensor, creators: &Vec<&Tensor>) [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 48 | -> HashMap>; [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 48 | -> HashMap>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 69 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 69 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 83 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 83 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 94 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 94 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)` [INFO] [stdout] --> src/utils/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / fs::create_dir_all(&download_dir).or_else(|e| { [INFO] [stdout] 39 | | Err(format!( [INFO] [stdout] 40 | | "Failed to create directory {:?}: {:?}", [INFO] [stdout] 41 | | download_dir, e [INFO] [stdout] 42 | | )) [INFO] [stdout] 43 | | })?; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 38 ~ fs::create_dir_all(&download_dir).map_err(|e| format!( [INFO] [stdout] 39 + "Failed to create directory {:?}: {:?}", [INFO] [stdout] 40 + download_dir, e [INFO] [stdout] 41 ~ ))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 108 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 108 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 128 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 128 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `g_t__mm__act` should have a snake case name [INFO] [stdout] --> src/chapter13/mod.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | let g_t__mm__act = g_t.mm(act); [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `g_t_mm_act` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 149 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 149 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 163 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 163 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 176 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 176 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:229:22 [INFO] [stdout] | [INFO] [stdout] 229 | pub fn backwards(&self, grad: &Tensor<'a, f64>) -> Gradients { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 229 | pub fn backwards(&self, grad: &Tensor<'a, f64>) -> Gradients<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/utils/mod.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | .expect(&format!("Couldn't get metadata on {:?}", file_name)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("Couldn't get metadata on {:?}", file_name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils/mod.rs:91:18 [INFO] [stdout] | [INFO] [stdout] 91 | easy.url(&url.to_str().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `url.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/chapter13/mod.rs:327:25 [INFO] [stdout] | [INFO] [stdout] 327 | let new_shape = vec![self.data.dim().as_array_view().to_vec(), vec![copies]].concat(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[self.data.dim().as_array_view().to_vec(), vec![copies]]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | fn deriv(&self, grad: &Tensor, creators: &Vec<&Tensor>) [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 48 | -> HashMap>; [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 48 | -> HashMap>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 69 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 69 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 83 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 83 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 94 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 94 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 108 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 108 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 128 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 128 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `g_t__mm__act` should have a snake case name [INFO] [stdout] --> src/chapter13/mod.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | let g_t__mm__act = g_t.mm(act); [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `g_t_mm_act` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 149 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 149 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 163 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 163 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 176 | ) -> HashMap> { [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 176 | ) -> HashMap> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/chapter13/mod.rs:229:22 [INFO] [stdout] | [INFO] [stdout] 229 | pub fn backwards(&self, grad: &Tensor<'a, f64>) -> Gradients { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 229 | pub fn backwards(&self, grad: &Tensor<'a, f64>) -> Gradients<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s [INFO] running `Command { std: "docker" "inspect" "6da5875c2817b5d627b2487514fcff3f5d0e860b1bfea380445b91bbf6e5232b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6da5875c2817b5d627b2487514fcff3f5d0e860b1bfea380445b91bbf6e5232b", kill_on_drop: false }` [INFO] [stdout] 6da5875c2817b5d627b2487514fcff3f5d0e860b1bfea380445b91bbf6e5232b