[INFO] updating cached repository mohas556/cassowaryr [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mohas556/cassowaryr [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mohas556/cassowaryr" "work/ex/clippy-test-run/sources/stable/gh/mohas556/cassowaryr"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mohas556/cassowaryr'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mohas556/cassowaryr" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mohas556/cassowaryr"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mohas556/cassowaryr'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b4c9c281eefe247c2731a22c003220e2475e5629 [INFO] sha for GitHub repo mohas556/cassowaryr: b4c9c281eefe247c2731a22c003220e2475e5629 [INFO] validating manifest of mohas556/cassowaryr on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mohas556/cassowaryr on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mohas556/cassowaryr [INFO] finished frobbing mohas556/cassowaryr [INFO] frobbed toml for mohas556/cassowaryr written to work/ex/clippy-test-run/sources/stable/gh/mohas556/cassowaryr/Cargo.toml [INFO] started frobbing mohas556/cassowaryr [INFO] finished frobbing mohas556/cassowaryr [INFO] frobbed toml for mohas556/cassowaryr written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mohas556/cassowaryr/Cargo.toml [INFO] crate mohas556/cassowaryr has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mohas556/cassowaryr against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/mohas556/cassowaryr:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 9fdd0f9d387f0e8cc657ec16751f57ba049d7a28db2e7ae6921916933e055363 [INFO] running `"docker" "start" "-a" "9fdd0f9d387f0e8cc657ec16751f57ba049d7a28db2e7ae6921916933e055363"` [INFO] [stderr] Checking cassowaryr v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:142:33 [INFO] [stderr] | [INFO] [stderr] 142 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:225:33 [INFO] [stderr] | [INFO] [stderr] 225 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:440:25 [INFO] [stderr] | [INFO] [stderr] 440 | constant: constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:452:25 [INFO] [stderr] | [INFO] [stderr] 452 | constant: constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:821:17 [INFO] [stderr] | [INFO] [stderr] 821 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:822:17 [INFO] [stderr] | [INFO] [stderr] 822 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:825:58 [INFO] [stderr] | [INFO] [stderr] 825 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:835:25 [INFO] [stderr] | [INFO] [stderr] 835 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:836:25 [INFO] [stderr] | [INFO] [stderr] 836 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:839:62 [INFO] [stderr] | [INFO] [stderr] 839 | behaviour: ConstraintBehaviour::Edit{var: var, expr: expr}, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `var` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:839:72 [INFO] [stderr] | [INFO] [stderr] 839 | behaviour: ConstraintBehaviour::Edit{var: var, expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:845:25 [INFO] [stderr] | [INFO] [stderr] 845 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:846:25 [INFO] [stderr] | [INFO] [stderr] 846 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:856:25 [INFO] [stderr] | [INFO] [stderr] 856 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:857:25 [INFO] [stderr] | [INFO] [stderr] 857 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:860:66 [INFO] [stderr] | [INFO] [stderr] 860 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:877:25 [INFO] [stderr] | [INFO] [stderr] 877 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:881:66 [INFO] [stderr] | [INFO] [stderr] 881 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:890:25 [INFO] [stderr] | [INFO] [stderr] 890 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:894:66 [INFO] [stderr] | [INFO] [stderr] 894 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:903:25 [INFO] [stderr] | [INFO] [stderr] 903 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:907:66 [INFO] [stderr] | [INFO] [stderr] 907 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:1676:99 [INFO] [stderr] | [INFO] [stderr] 1676 | let constraint = Constraint::new_behaviour(ConstraintBehaviour::Edit{var:var.clone(), expr: expr}, str, 1.0, false); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:142:33 [INFO] [stderr] | [INFO] [stderr] 142 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:225:33 [INFO] [stderr] | [INFO] [stderr] 225 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:440:25 [INFO] [stderr] | [INFO] [stderr] 440 | constant: constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:452:25 [INFO] [stderr] | [INFO] [stderr] 452 | constant: constant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:821:17 [INFO] [stderr] | [INFO] [stderr] 821 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:822:17 [INFO] [stderr] | [INFO] [stderr] 822 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:825:58 [INFO] [stderr] | [INFO] [stderr] 825 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:835:25 [INFO] [stderr] | [INFO] [stderr] 835 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:836:25 [INFO] [stderr] | [INFO] [stderr] 836 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:839:62 [INFO] [stderr] | [INFO] [stderr] 839 | behaviour: ConstraintBehaviour::Edit{var: var, expr: expr}, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `var` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:839:72 [INFO] [stderr] | [INFO] [stderr] 839 | behaviour: ConstraintBehaviour::Edit{var: var, expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:845:25 [INFO] [stderr] | [INFO] [stderr] 845 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:846:25 [INFO] [stderr] | [INFO] [stderr] 846 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:856:25 [INFO] [stderr] | [INFO] [stderr] 856 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:857:25 [INFO] [stderr] | [INFO] [stderr] 857 | inequality: inequality, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inequality` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:860:66 [INFO] [stderr] | [INFO] [stderr] 860 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:877:25 [INFO] [stderr] | [INFO] [stderr] 877 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:881:66 [INFO] [stderr] | [INFO] [stderr] 881 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:890:25 [INFO] [stderr] | [INFO] [stderr] 890 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:894:66 [INFO] [stderr] | [INFO] [stderr] 894 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:903:25 [INFO] [stderr] | [INFO] [stderr] 903 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:907:66 [INFO] [stderr] | [INFO] [stderr] 907 | behaviour: ConstraintBehaviour::General{ expr: expr}, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:1676:99 [INFO] [stderr] | [INFO] [stderr] 1676 | let constraint = Constraint::new_behaviour(ConstraintBehaviour::Edit{var:var.clone(), expr: expr}, str, 1.0, false); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:328:85 [INFO] [stderr] | [INFO] [stderr] 328 | return format!("Name: {}, Val: {}",self.name(), self.value().unwrap_or(-122121f64)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `122_121f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:487:13 [INFO] [stderr] | [INFO] [stderr] 487 | return Ok(self); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:497:13 [INFO] [stderr] | [INFO] [stderr] 497 | return mm.terms.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `mm.terms.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:533:13 [INFO] [stderr] | [INFO] [stderr] 533 | return self.terms().len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.terms().len() == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:1777:18 [INFO] [stderr] | [INFO] [stderr] 1777 | else { [INFO] [stderr] | __________________^ [INFO] [stderr] 1778 | | if constraint.required() { [INFO] [stderr] 1779 | | [INFO] [stderr] 1780 | | self.dummy_counter += 1; [INFO] [stderr] ... | [INFO] [stderr] 1846 | | [INFO] [stderr] 1847 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1777 | else if constraint.required() { [INFO] [stderr] 1778 | [INFO] [stderr] 1779 | self.dummy_counter += 1; [INFO] [stderr] 1780 | let dummy_var = Rc::new( [INFO] [stderr] 1781 | Variable::new_suffix( [INFO] [stderr] 1782 | String::from("dummy"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1892:13 [INFO] [stderr] | [INFO] [stderr] 1892 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/lib.rs:2055:36 [INFO] [stderr] | [INFO] [stderr] 2055 | if (val > 0f64 && var.pivotable()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:2123:22 [INFO] [stderr] | [INFO] [stderr] 2123 | else { [INFO] [stderr] | ______________________^ [INFO] [stderr] 2124 | | if var.restricted() { [INFO] [stderr] 2125 | | if !found_new_restricted && !var.dummy() && val < 0f64 { [INFO] [stderr] 2126 | | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] ... | [INFO] [stderr] 2144 | | } [INFO] [stderr] 2145 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 2123 | else if var.restricted() { [INFO] [stderr] 2124 | if !found_new_restricted && !var.dummy() && val < 0f64 { [INFO] [stderr] 2125 | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] 2126 | Some(col) => { [INFO] [stderr] 2127 | let col = col.borrow().clone(); [INFO] [stderr] 2128 | if col.len() == 1 && self.column_has_key(&self.objective) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:2115:21 [INFO] [stderr] | [INFO] [stderr] 2115 | / if !var.restricted() { [INFO] [stderr] 2116 | | if !self.column_has_key(&var) { [INFO] [stderr] 2117 | | [INFO] [stderr] 2118 | | // println!("Chose: {}, Exprval: {}", var.to_string(), val); [INFO] [stderr] 2119 | | return Ok(Some(var)); [INFO] [stderr] 2120 | | } [INFO] [stderr] 2121 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 2115 | if !var.restricted() && !self.column_has_key(&var) { [INFO] [stderr] 2116 | [INFO] [stderr] 2117 | // println!("Chose: {}, Exprval: {}", var.to_string(), val); [INFO] [stderr] 2118 | return Ok(Some(var)); [INFO] [stderr] 2119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2366:20 [INFO] [stderr] | [INFO] [stderr] 2366 | REQUIRED = 1001001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_001_001_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2367:18 [INFO] [stderr] | [INFO] [stderr] 2367 | STRONG = 1000000, [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2376:21 [INFO] [stderr] | [INFO] [stderr] 2376 | 1001001000f64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_001_001_000f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2379:21 [INFO] [stderr] | [INFO] [stderr] 2379 | 1000000f64 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:328:85 [INFO] [stderr] | [INFO] [stderr] 328 | return format!("Name: {}, Val: {}",self.name(), self.value().unwrap_or(-122121f64)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `122_121f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:487:13 [INFO] [stderr] | [INFO] [stderr] 487 | return Ok(self); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:497:13 [INFO] [stderr] | [INFO] [stderr] 497 | return mm.terms.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `mm.terms.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:533:13 [INFO] [stderr] | [INFO] [stderr] 533 | return self.terms().len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.terms().len() == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:1777:18 [INFO] [stderr] | [INFO] [stderr] 1777 | else { [INFO] [stderr] | __________________^ [INFO] [stderr] 1778 | | if constraint.required() { [INFO] [stderr] 1779 | | [INFO] [stderr] 1780 | | self.dummy_counter += 1; [INFO] [stderr] ... | [INFO] [stderr] 1846 | | [INFO] [stderr] 1847 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1777 | else if constraint.required() { [INFO] [stderr] 1778 | [INFO] [stderr] 1779 | self.dummy_counter += 1; [INFO] [stderr] 1780 | let dummy_var = Rc::new( [INFO] [stderr] 1781 | Variable::new_suffix( [INFO] [stderr] 1782 | String::from("dummy"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1892:13 [INFO] [stderr] | [INFO] [stderr] 1892 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/lib.rs:2055:36 [INFO] [stderr] | [INFO] [stderr] 2055 | if (val > 0f64 && var.pivotable()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:2123:22 [INFO] [stderr] | [INFO] [stderr] 2123 | else { [INFO] [stderr] | ______________________^ [INFO] [stderr] 2124 | | if var.restricted() { [INFO] [stderr] 2125 | | if !found_new_restricted && !var.dummy() && val < 0f64 { [INFO] [stderr] 2126 | | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] ... | [INFO] [stderr] 2144 | | } [INFO] [stderr] 2145 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 2123 | else if var.restricted() { [INFO] [stderr] 2124 | if !found_new_restricted && !var.dummy() && val < 0f64 { [INFO] [stderr] 2125 | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] 2126 | Some(col) => { [INFO] [stderr] 2127 | let col = col.borrow().clone(); [INFO] [stderr] 2128 | if col.len() == 1 && self.column_has_key(&self.objective) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:2115:21 [INFO] [stderr] | [INFO] [stderr] 2115 | / if !var.restricted() { [INFO] [stderr] 2116 | | if !self.column_has_key(&var) { [INFO] [stderr] 2117 | | [INFO] [stderr] 2118 | | // println!("Chose: {}, Exprval: {}", var.to_string(), val); [INFO] [stderr] 2119 | | return Ok(Some(var)); [INFO] [stderr] 2120 | | } [INFO] [stderr] 2121 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 2115 | if !var.restricted() && !self.column_has_key(&var) { [INFO] [stderr] 2116 | [INFO] [stderr] 2117 | // println!("Chose: {}, Exprval: {}", var.to_string(), val); [INFO] [stderr] 2118 | return Ok(Some(var)); [INFO] [stderr] 2119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2366:20 [INFO] [stderr] | [INFO] [stderr] 2366 | REQUIRED = 1001001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_001_001_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2367:18 [INFO] [stderr] | [INFO] [stderr] 2367 | STRONG = 1000000, [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2376:21 [INFO] [stderr] | [INFO] [stderr] 2376 | 1001001000f64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_001_001_000f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2379:21 [INFO] [stderr] | [INFO] [stderr] 2379 | 1000000f64 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:2517:97 [INFO] [stderr] | [INFO] [stderr] 2517 | assert!(approx_equal(x.value().unwrap(), 10f64) || approx_equal(x.value().unwrap(), 3.33333333333333333)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `3.333_333_333_333_333_33` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: value assigned to `prev_edit_constant` is never read [INFO] [stderr] --> src/lib.rs:1838:25 [INFO] [stderr] | [INFO] [stderr] 1838 | prev_edit_constant = some_val; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `r` is never read [INFO] [stderr] --> src/lib.rs:2006:25 [INFO] [stderr] | [INFO] [stderr] 2006 | let mut r: f64 = 0f64; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/lib.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / impl Hash for Variable { [INFO] [stderr] 101 | | fn hash(&self, state: &mut H) where H: Hasher { [INFO] [stderr] 102 | | // TODO: check this is a valid hashing algorithm [INFO] [stderr] 103 | | self.vref.borrow().name.hash(state); [INFO] [stderr] 104 | | //self.vref.borrow().var_num.hash(state); [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/lib.rs:95:18 [INFO] [stderr] | [INFO] [stderr] 95 | #[derive(Eq, PartialEq, Clone)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | self.mref.borrow().terms.get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.mref.borrow().terms.get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:526:55 [INFO] [stderr] | [INFO] [stderr] 526 | self.mref.borrow().terms.get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | return self.terms().len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.terms().is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:1100:18 [INFO] [stderr] | [INFO] [stderr] 1100 | columns: RefCell, Rc>>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1160:19 [INFO] [stderr] | [INFO] [stderr] 1160 | match mm.get(param_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `mm.get(param_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:1169:21 [INFO] [stderr] | [INFO] [stderr] 1169 | &row_set.insert(row_var.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `row_set.insert(row_var.clone());` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: value assigned to `prev_edit_constant` is never read [INFO] [stderr] --> src/lib.rs:1838:25 [INFO] [stderr] | [INFO] [stderr] 1838 | prev_edit_constant = some_val; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `r` is never read [INFO] [stderr] --> src/lib.rs:2006:25 [INFO] [stderr] | [INFO] [stderr] 2006 | let mut r: f64 = 0f64; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1251:24 [INFO] [stderr] | [INFO] [stderr] 1251 | let expr = self.rows.borrow().get(var).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1256:25 [INFO] [stderr] | [INFO] [stderr] 1256 | self.columns.borrow().get(exp_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(exp_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:1303:21 [INFO] [stderr] | [INFO] [stderr] 1303 | let ref e_plus = eplus_eminus[0]; [INFO] [stderr] | ----^^^^^^^^^^-------------------- help: try: `let e_plus = &eplus_eminus[0];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:1304:21 [INFO] [stderr] | [INFO] [stderr] 1304 | let ref e_minus = eplus_eminus[1]; [INFO] [stderr] | ----^^^^^^^^^^^------------------- help: try: `let e_minus = &eplus_eminus[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:1328:29 [INFO] [stderr] | [INFO] [stderr] 1328 | &expr.new_subject(&subject); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expr.new_subject(&subject);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:1416:20 [INFO] [stderr] | [INFO] [stderr] 1416 | if let Some(_) = self.get_row_expression(&slack_var) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 1417 | | return Err(CassError::RequiredFailure); [INFO] [stderr] 1418 | | } [INFO] [stderr] | |_____________- help: try this: `if self.get_row_expression(&slack_var).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/lib.rs:1519:24 [INFO] [stderr] | [INFO] [stderr] 1519 | if !exit_var.is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `exit_var.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/lib.rs:1428:9 [INFO] [stderr] | [INFO] [stderr] 1428 | / pub fn remove_constraint(&mut self, constraint: &Constraint) -> Result { [INFO] [stderr] 1429 | | self.needs_solving = true; [INFO] [stderr] 1430 | | [INFO] [stderr] 1431 | | self.reset_stay_constants(); [INFO] [stderr] ... | [INFO] [stderr] 1586 | | Ok(true) [INFO] [stderr] 1587 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1437:36 [INFO] [stderr] | [INFO] [stderr] 1437 | let mut error_option = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1468:31 [INFO] [stderr] | [INFO] [stderr] 1468 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1487:31 [INFO] [stderr] | [INFO] [stderr] 1487 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1513:39 [INFO] [stderr] | [INFO] [stderr] 1513 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1515:40 [INFO] [stderr] | [INFO] [stderr] 1515 | exit_var = col.borrow().clone().iter().next().map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `col.borrow().clone().iter().next().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1557:34 [INFO] [stderr] | [INFO] [stderr] 1557 | let edit_info = self.edit_var_map.borrow().get(&var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(&var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1591:23 [INFO] [stderr] | [INFO] [stderr] 1591 | let set = cr.get(old_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `cr.get(old_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1598:39 [INFO] [stderr] | [INFO] [stderr] 1598 | let mut current_row = self.rows [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 1599 | | .borrow_mut() [INFO] [stderr] 1600 | | .get_mut(&var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 1598 | let mut current_row = self.rows [INFO] [stderr] 1599 | .borrow_mut() [INFO] [stderr] 1600 | .get_mut(&var).cloned().unwrap(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1636:30 [INFO] [stderr] | [INFO] [stderr] 1636 | let basic_vars = self.columns.borrow().get(minus_error_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(minus_error_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1697:36 [INFO] [stderr] | [INFO] [stderr] 1697 | let e_info: EditInfo = self.edit_var_map.borrow().get(var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1823:35 [INFO] [stderr] | [INFO] [stderr] 1823 | let is_edit = constraint.edit().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `constraint.edit()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1824:40 [INFO] [stderr] | [INFO] [stderr] 1824 | let mut some_val = constraint_expr.mref.borrow().clone().constant.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `constraint_expr.mref.borrow().clone().constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1872:19 [INFO] [stderr] | [INFO] [stderr] 1872 | match self.edit_var_map.borrow().get(s_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1884:21 [INFO] [stderr] | [INFO] [stderr] 1884 | let i = self.edit_var_map.borrow().get(s_var).map(|x|x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1885:33 [INFO] [stderr] | [INFO] [stderr] 1885 | let mut edit_info = self.edit_var_map.borrow_mut().get_mut(s_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow_mut().get_mut(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1906:17 [INFO] [stderr] | [INFO] [stderr] 1906 | / match self.get_row_expression(&var) { [INFO] [stderr] 1907 | | Some(mut expr) => { [INFO] [stderr] 1908 | | expr.set_constant(0f64); [INFO] [stderr] 1909 | | } [INFO] [stderr] ... | [INFO] [stderr] 1912 | | } [INFO] [stderr] 1913 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1906 | if let Some(mut expr) = self.get_row_expression(&var) { [INFO] [stderr] 1907 | expr.set_constant(0f64); [INFO] [stderr] 1908 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1974:29 [INFO] [stderr] | [INFO] [stderr] 1974 | let v = self.columns.borrow().get(var).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1977:43 [INFO] [stderr] | [INFO] [stderr] 1977 | objective_coeff = val.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2000:21 [INFO] [stderr] | [INFO] [stderr] 2000 | / self.columns.borrow() [INFO] [stderr] 2001 | | .get(&entry_var.clone().unwrap()).map(|x| x.clone()).unwrap(); [INFO] [stderr] | |________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 2000 | self.columns.borrow() [INFO] [stderr] 2001 | .get(&entry_var.clone().unwrap()).cloned().unwrap(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2041:25 [INFO] [stderr] | [INFO] [stderr] 2041 | let z_row = self.rows.borrow().get(&obj).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(&obj).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:2047:32 [INFO] [stderr] | [INFO] [stderr] 2047 | let exit_var = i_rows.iter().next().clone().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `i_rows.iter().next()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:2048:17 [INFO] [stderr] | [INFO] [stderr] 2048 | / match self.get_row_expression(exit_var) { [INFO] [stderr] 2049 | | Some(expr) => { [INFO] [stderr] 2050 | | if expr.get_constant() < 0f64 { [INFO] [stderr] 2051 | | let mut ratio = f64::MAX; [INFO] [stderr] ... | [INFO] [stderr] 2075 | | } [INFO] [stderr] 2076 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2048 | if let Some(expr) = self.get_row_expression(exit_var) { [INFO] [stderr] 2049 | if expr.get_constant() < 0f64 { [INFO] [stderr] 2050 | let mut ratio = f64::MAX; [INFO] [stderr] 2051 | let mut r: f64; [INFO] [stderr] 2052 | let terms = expr.terms(); [INFO] [stderr] 2053 | for (var, val) in terms { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:2060:49 [INFO] [stderr] | [INFO] [stderr] 2060 | ratio = r.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: The function/method `substitute_out` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:2087:44 [INFO] [stderr] | [INFO] [stderr] 2087 | self.substitute_out(entry_var, &mut pivot_expr); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2126:35 [INFO] [stderr] | [INFO] [stderr] 2126 | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(&var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:2186:13 [INFO] [stderr] | [INFO] [stderr] 2186 | m.get(v).unwrap().borrow_mut().remove(s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `&m[v]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the variable `count2` is used as a loop counter. Consider using `for (count2, item) in expr.terms().enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:2215:34 [INFO] [stderr] | [INFO] [stderr] 2215 | for (var,val) in expr.terms() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `count2` is used as a loop counter. Consider using `for (count2, item) in set.enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:2229:26 [INFO] [stderr] | [INFO] [stderr] 2229 | for v in set { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2237:23 [INFO] [stderr] | [INFO] [stderr] 2237 | let res = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:2239:20 [INFO] [stderr] | [INFO] [stderr] 2239 | if let None = res { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 2240 | | let mut c_set = HashSet::new(); [INFO] [stderr] 2241 | | c_set.insert(var.clone()); [INFO] [stderr] 2242 | | self.error_vars.borrow_mut().insert(constraint.clone(), c_set); [INFO] [stderr] 2243 | | } [INFO] [stderr] | |_____________- help: try this: `if res.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2244:23 [INFO] [stderr] | [INFO] [stderr] 2244 | let res = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2257:13 [INFO] [stderr] | [INFO] [stderr] 2257 | self.rows.borrow().get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:2327:32 [INFO] [stderr] | [INFO] [stderr] 2327 | pub fn approx_equal_ref(a: &f64, b: &f64) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:2327:41 [INFO] [stderr] | [INFO] [stderr] 2327 | pub fn approx_equal_ref(a: &f64, b: &f64) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `cassowaryr`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/lib.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / impl Hash for Variable { [INFO] [stderr] 101 | | fn hash(&self, state: &mut H) where H: Hasher { [INFO] [stderr] 102 | | // TODO: check this is a valid hashing algorithm [INFO] [stderr] 103 | | self.vref.borrow().name.hash(state); [INFO] [stderr] 104 | | //self.vref.borrow().var_num.hash(state); [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/lib.rs:95:18 [INFO] [stderr] | [INFO] [stderr] 95 | #[derive(Eq, PartialEq, Clone)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | self.mref.borrow().terms.get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.mref.borrow().terms.get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:526:55 [INFO] [stderr] | [INFO] [stderr] 526 | self.mref.borrow().terms.get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | return self.terms().len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.terms().is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:1100:18 [INFO] [stderr] | [INFO] [stderr] 1100 | columns: RefCell, Rc>>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1160:19 [INFO] [stderr] | [INFO] [stderr] 1160 | match mm.get(param_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `mm.get(param_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:1169:21 [INFO] [stderr] | [INFO] [stderr] 1169 | &row_set.insert(row_var.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `row_set.insert(row_var.clone());` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1251:24 [INFO] [stderr] | [INFO] [stderr] 1251 | let expr = self.rows.borrow().get(var).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1256:25 [INFO] [stderr] | [INFO] [stderr] 1256 | self.columns.borrow().get(exp_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(exp_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:1303:21 [INFO] [stderr] | [INFO] [stderr] 1303 | let ref e_plus = eplus_eminus[0]; [INFO] [stderr] | ----^^^^^^^^^^-------------------- help: try: `let e_plus = &eplus_eminus[0];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:1304:21 [INFO] [stderr] | [INFO] [stderr] 1304 | let ref e_minus = eplus_eminus[1]; [INFO] [stderr] | ----^^^^^^^^^^^------------------- help: try: `let e_minus = &eplus_eminus[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:1328:29 [INFO] [stderr] | [INFO] [stderr] 1328 | &expr.new_subject(&subject); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expr.new_subject(&subject);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:1416:20 [INFO] [stderr] | [INFO] [stderr] 1416 | if let Some(_) = self.get_row_expression(&slack_var) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 1417 | | return Err(CassError::RequiredFailure); [INFO] [stderr] 1418 | | } [INFO] [stderr] | |_____________- help: try this: `if self.get_row_expression(&slack_var).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/lib.rs:1519:24 [INFO] [stderr] | [INFO] [stderr] 1519 | if !exit_var.is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `exit_var.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/lib.rs:1428:9 [INFO] [stderr] | [INFO] [stderr] 1428 | / pub fn remove_constraint(&mut self, constraint: &Constraint) -> Result { [INFO] [stderr] 1429 | | self.needs_solving = true; [INFO] [stderr] 1430 | | [INFO] [stderr] 1431 | | self.reset_stay_constants(); [INFO] [stderr] ... | [INFO] [stderr] 1586 | | Ok(true) [INFO] [stderr] 1587 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1437:36 [INFO] [stderr] | [INFO] [stderr] 1437 | let mut error_option = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1468:31 [INFO] [stderr] | [INFO] [stderr] 1468 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1487:31 [INFO] [stderr] | [INFO] [stderr] 1487 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1513:39 [INFO] [stderr] | [INFO] [stderr] 1513 | let col = self.columns.borrow_mut().get(&marker).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow_mut().get(&marker).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1515:40 [INFO] [stderr] | [INFO] [stderr] 1515 | exit_var = col.borrow().clone().iter().next().map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `col.borrow().clone().iter().next().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1557:34 [INFO] [stderr] | [INFO] [stderr] 1557 | let edit_info = self.edit_var_map.borrow().get(&var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(&var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1591:23 [INFO] [stderr] | [INFO] [stderr] 1591 | let set = cr.get(old_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `cr.get(old_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1598:39 [INFO] [stderr] | [INFO] [stderr] 1598 | let mut current_row = self.rows [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 1599 | | .borrow_mut() [INFO] [stderr] 1600 | | .get_mut(&var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 1598 | let mut current_row = self.rows [INFO] [stderr] 1599 | .borrow_mut() [INFO] [stderr] 1600 | .get_mut(&var).cloned().unwrap(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1636:30 [INFO] [stderr] | [INFO] [stderr] 1636 | let basic_vars = self.columns.borrow().get(minus_error_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(minus_error_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1697:36 [INFO] [stderr] | [INFO] [stderr] 1697 | let e_info: EditInfo = self.edit_var_map.borrow().get(var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1823:35 [INFO] [stderr] | [INFO] [stderr] 1823 | let is_edit = constraint.edit().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `constraint.edit()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1824:40 [INFO] [stderr] | [INFO] [stderr] 1824 | let mut some_val = constraint_expr.mref.borrow().clone().constant.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `constraint_expr.mref.borrow().clone().constant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1872:19 [INFO] [stderr] | [INFO] [stderr] 1872 | match self.edit_var_map.borrow().get(s_var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1884:21 [INFO] [stderr] | [INFO] [stderr] 1884 | let i = self.edit_var_map.borrow().get(s_var).map(|x|x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow().get(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1885:33 [INFO] [stderr] | [INFO] [stderr] 1885 | let mut edit_info = self.edit_var_map.borrow_mut().get_mut(s_var).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.edit_var_map.borrow_mut().get_mut(s_var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1906:17 [INFO] [stderr] | [INFO] [stderr] 1906 | / match self.get_row_expression(&var) { [INFO] [stderr] 1907 | | Some(mut expr) => { [INFO] [stderr] 1908 | | expr.set_constant(0f64); [INFO] [stderr] 1909 | | } [INFO] [stderr] ... | [INFO] [stderr] 1912 | | } [INFO] [stderr] 1913 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1906 | if let Some(mut expr) = self.get_row_expression(&var) { [INFO] [stderr] 1907 | expr.set_constant(0f64); [INFO] [stderr] 1908 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:1974:29 [INFO] [stderr] | [INFO] [stderr] 1974 | let v = self.columns.borrow().get(var).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:1977:43 [INFO] [stderr] | [INFO] [stderr] 1977 | objective_coeff = val.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2000:21 [INFO] [stderr] | [INFO] [stderr] 2000 | / self.columns.borrow() [INFO] [stderr] 2001 | | .get(&entry_var.clone().unwrap()).map(|x| x.clone()).unwrap(); [INFO] [stderr] | |________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 2000 | self.columns.borrow() [INFO] [stderr] 2001 | .get(&entry_var.clone().unwrap()).cloned().unwrap(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2041:25 [INFO] [stderr] | [INFO] [stderr] 2041 | let z_row = self.rows.borrow().get(&obj).map(|x| x.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(&obj).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:2047:32 [INFO] [stderr] | [INFO] [stderr] 2047 | let exit_var = i_rows.iter().next().clone().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `i_rows.iter().next()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:2048:17 [INFO] [stderr] | [INFO] [stderr] 2048 | / match self.get_row_expression(exit_var) { [INFO] [stderr] 2049 | | Some(expr) => { [INFO] [stderr] 2050 | | if expr.get_constant() < 0f64 { [INFO] [stderr] 2051 | | let mut ratio = f64::MAX; [INFO] [stderr] ... | [INFO] [stderr] 2075 | | } [INFO] [stderr] 2076 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2048 | if let Some(expr) = self.get_row_expression(exit_var) { [INFO] [stderr] 2049 | if expr.get_constant() < 0f64 { [INFO] [stderr] 2050 | let mut ratio = f64::MAX; [INFO] [stderr] 2051 | let mut r: f64; [INFO] [stderr] 2052 | let terms = expr.terms(); [INFO] [stderr] 2053 | for (var, val) in terms { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:2060:49 [INFO] [stderr] | [INFO] [stderr] 2060 | ratio = r.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: The function/method `substitute_out` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:2087:44 [INFO] [stderr] | [INFO] [stderr] 2087 | self.substitute_out(entry_var, &mut pivot_expr); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2126:35 [INFO] [stderr] | [INFO] [stderr] 2126 | match self.columns.borrow().get(&var).map(|x| x.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.columns.borrow().get(&var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:2186:13 [INFO] [stderr] | [INFO] [stderr] 2186 | m.get(v).unwrap().borrow_mut().remove(s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `&m[v]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the variable `count2` is used as a loop counter. Consider using `for (count2, item) in expr.terms().enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:2215:34 [INFO] [stderr] | [INFO] [stderr] 2215 | for (var,val) in expr.terms() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `count2` is used as a loop counter. Consider using `for (count2, item) in set.enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:2229:26 [INFO] [stderr] | [INFO] [stderr] 2229 | for v in set { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2237:23 [INFO] [stderr] | [INFO] [stderr] 2237 | let res = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:2239:20 [INFO] [stderr] | [INFO] [stderr] 2239 | if let None = res { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 2240 | | let mut c_set = HashSet::new(); [INFO] [stderr] 2241 | | c_set.insert(var.clone()); [INFO] [stderr] 2242 | | self.error_vars.borrow_mut().insert(constraint.clone(), c_set); [INFO] [stderr] 2243 | | } [INFO] [stderr] | |_____________- help: try this: `if res.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2244:23 [INFO] [stderr] | [INFO] [stderr] 2244 | let res = self.error_vars.borrow_mut().get(constraint).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.error_vars.borrow_mut().get(constraint).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:2257:13 [INFO] [stderr] | [INFO] [stderr] 2257 | self.rows.borrow().get(var).map(|x| x.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.rows.borrow().get(var).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:2327:32 [INFO] [stderr] | [INFO] [stderr] 2327 | pub fn approx_equal_ref(a: &f64, b: &f64) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:2327:41 [INFO] [stderr] | [INFO] [stderr] 2327 | pub fn approx_equal_ref(a: &f64, b: &f64) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lib.rs:2517:97 [INFO] [stderr] | [INFO] [stderr] 2517 | assert!(approx_equal(x.value().unwrap(), 10f64) || approx_equal(x.value().unwrap(), 3.33333333333333333)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `3.333_333_333_333_333_5` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `cassowaryr`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "9fdd0f9d387f0e8cc657ec16751f57ba049d7a28db2e7ae6921916933e055363"` [INFO] running `"docker" "rm" "-f" "9fdd0f9d387f0e8cc657ec16751f57ba049d7a28db2e7ae6921916933e055363"` [INFO] [stdout] 9fdd0f9d387f0e8cc657ec16751f57ba049d7a28db2e7ae6921916933e055363