[INFO] fetching crate liblbfgs 0.1.0... [INFO] linting liblbfgs-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate liblbfgs 0.1.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate liblbfgs 0.1.0 [INFO] finished tweaking crates.io crate liblbfgs 0.1.0 [INFO] tweaked toml for crates.io crate liblbfgs 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate liblbfgs 0.1.0 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 crates.io crate liblbfgs 0.1.0 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] Downloading crates ... [INFO] [stderr] Downloaded plotters-backend v0.3.4 [INFO] [stderr] Downloaded serde_derive v1.0.142 [INFO] [stderr] Downloaded anyhow v1.0.60 [INFO] [stderr] Downloaded itoa v1.0.3 [INFO] [stderr] Downloaded plotters-svg v0.3.2 [INFO] [stderr] Downloaded serde v1.0.142 [INFO] [stderr] Downloaded plotters v0.3.2 [INFO] [stderr] Downloaded libc v0.2.127 [INFO] [stderr] Downloaded serde_json v1.0.83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 1466fc0177c36894e52d31664d0abe34f644508f83d54ab339a66bd76f7159db [INFO] running `Command { std: "docker" "start" "-a" "1466fc0177c36894e52d31664d0abe34f644508f83d54ab339a66bd76f7159db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1466fc0177c36894e52d31664d0abe34f644508f83d54ab339a66bd76f7159db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1466fc0177c36894e52d31664d0abe34f644508f83d54ab339a66bd76f7159db", kill_on_drop: false }` [INFO] [stdout] 1466fc0177c36894e52d31664d0abe34f644508f83d54ab339a66bd76f7159db [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] ec5915a4ba24623e0ab4982563edce2414c2da2ff38711e4b9d1a44bb0a09b4d [INFO] running `Command { std: "docker" "start" "-a" "ec5915a4ba24623e0ab4982563edce2414c2da2ff38711e4b9d1a44bb0a09b4d", kill_on_drop: false }` [INFO] [stderr] Compiling crossbeam-utils v0.8.11 [INFO] [stderr] Compiling serde v1.0.142 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking once_cell v1.13.0 [INFO] [stderr] Compiling libc v0.2.127 [INFO] [stderr] Compiling crossbeam-epoch v0.9.10 [INFO] [stderr] Compiling proc-macro2 v1.0.43 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling rayon-core v1.9.3 [INFO] [stderr] Compiling unicode-ident v1.0.3 [INFO] [stderr] Checking either v1.7.0 [INFO] [stderr] Compiling syn v1.0.99 [INFO] [stderr] Checking ryu v1.0.11 [INFO] [stderr] Compiling serde_json v1.0.83 [INFO] [stderr] Compiling rayon v1.5.3 [INFO] [stderr] Checking itoa v1.0.3 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking plotters-backend v0.3.4 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling serde_derive v1.0.142 [INFO] [stderr] Compiling anyhow v1.0.60 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking half v1.8.2 [INFO] [stderr] Checking plotters-svg v0.3.2 [INFO] [stderr] Checking regex-syntax v0.6.27 [INFO] [stderr] Checking itoa v0.4.8 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking crossbeam-channel v0.5.6 [INFO] [stderr] Checking oorandom v11.1.3 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking liblbfgs v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking crossbeam-deque v0.8.2 [INFO] [stdout] warning: unused import: `crate::math::*` [INFO] [stdout] --> src/line.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | use crate::math::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: private item shadows public glob re-export [INFO] [stdout] --> src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | use crate::lbfgs::Lbfgs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the name `Lbfgs` in the type namespace is supposed to be publicly re-exported here [INFO] [stdout] --> src/lib.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub use crate::lbfgs::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] note: but the private item here shadows it [INFO] [stdout] --> src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | use crate::lbfgs::Lbfgs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(hidden_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling quote v1.0.21 [INFO] [stdout] warning: field `pf` is never read [INFO] [stdout] --> src/lbfgs.rs:867:5 [INFO] [stdout] | [INFO] [stdout] 854 | pub struct LbfgsState<'a, E> [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 867 | pf: Vec, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `satisfying_max_gnorm` is never used [INFO] [stdout] --> src/lbfgs.rs:1190:4 [INFO] [stdout] | [INFO] [stdout] 1190 | fn satisfying_max_gnorm(prgr: &Progress, max_gnorm: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `satisfying_delta` is never used [INFO] [stdout] --> src/lbfgs.rs:1206:4 [INFO] [stdout] | [INFO] [stdout] 1206 | fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:291:34 [INFO] [stdout] | [INFO] [stdout] 291 | self.fx = (self.eval_fn)(&self.x, &mut self.gx)?; [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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 creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:296:37 [INFO] [stdout] | [INFO] [stdout] 296 | self.fx += owlqn.x1norm(&self.x) [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:323:33 [INFO] [stdout] | [INFO] [stdout] 323 | self.x.clone_from_slice(&src.x); [INFO] [stdout] | ^^^^^^ help: change this to: `src.x` [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/lbfgs.rs:339:27 [INFO] [stdout] | [INFO] [stdout] 339 | owlqn.project(&mut self.x, &self.xp, &self.gp); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:369:24 [INFO] [stdout] | [INFO] [stdout] 369 | self.xp.veccpy(&self.x); [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:383:49 [INFO] [stdout] | [INFO] [stdout] 383 | owlqn.pseudo_gradient(&mut self.pg, &self.x, &self.gx); [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:428:16 [INFO] [stdout] | [INFO] [stdout] 428 | x: &prb.x, [INFO] [stdout] | ^^^^^^ help: change this to: `prb.x` [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 `x` [INFO] [stdout] --> src/lbfgs.rs:537:18 [INFO] [stdout] | [INFO] [stdout] 537 | for i in start..end { [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] 537 - for i in start..end { [INFO] [stdout] 537 + for in x.iter().take(end).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lbfgs.rs:550:9 [INFO] [stdout] | [INFO] [stdout] 550 | / for i in 0..start { [INFO] [stdout] 551 | | pg[i] = g[i]; [INFO] [stdout] 552 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `pg[..start].copy_from_slice(&g[..start]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lbfgs.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | / for i in end..g.len() { [INFO] [stdout] 575 | | pg[i] = g[i]; [INFO] [stdout] 576 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `pg[end..g.len()].copy_from_slice(&g[end..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/lbfgs.rs:695:13 [INFO] [stdout] | [INFO] [stdout] 695 | gtol >= 0.0 && gtol < 1.0 && gtol > self.param.linesearch.ftol, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..1.0).contains(>ol)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Orthantwise` which implements the `Copy` trait [INFO] [stdout] --> src/lbfgs.rs:885:18 [INFO] [stdout] | [INFO] [stdout] 885 | Some(param.owlqn.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `param.owlqn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `LbfgsParam` which implements the `Copy` trait [INFO] [stdout] --> src/lbfgs.rs:911:19 [INFO] [stdout] | [INFO] [stdout] 911 | vars: self.param.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.param` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/lbfgs.rs:936:9 [INFO] [stdout] | [INFO] [stdout] 935 | let converged = satisfying_stop_conditions(&self.vars, prgr); [INFO] [stdout] | ------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 936 | converged [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 935 ~ [INFO] [stdout] 936 ~ satisfying_stop_conditions(&self.vars, prgr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:970:13 [INFO] [stdout] | [INFO] [stdout] 970 | &problem.x, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `problem.x` [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/lbfgs.rs:999:23 [INFO] [stdout] | [INFO] [stdout] 999 | Progress::new(&problem, self.k, self.ncall, self.step) [INFO] [stdout] | ^^^^^^^^ help: change this to: `problem` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1021:30 [INFO] [stdout] | [INFO] [stdout] 1021 | let it = &mut lm_arr[j as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `j` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:1024:32 [INFO] [stdout] | [INFO] [stdout] 1024 | it.alpha = it.s.vecdot(&d) / it.ys; [INFO] [stdout] | ^^ help: change this to: `d` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1032:30 [INFO] [stdout] | [INFO] [stdout] 1032 | let it = &mut lm_arr[j as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `j` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lbfgs.rs:1206:21 [INFO] [stdout] | [INFO] [stdout] 1206 | fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 1206 - fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] 1206 + fn satisfying_delta(prgr: &Progress, pf: &mut [f64], delta: f64) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1217:24 [INFO] [stdout] | [INFO] [stdout] 1217 | let rate = (pf[(k % past) as usize] - fx).abs() / fx; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `((k % past))` [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 (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1225:8 [INFO] [stdout] | [INFO] [stdout] 1225 | pf[(k % past) as usize] = fx; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `((k % past))` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/line.rs:217:52 [INFO] [stdout] | [INFO] [stdout] 217 | line_search_morethuente(prb, step, &self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/line.rs:222:49 [INFO] [stdout] | [INFO] [stdout] 222 | line_search_backtracking(prb, step, &self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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 boolean expression can be simplified [INFO] [stdout] --> src/line.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 296 | if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] | ____________^ [INFO] [stdout] 297 | | || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 296 - if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] 297 - || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] 296 + if !(!brackt || *stp > stmin && stmax > *stp && param.max_linesearch > count + 1 && uinfo == 0 && stmax - stmin > param.xtol * stmax) [INFO] [stdout] | [INFO] [stdout] 296 - if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] 297 - || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] 296 + if (stmax - stmin <= param.xtol * stmax || uinfo != 0 || param.max_linesearch <= count + 1 || stmax <= *stp || *stp <= stmin) && brackt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | /// derivative at the best step obtained so far. The derivative must be [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 446 | /// derivative at the best step obtained so far. The derivative must be [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:447:9 [INFO] [stdout] | [INFO] [stdout] 447 | /// negative in the direction of the step, that is, dx and t-x must have [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 447 | /// negative in the direction of the step, that is, dx and t-x must have [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:448:9 [INFO] [stdout] | [INFO] [stdout] 448 | /// opposite signs. On output these parameters are updated appropriately. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 448 | /// opposite signs. On output these parameters are updated appropriately. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:451:9 [INFO] [stdout] | [INFO] [stdout] 451 | /// the derivative at the other endpoint of the interval of uncertainty. On [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 451 | /// the derivative at the other endpoint of the interval of uncertainty. On [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | /// output these parameters are updated appropriately. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 452 | /// output these parameters are updated appropriately. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | /// derivative at the current step. If bracket is set true then on input t [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 455 | /// derivative at the current step. If bracket is set true then on input t [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | /// must be between x and y. On output t is set to the new step. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 456 | /// must be between x and y. On output t is set to the new step. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | /// minimizer has not been bracketed then on input brackt must be set false. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 461 | /// minimizer has not been bracketed then on input brackt must be set false. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:462:9 [INFO] [stdout] | [INFO] [stdout] 462 | /// If the minimizer is bracketed then on output `brackt` is set true. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 462 | /// If the minimizer is bracketed then on output `brackt` is set true. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/line.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | / pub(crate) fn update_trial_interval( [INFO] [stdout] 468 | | x: &mut f64, [INFO] [stdout] 469 | | fx: &mut f64, [INFO] [stdout] 470 | | dx: &mut f64, [INFO] [stdout] ... | [INFO] [stdout] 479 | | brackt: &mut bool, [INFO] [stdout] 480 | | ) -> Result { [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/line.rs:675:1 [INFO] [stdout] | [INFO] [stdout] 675 | fn cubic_minimizer2(cm: &mut f64, u: f64, fu: f64, du: f64, v: f64, fv: f64, dv: f64, xmin: f64, xmax: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/math.rs:77:30 [INFO] [stdout] | [INFO] [stdout] 77 | let n2 = self.vecdot(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lbfgs.rs:946:22 [INFO] [stdout] | [INFO] [stdout] 946 | pub fn propagate(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided 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] 946 | pub fn propagate(&mut self) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lbfgs.rs:997:21 [INFO] [stdout] | [INFO] [stdout] 997 | fn get_progress(&self) -> Progress { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided 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] 997 | fn get_progress(&self) -> Progress<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ordered-float v2.10.0 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking plotters v0.3.2 [INFO] [stderr] Checking vecfx v0.1.5 [INFO] [stderr] Checking criterion-plot v0.4.5 [INFO] [stderr] Checking regex v1.6.0 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking serde_cbor v0.11.2 [INFO] [stderr] Checking csv v1.1.6 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.3.6 [INFO] [stdout] warning: unused import: `Progress` [INFO] [stdout] --> examples/lj.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | use liblbfgs::{lbfgs, Progress}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> examples/sample.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | let mut x = [0.0 as f64; N]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [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: variable does not need to be mutable [INFO] [stdout] --> examples/lj.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | let mut lj = LennardJones::default(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/sample.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `forces` [INFO] [stdout] --> examples/lj.rs:42:18 [INFO] [stdout] | [INFO] [stdout] 42 | for i in 0..n { [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] 42 - for i in 0..n { [INFO] [stdout] 42 + for in forces.iter_mut().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `forces` [INFO] [stdout] --> examples/lj.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 43 | for j in 0..3 { [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] 43 - for j in 0..3 { [INFO] [stdout] 43 + for in forces.iter_mut().take(3) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::math::*` [INFO] [stdout] --> src/line.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | use crate::math::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> examples/lj.rs:58:37 [INFO] [stdout] | [INFO] [stdout] 58 | forces[j][k] += -1.0 * g * dr / r; [INFO] [stdout] | ^^^^^^^^ help: consider using: `-g` [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: private item shadows public glob re-export [INFO] [stdout] --> src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | use crate::lbfgs::Lbfgs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the name `Lbfgs` in the type namespace is supposed to be publicly re-exported here [INFO] [stdout] --> src/lib.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub use crate::lbfgs::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] note: but the private item here shadows it [INFO] [stdout] --> src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | use crate::lbfgs::Lbfgs; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(hidden_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/lj.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> examples/lj.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / lbfgs().minimize( [INFO] [stdout] 113 | | &mut positions, [INFO] [stdout] 114 | | |x: &[f64], gx: &mut [f64]| { [INFO] [stdout] 115 | | let energy = lj.evaluate(x.as_3d(), gx.as_mut_3d()); [INFO] [stdout] ... | [INFO] [stdout] 127 | | }, [INFO] [stdout] 128 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 112 | let _ = lbfgs().minimize( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> benches/rosenbrock.rs:50:53 [INFO] [stdout] | [INFO] [stdout] 50 | c.bench_function("rosenbrock lbfgs", |b| b.iter(|| rosenbrock())); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `rosenbrock` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Progress` [INFO] [stdout] --> tests/rosenbrock.rs:25:63 [INFO] [stdout] | [INFO] [stdout] 25 | use liblbfgs::{default_evaluate, default_progress, lbfgs, Progress}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> tests/rosenbrock.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | let mut x = [0.0 as f64; N]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [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: the loop variable `i` is only used to index `x` [INFO] [stdout] --> tests/rosenbrock.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | for i in 0..N { [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] 45 - for i in 0..N { [INFO] [stdout] 45 + for in x.iter().take(N) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pf` is never read [INFO] [stdout] --> src/lbfgs.rs:867:5 [INFO] [stdout] | [INFO] [stdout] 854 | pub struct LbfgsState<'a, E> [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 867 | pf: Vec, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `satisfying_max_gnorm` is never used [INFO] [stdout] --> src/lbfgs.rs:1190:4 [INFO] [stdout] | [INFO] [stdout] 1190 | fn satisfying_max_gnorm(prgr: &Progress, max_gnorm: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `satisfying_delta` is never used [INFO] [stdout] --> src/lbfgs.rs:1206:4 [INFO] [stdout] | [INFO] [stdout] 1206 | fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:291:34 [INFO] [stdout] | [INFO] [stdout] 291 | self.fx = (self.eval_fn)(&self.x, &mut self.gx)?; [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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 creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:296:37 [INFO] [stdout] | [INFO] [stdout] 296 | self.fx += owlqn.x1norm(&self.x) [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:323:33 [INFO] [stdout] | [INFO] [stdout] 323 | self.x.clone_from_slice(&src.x); [INFO] [stdout] | ^^^^^^ help: change this to: `src.x` [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/lbfgs.rs:339:27 [INFO] [stdout] | [INFO] [stdout] 339 | owlqn.project(&mut self.x, &self.xp, &self.gp); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:369:24 [INFO] [stdout] | [INFO] [stdout] 369 | self.xp.veccpy(&self.x); [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:383:49 [INFO] [stdout] | [INFO] [stdout] 383 | owlqn.pseudo_gradient(&mut self.pg, &self.x, &self.gx); [INFO] [stdout] | ^^^^^^^ help: change this to: `self.x` [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/lbfgs.rs:428:16 [INFO] [stdout] | [INFO] [stdout] 428 | x: &prb.x, [INFO] [stdout] | ^^^^^^ help: change this to: `prb.x` [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 `x` [INFO] [stdout] --> src/lbfgs.rs:537:18 [INFO] [stdout] | [INFO] [stdout] 537 | for i in start..end { [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] 537 - for i in start..end { [INFO] [stdout] 537 + for in x.iter().take(end).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lbfgs.rs:550:9 [INFO] [stdout] | [INFO] [stdout] 550 | / for i in 0..start { [INFO] [stdout] 551 | | pg[i] = g[i]; [INFO] [stdout] 552 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `pg[..start].copy_from_slice(&g[..start]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lbfgs.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | / for i in end..g.len() { [INFO] [stdout] 575 | | pg[i] = g[i]; [INFO] [stdout] 576 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `pg[end..g.len()].copy_from_slice(&g[end..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/lbfgs.rs:695:13 [INFO] [stdout] | [INFO] [stdout] 695 | gtol >= 0.0 && gtol < 1.0 && gtol > self.param.linesearch.ftol, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..1.0).contains(>ol)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Orthantwise` which implements the `Copy` trait [INFO] [stdout] --> src/lbfgs.rs:885:18 [INFO] [stdout] | [INFO] [stdout] 885 | Some(param.owlqn.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `param.owlqn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `LbfgsParam` which implements the `Copy` trait [INFO] [stdout] --> src/lbfgs.rs:911:19 [INFO] [stdout] | [INFO] [stdout] 911 | vars: self.param.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.param` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/lbfgs.rs:936:9 [INFO] [stdout] | [INFO] [stdout] 935 | let converged = satisfying_stop_conditions(&self.vars, prgr); [INFO] [stdout] | ------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 936 | converged [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 935 ~ [INFO] [stdout] 936 ~ satisfying_stop_conditions(&self.vars, prgr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:970:13 [INFO] [stdout] | [INFO] [stdout] 970 | &problem.x, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `problem.x` [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/lbfgs.rs:999:23 [INFO] [stdout] | [INFO] [stdout] 999 | Progress::new(&problem, self.k, self.ncall, self.step) [INFO] [stdout] | ^^^^^^^^ help: change this to: `problem` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1021:30 [INFO] [stdout] | [INFO] [stdout] 1021 | let it = &mut lm_arr[j as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `j` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lbfgs.rs:1024:32 [INFO] [stdout] | [INFO] [stdout] 1024 | it.alpha = it.s.vecdot(&d) / it.ys; [INFO] [stdout] | ^^ help: change this to: `d` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1032:30 [INFO] [stdout] | [INFO] [stdout] 1032 | let it = &mut lm_arr[j as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: try: `j` [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: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lbfgs.rs:1206:21 [INFO] [stdout] | [INFO] [stdout] 1206 | fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 1206 - fn satisfying_delta<'a>(prgr: &Progress, pf: &'a mut [f64], delta: f64) -> bool { [INFO] [stdout] 1206 + fn satisfying_delta(prgr: &Progress, pf: &mut [f64], delta: f64) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1217:24 [INFO] [stdout] | [INFO] [stdout] 1217 | let rate = (pf[(k % past) as usize] - fx).abs() / fx; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `((k % past))` [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 (`usize` -> `usize`) [INFO] [stdout] --> src/lbfgs.rs:1225:8 [INFO] [stdout] | [INFO] [stdout] 1225 | pf[(k % past) as usize] = fx; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `((k % past))` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/line.rs:217:52 [INFO] [stdout] | [INFO] [stdout] 217 | line_search_morethuente(prb, step, &self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/line.rs:222:49 [INFO] [stdout] | [INFO] [stdout] 222 | line_search_backtracking(prb, step, &self) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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 boolean expression can be simplified [INFO] [stdout] --> src/line.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 296 | if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] | ____________^ [INFO] [stdout] 297 | | || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 296 - if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] 297 - || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] 296 + if !(!brackt || *stp > stmin && stmax > *stp && param.max_linesearch > count + 1 && uinfo == 0 && stmax - stmin > param.xtol * stmax) [INFO] [stdout] | [INFO] [stdout] 296 - if brackt && (*stp <= stmin || stmax <= *stp || param.max_linesearch <= count + 1 || uinfo != 0) [INFO] [stdout] 297 - || brackt && stmax - stmin <= param.xtol * stmax [INFO] [stdout] 296 + if (stmax - stmin <= param.xtol * stmax || uinfo != 0 || param.max_linesearch <= count + 1 || stmax <= *stp || *stp <= stmin) && brackt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | /// derivative at the best step obtained so far. The derivative must be [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 446 | /// derivative at the best step obtained so far. The derivative must be [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:447:9 [INFO] [stdout] | [INFO] [stdout] 447 | /// negative in the direction of the step, that is, dx and t-x must have [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 447 | /// negative in the direction of the step, that is, dx and t-x must have [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:448:9 [INFO] [stdout] | [INFO] [stdout] 448 | /// opposite signs. On output these parameters are updated appropriately. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 448 | /// opposite signs. On output these parameters are updated appropriately. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:451:9 [INFO] [stdout] | [INFO] [stdout] 451 | /// the derivative at the other endpoint of the interval of uncertainty. On [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 451 | /// the derivative at the other endpoint of the interval of uncertainty. On [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | /// output these parameters are updated appropriately. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 452 | /// output these parameters are updated appropriately. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | /// derivative at the current step. If bracket is set true then on input t [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 455 | /// derivative at the current step. If bracket is set true then on input t [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | /// must be between x and y. On output t is set to the new step. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 456 | /// must be between x and y. On output t is set to the new step. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | /// minimizer has not been bracketed then on input brackt must be set false. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 461 | /// minimizer has not been bracketed then on input brackt must be set false. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/line.rs:462:9 [INFO] [stdout] | [INFO] [stdout] 462 | /// If the minimizer is bracketed then on output `brackt` is set true. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 462 | /// If the minimizer is bracketed then on output `brackt` is set true. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/line.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | / pub(crate) fn update_trial_interval( [INFO] [stdout] 468 | | x: &mut f64, [INFO] [stdout] 469 | | fx: &mut f64, [INFO] [stdout] 470 | | dx: &mut f64, [INFO] [stdout] ... | [INFO] [stdout] 479 | | brackt: &mut bool, [INFO] [stdout] 480 | | ) -> Result { [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/line.rs:675:1 [INFO] [stdout] | [INFO] [stdout] 675 | fn cubic_minimizer2(cm: &mut f64, u: f64, fu: f64, du: f64, v: f64, fv: f64, dv: f64, xmin: f64, xmax: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/math.rs:77:30 [INFO] [stdout] | [INFO] [stdout] 77 | let n2 = self.vecdot(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: using `clone` on type `[f64; 3]` which implements the `Copy` trait [INFO] [stdout] --> src/math.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let mut z = y.clone(); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lbfgs.rs:946:22 [INFO] [stdout] | [INFO] [stdout] 946 | pub fn propagate(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided 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] 946 | pub fn propagate(&mut self) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lbfgs.rs:997:21 [INFO] [stdout] | [INFO] [stdout] 997 | fn get_progress(&self) -> Progress { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided 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] 997 | fn get_progress(&self) -> Progress<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.53s [INFO] running `Command { std: "docker" "inspect" "ec5915a4ba24623e0ab4982563edce2414c2da2ff38711e4b9d1a44bb0a09b4d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec5915a4ba24623e0ab4982563edce2414c2da2ff38711e4b9d1a44bb0a09b4d", kill_on_drop: false }` [INFO] [stdout] ec5915a4ba24623e0ab4982563edce2414c2da2ff38711e4b9d1a44bb0a09b4d