[INFO] crate rulp 0.1.0 is already in cache [INFO] extracting crate rulp 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/rulp/0.1.0 [INFO] extracting crate rulp 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rulp/0.1.0 [INFO] validating manifest of rulp-0.1.0 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 rulp-0.1.0 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 rulp-0.1.0 [INFO] finished frobbing rulp-0.1.0 [INFO] frobbed toml for rulp-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/rulp/0.1.0/Cargo.toml [INFO] started frobbing rulp-0.1.0 [INFO] finished frobbing rulp-0.1.0 [INFO] frobbed toml for rulp-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rulp/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting rulp-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rulp/0.1.0:/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] 86ce2abdc686901c3068512f3d1ae62aa766a82d49deeb415349aa372826ef74 [INFO] running `"docker" "start" "-a" "86ce2abdc686901c3068512f3d1ae62aa766a82d49deeb415349aa372826ef74"` [INFO] [stderr] Checking assert_approx_eq v0.2.2 [INFO] [stderr] Checking term_size v0.2.3 [INFO] [stderr] Checking rulinalg v0.4.2 [INFO] [stderr] Checking clap v2.19.3 [INFO] [stderr] Checking rulp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder/impl_builder.rs:139:4 [INFO] [stderr] | [INFO] [stderr] 139 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/builder/impl_builder.rs:140:4 [INFO] [stderr] | [INFO] [stderr] 140 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/builder/impl_builder.rs:141:4 [INFO] [stderr] | [INFO] [stderr] 141 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/builder/impl_builder.rs:144:4 [INFO] [stderr] | [INFO] [stderr] 144 | num_artificial_vars: num_artificial_vars [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_artificial_vars` [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: using `writeln!(f, "")` [INFO] [stderr] --> src/lp/mod.rs:29:7 [INFO] [stderr] | [INFO] [stderr] 29 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/lp/mod.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser/impl_parser.rs:148:4 [INFO] [stderr] | [INFO] [stderr] 148 | variables: variables, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variables` [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/parser/impl_parser.rs:149:4 [INFO] [stderr] | [INFO] [stderr] 149 | constraints: constraints, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constraints` [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/parser/impl_parser.rs:206:4 [INFO] [stderr] | [INFO] [stderr] 206 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parser/impl_parser.rs:207:4 [INFO] [stderr] | [INFO] [stderr] 207 | variables: variables, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variables` [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/parser/impl_parser.rs:208:4 [INFO] [stderr] | [INFO] [stderr] 208 | 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/parser/impl_parser.rs:209:4 [INFO] [stderr] | [INFO] [stderr] 209 | relation: relation [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `relation` [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/parser/impl_parser.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parser/impl_parser.rs:308:4 [INFO] [stderr] | [INFO] [stderr] 308 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/solver/impl_solver.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | lp: lp [INFO] [stderr] | ^^^^^^ help: replace it with: `lp` [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/solver/impl_solver.rs:484:5 [INFO] [stderr] | [INFO] [stderr] 484 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:490:5 [INFO] [stderr] | [INFO] [stderr] 490 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:491:5 [INFO] [stderr] | [INFO] [stderr] 491 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:494:5 [INFO] [stderr] | [INFO] [stderr] 494 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/solver/impl_solver.rs:564:5 [INFO] [stderr] | [INFO] [stderr] 564 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:670:5 [INFO] [stderr] | [INFO] [stderr] 670 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:671:5 [INFO] [stderr] | [INFO] [stderr] 671 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:672:5 [INFO] [stderr] | [INFO] [stderr] 672 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:674:5 [INFO] [stderr] | [INFO] [stderr] 674 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/solver/impl_solver.rs:700:5 [INFO] [stderr] | [INFO] [stderr] 700 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:701:5 [INFO] [stderr] | [INFO] [stderr] 701 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:702:5 [INFO] [stderr] | [INFO] [stderr] 702 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:704:5 [INFO] [stderr] | [INFO] [stderr] 704 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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: using `writeln!(f, "")` [INFO] [stderr] --> src/solver/mod.rs:41:6 [INFO] [stderr] | [INFO] [stderr] 41 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/utils.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/utils.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder/impl_builder.rs:139:4 [INFO] [stderr] | [INFO] [stderr] 139 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/builder/impl_builder.rs:140:4 [INFO] [stderr] | [INFO] [stderr] 140 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/builder/impl_builder.rs:141:4 [INFO] [stderr] | [INFO] [stderr] 141 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/builder/impl_builder.rs:144:4 [INFO] [stderr] | [INFO] [stderr] 144 | num_artificial_vars: num_artificial_vars [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_artificial_vars` [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: using `writeln!(f, "")` [INFO] [stderr] --> src/lp/mod.rs:29:7 [INFO] [stderr] | [INFO] [stderr] 29 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/lp/mod.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser/impl_parser.rs:148:4 [INFO] [stderr] | [INFO] [stderr] 148 | variables: variables, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variables` [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/parser/impl_parser.rs:149:4 [INFO] [stderr] | [INFO] [stderr] 149 | constraints: constraints, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constraints` [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/parser/impl_parser.rs:206:4 [INFO] [stderr] | [INFO] [stderr] 206 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parser/impl_parser.rs:207:4 [INFO] [stderr] | [INFO] [stderr] 207 | variables: variables, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variables` [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/parser/impl_parser.rs:208:4 [INFO] [stderr] | [INFO] [stderr] 208 | 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/parser/impl_parser.rs:209:4 [INFO] [stderr] | [INFO] [stderr] 209 | relation: relation [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `relation` [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/parser/impl_parser.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parser/impl_parser.rs:308:4 [INFO] [stderr] | [INFO] [stderr] 308 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/solver/impl_solver.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | lp: lp [INFO] [stderr] | ^^^^^^ help: replace it with: `lp` [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/solver/impl_solver.rs:484:5 [INFO] [stderr] | [INFO] [stderr] 484 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:490:5 [INFO] [stderr] | [INFO] [stderr] 490 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:491:5 [INFO] [stderr] | [INFO] [stderr] 491 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:494:5 [INFO] [stderr] | [INFO] [stderr] 494 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/solver/impl_solver.rs:564:5 [INFO] [stderr] | [INFO] [stderr] 564 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:670:5 [INFO] [stderr] | [INFO] [stderr] 670 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:671:5 [INFO] [stderr] | [INFO] [stderr] 671 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:672:5 [INFO] [stderr] | [INFO] [stderr] 672 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:674:5 [INFO] [stderr] | [INFO] [stderr] 674 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/solver/impl_solver.rs:700:5 [INFO] [stderr] | [INFO] [stderr] 700 | A: A, [INFO] [stderr] | ^^^^ help: replace it with: `A` [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/solver/impl_solver.rs:701:5 [INFO] [stderr] | [INFO] [stderr] 701 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/solver/impl_solver.rs:702:5 [INFO] [stderr] | [INFO] [stderr] 702 | c: c, [INFO] [stderr] | ^^^^ help: replace it with: `c` [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/solver/impl_solver.rs:704:5 [INFO] [stderr] | [INFO] [stderr] 704 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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: using `writeln!(f, "")` [INFO] [stderr] --> src/solver/mod.rs:41:6 [INFO] [stderr] | [INFO] [stderr] 41 | writeln!(f, "").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/utils.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/utils.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser/impl_parser.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | return Variable { [INFO] [stderr] | _________^ [INFO] [stderr] 186 | | name: caps["name"].to_string(), [INFO] [stderr] 187 | | coefficient: 0., [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 185 | Variable { [INFO] [stderr] 186 | name: caps["name"].to_string(), [INFO] [stderr] 187 | coefficient: 0., [INFO] [stderr] 188 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver/impl_solver.rs:93:3 [INFO] [stderr] | [INFO] [stderr] 93 | return Solution { [INFO] [stderr] | _________^ [INFO] [stderr] 94 | | lp: self.lp.clone(), [INFO] [stderr] 95 | | values: Some(local.get_basic_feasible_solution()), [INFO] [stderr] 96 | | objective: Some(local.get_objective() * coeff), [INFO] [stderr] 97 | | status: Status::Optimal [INFO] [stderr] 98 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 93 | Solution { [INFO] [stderr] 94 | lp: self.lp.clone(), [INFO] [stderr] 95 | values: Some(local.get_basic_feasible_solution()), [INFO] [stderr] 96 | objective: Some(local.get_objective() * coeff), [INFO] [stderr] 97 | status: Status::Optimal [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver/impl_solver.rs:142:3 [INFO] [stderr] | [INFO] [stderr] 142 | return true [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [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/solver/impl_solver.rs:160:3 [INFO] [stderr] | [INFO] [stderr] 160 | return bfs; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `bfs` [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/solver/impl_solver.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/solver/impl_solver.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/solver/impl_solver.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | return Some(no_basic); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(no_basic)` [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/solver/impl_solver.rs:332:4 [INFO] [stderr] | [INFO] [stderr] 332 | return *self.tableau.get_unchecked([0, self.tableau.cols() - 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*self.tableau.get_unchecked([0, self.tableau.cols() - 1])` [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: long literal lacking separators [INFO] [stderr] --> src/solver/impl_solver.rs:352:56 [INFO] [stderr] | [INFO] [stderr] 352 | if !( relative_eq!(phase_one_obj, 0., epsilon = 0.0000001) // is non-zero, then no bfs exists (problem is infeasible) [INFO] [stderr] | ^^^^^^^^^ help: consider: `0.000_000_1` [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: long literal lacking separators [INFO] [stderr] --> src/solver/impl_solver.rs:353:53 [INFO] [stderr] | [INFO] [stderr] 353 | || relative_eq!(phase_one_obj, -0., epsilon = 0.0000001)) { // kinda hacky way of testing due to f64 precision [INFO] [stderr] | ^^^^^^^^^ help: consider: `0.000_000_1` [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: unneeded return statement [INFO] [stderr] --> src/parser/impl_parser.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | return Variable { [INFO] [stderr] | _________^ [INFO] [stderr] 186 | | name: caps["name"].to_string(), [INFO] [stderr] 187 | | coefficient: 0., [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 185 | Variable { [INFO] [stderr] 186 | name: caps["name"].to_string(), [INFO] [stderr] 187 | coefficient: 0., [INFO] [stderr] 188 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver/impl_solver.rs:93:3 [INFO] [stderr] | [INFO] [stderr] 93 | return Solution { [INFO] [stderr] | _________^ [INFO] [stderr] 94 | | lp: self.lp.clone(), [INFO] [stderr] 95 | | values: Some(local.get_basic_feasible_solution()), [INFO] [stderr] 96 | | objective: Some(local.get_objective() * coeff), [INFO] [stderr] 97 | | status: Status::Optimal [INFO] [stderr] 98 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 93 | Solution { [INFO] [stderr] 94 | lp: self.lp.clone(), [INFO] [stderr] 95 | values: Some(local.get_basic_feasible_solution()), [INFO] [stderr] 96 | objective: Some(local.get_objective() * coeff), [INFO] [stderr] 97 | status: Status::Optimal [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solver/impl_solver.rs:142:3 [INFO] [stderr] | [INFO] [stderr] 142 | return true [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [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/solver/impl_solver.rs:160:3 [INFO] [stderr] | [INFO] [stderr] 160 | return bfs; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `bfs` [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/solver/impl_solver.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/solver/impl_solver.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/solver/impl_solver.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | return Some(no_basic); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(no_basic)` [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/solver/impl_solver.rs:332:4 [INFO] [stderr] | [INFO] [stderr] 332 | return *self.tableau.get_unchecked([0, self.tableau.cols() - 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*self.tableau.get_unchecked([0, self.tableau.cols() - 1])` [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: long literal lacking separators [INFO] [stderr] --> src/solver/impl_solver.rs:352:56 [INFO] [stderr] | [INFO] [stderr] 352 | if !( relative_eq!(phase_one_obj, 0., epsilon = 0.0000001) // is non-zero, then no bfs exists (problem is infeasible) [INFO] [stderr] | ^^^^^^^^^ help: consider: `0.000_000_1` [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: long literal lacking separators [INFO] [stderr] --> src/solver/impl_solver.rs:353:53 [INFO] [stderr] | [INFO] [stderr] 353 | || relative_eq!(phase_one_obj, -0., epsilon = 0.0000001)) { // kinda hacky way of testing due to f64 precision [INFO] [stderr] | ^^^^^^^^^ help: consider: `0.000_000_1` [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/solver/impl_solver.rs:689:16 [INFO] [stderr] | [INFO] [stderr] 689 | let c = vec![100000., 40000., 18000., 0., 0., 0., 0.]; [INFO] [stderr] | ^^^^^^^ help: consider: `100_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/solver/impl_solver.rs:715:43 [INFO] [stderr] | [INFO] [stderr] 715 | assert_eq!(solution.objective.unwrap(), 1052000.); [INFO] [stderr] | ^^^^^^^^ help: consider: `1_052_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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:158:8 [INFO] [stderr] | [INFO] [stderr] 158 | for ref var in &constraint.variables { [INFO] [stderr] | ^^^^^^^ --------------------- help: try: `let var = &&constraint.variables;` [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/builder/impl_builder.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | for ref var in &obj.variables { [INFO] [stderr] | ^^^^^^^ -------------- help: try: `let var = &&obj.variables;` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/builder/impl_builder.rs:204:39 [INFO] [stderr] | [INFO] [stderr] 204 | fn check_variables(&self, variables: &Vec) -> Option<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:205:7 [INFO] [stderr] | [INFO] [stderr] 205 | for ref var in variables { [INFO] [stderr] | ^^^^^^^ --------- help: try: `let var = &variables;` [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: the variable `slack_ct` is used as a loop counter. Consider using `for (slack_ct, item) in constraints.enumerate()` or similar iterators [INFO] [stderr] --> src/builder/impl_builder.rs:242:12 [INFO] [stderr] | [INFO] [stderr] 242 | for i in constraints { [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:243:8 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut constraint = self.constraints[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------------- help: try: `let constraint = &mut self.constraints[i];` [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: the variable `excess_ct` is used as a loop counter. Consider using `for (excess_ct, item) in constraints.enumerate()` or similar iterators [INFO] [stderr] --> src/builder/impl_builder.rs:269:12 [INFO] [stderr] | [INFO] [stderr] 269 | for i in constraints { [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:270:8 [INFO] [stderr] | [INFO] [stderr] 270 | let ref mut constraint = self.constraints[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------------- help: try: `let constraint = &mut self.constraints[i];` [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: length comparison to zero [INFO] [stderr] --> src/parser/impl_parser.rs:123:19 [INFO] [stderr] | [INFO] [stderr] 123 | .filter(|line| line.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.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: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | if line.contains("#") { [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:194:43 [INFO] [stderr] | [INFO] [stderr] 194 | let relation = if caps["type"].contains("<") { [INFO] [stderr] | ^^^ help: try using a char instead: `'<'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:196:35 [INFO] [stderr] | [INFO] [stderr] 196 | } else if caps["type"].contains(">") { [INFO] [stderr] | ^^^ help: try using a char instead: `'>'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/solver/impl_solver.rs:89:3 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.lp.optimization { [INFO] [stderr] | _________^ [INFO] [stderr] 90 | | &Optimization::Max => coeff = 1., [INFO] [stderr] 91 | | &Optimization::Min => coeff = -1., [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | match self.lp.optimization { [INFO] [stderr] 90 | Optimization::Max => coeff = 1., [INFO] [stderr] 91 | Optimization::Min => coeff = -1., [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | if *self.tableau.get_unchecked([row, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([row, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | if *self.tableau.get_unchecked([row, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:184:8 [INFO] [stderr] | [INFO] [stderr] 184 | if coeff == 1. { [INFO] [stderr] | ^^^^^^^^^^^ help: consider comparing them within some error: `(coeff - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:184:8 [INFO] [stderr] | [INFO] [stderr] 184 | if coeff == 1. { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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/solver/impl_solver.rs:218:4 [INFO] [stderr] | [INFO] [stderr] 218 | match self.calc_pivot_ratio(row, col) { [INFO] [stderr] | _____________^ [INFO] [stderr] 219 | | Some(ratio) => { [INFO] [stderr] 220 | | if ratio < min_ratio { [INFO] [stderr] 221 | | min_ratio = ratio; [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => {} [INFO] [stderr] 226 | | } [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] 218 | if let Some(ratio) = self.calc_pivot_ratio(row, col) { [INFO] [stderr] 219 | if ratio < min_ratio { [INFO] [stderr] 220 | min_ratio = ratio; [INFO] [stderr] 221 | min_row = row; [INFO] [stderr] 222 | } [INFO] [stderr] 223 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | if *self.tableau.get_unchecked([row, col]) == 1. && self.is_basic(col) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([row, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | if *self.tableau.get_unchecked([row, col]) == 1. && self.is_basic(col) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver/impl_solver.rs:298:7 [INFO] [stderr] | [INFO] [stderr] 298 | if no_basic.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `no_basic.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solver/impl_solver.rs:378:47 [INFO] [stderr] | [INFO] [stderr] 378 | fn generate_phase_one(&self, unspanned_rows: &Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `col` is used to index `obj_function` [INFO] [stderr] --> src/solver/impl_solver.rs:423:15 [INFO] [stderr] | [INFO] [stderr] 423 | for col in 1 .. self.tableau.cols() - 1 { // Can ignore first and last elements of obj row [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 423 | for (col, ) in obj_function.iter().enumerate().take(self.tableau.cols() - 1).skip(1) { // Can ignore first and last elements of obj row [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:430:10 [INFO] [stderr] | [INFO] [stderr] 430 | if *self.tableau.get_unchecked([r, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([r, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:430:10 [INFO] [stderr] | [INFO] [stderr] 430 | if *self.tableau.get_unchecked([r, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vals` [INFO] [stderr] --> src/solver/mod.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0 .. vals.len() - self.lp.num_artificial_vars { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 55 | for (i, ) in vals.iter().enumerate().take(vals.len() - self.lp.num_artificial_vars) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rulp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:158:8 [INFO] [stderr] | [INFO] [stderr] 158 | for ref var in &constraint.variables { [INFO] [stderr] | ^^^^^^^ --------------------- help: try: `let var = &&constraint.variables;` [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/builder/impl_builder.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | for ref var in &obj.variables { [INFO] [stderr] | ^^^^^^^ -------------- help: try: `let var = &&obj.variables;` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/builder/impl_builder.rs:204:39 [INFO] [stderr] | [INFO] [stderr] 204 | fn check_variables(&self, variables: &Vec) -> Option<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:205:7 [INFO] [stderr] | [INFO] [stderr] 205 | for ref var in variables { [INFO] [stderr] | ^^^^^^^ --------- help: try: `let var = &variables;` [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: the variable `slack_ct` is used as a loop counter. Consider using `for (slack_ct, item) in constraints.enumerate()` or similar iterators [INFO] [stderr] --> src/builder/impl_builder.rs:242:12 [INFO] [stderr] | [INFO] [stderr] 242 | for i in constraints { [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:243:8 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut constraint = self.constraints[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------------- help: try: `let constraint = &mut self.constraints[i];` [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: the variable `excess_ct` is used as a loop counter. Consider using `for (excess_ct, item) in constraints.enumerate()` or similar iterators [INFO] [stderr] --> src/builder/impl_builder.rs:269:12 [INFO] [stderr] | [INFO] [stderr] 269 | for i in constraints { [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/builder/impl_builder.rs:270:8 [INFO] [stderr] | [INFO] [stderr] 270 | let ref mut constraint = self.constraints[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^----------------------- help: try: `let constraint = &mut self.constraints[i];` [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: length comparison to zero [INFO] [stderr] --> src/parser/impl_parser.rs:123:19 [INFO] [stderr] | [INFO] [stderr] 123 | .filter(|line| line.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.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: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | if line.contains("#") { [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:194:43 [INFO] [stderr] | [INFO] [stderr] 194 | let relation = if caps["type"].contains("<") { [INFO] [stderr] | ^^^ help: try using a char instead: `'<'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser/impl_parser.rs:196:35 [INFO] [stderr] | [INFO] [stderr] 196 | } else if caps["type"].contains(">") { [INFO] [stderr] | ^^^ help: try using a char instead: `'>'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/solver/impl_solver.rs:89:3 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.lp.optimization { [INFO] [stderr] | _________^ [INFO] [stderr] 90 | | &Optimization::Max => coeff = 1., [INFO] [stderr] 91 | | &Optimization::Min => coeff = -1., [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | match self.lp.optimization { [INFO] [stderr] 90 | Optimization::Max => coeff = 1., [INFO] [stderr] 91 | Optimization::Min => coeff = -1., [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | if *self.tableau.get_unchecked([row, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([row, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | if *self.tableau.get_unchecked([row, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:184:8 [INFO] [stderr] | [INFO] [stderr] 184 | if coeff == 1. { [INFO] [stderr] | ^^^^^^^^^^^ help: consider comparing them within some error: `(coeff - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:184:8 [INFO] [stderr] | [INFO] [stderr] 184 | if coeff == 1. { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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/solver/impl_solver.rs:218:4 [INFO] [stderr] | [INFO] [stderr] 218 | match self.calc_pivot_ratio(row, col) { [INFO] [stderr] | _____________^ [INFO] [stderr] 219 | | Some(ratio) => { [INFO] [stderr] 220 | | if ratio < min_ratio { [INFO] [stderr] 221 | | min_ratio = ratio; [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => {} [INFO] [stderr] 226 | | } [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] 218 | if let Some(ratio) = self.calc_pivot_ratio(row, col) { [INFO] [stderr] 219 | if ratio < min_ratio { [INFO] [stderr] 220 | min_ratio = ratio; [INFO] [stderr] 221 | min_row = row; [INFO] [stderr] 222 | } [INFO] [stderr] 223 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | if *self.tableau.get_unchecked([row, col]) == 1. && self.is_basic(col) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([row, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | if *self.tableau.get_unchecked([row, col]) == 1. && self.is_basic(col) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver/impl_solver.rs:298:7 [INFO] [stderr] | [INFO] [stderr] 298 | if no_basic.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `no_basic.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solver/impl_solver.rs:378:47 [INFO] [stderr] | [INFO] [stderr] 378 | fn generate_phase_one(&self, unspanned_rows: &Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `col` is used to index `obj_function` [INFO] [stderr] --> src/solver/impl_solver.rs:423:15 [INFO] [stderr] | [INFO] [stderr] 423 | for col in 1 .. self.tableau.cols() - 1 { // Can ignore first and last elements of obj row [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 423 | for (col, ) in obj_function.iter().enumerate().take(self.tableau.cols() - 1).skip(1) { // Can ignore first and last elements of obj row [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:430:10 [INFO] [stderr] | [INFO] [stderr] 430 | if *self.tableau.get_unchecked([r, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(*self.tableau.get_unchecked([r, col]) - 1.).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:430:10 [INFO] [stderr] | [INFO] [stderr] 430 | if *self.tableau.get_unchecked([r, col]) == 1. { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:546:6 [INFO] [stderr] | [INFO] [stderr] 546 | assert_eq!(simplex.calc_pivot_ratio(1, 1).unwrap(), 2.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:546:6 [INFO] [stderr] | [INFO] [stderr] 546 | assert_eq!(simplex.calc_pivot_ratio(1, 1).unwrap(), 2.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:547:6 [INFO] [stderr] | [INFO] [stderr] 547 | assert_eq!(simplex.calc_pivot_ratio(2, 1).unwrap(), 3.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:547:6 [INFO] [stderr] | [INFO] [stderr] 547 | assert_eq!(simplex.calc_pivot_ratio(2, 1).unwrap(), 3.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:656:3 [INFO] [stderr] | [INFO] [stderr] 656 | assert_eq!(solution.objective.unwrap(), 0.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:656:3 [INFO] [stderr] | [INFO] [stderr] 656 | assert_eq!(solution.objective.unwrap(), 0.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver/impl_solver.rs:715:3 [INFO] [stderr] | [INFO] [stderr] 715 | assert_eq!(solution.objective.unwrap(), 1052000.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver/impl_solver.rs:715:3 [INFO] [stderr] | [INFO] [stderr] 715 | assert_eq!(solution.objective.unwrap(), 1052000.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vals` [INFO] [stderr] --> src/solver/mod.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0 .. vals.len() - self.lp.num_artificial_vars { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 55 | for (i, ) in vals.iter().enumerate().take(vals.len() - self.lp.num_artificial_vars) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rulp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "86ce2abdc686901c3068512f3d1ae62aa766a82d49deeb415349aa372826ef74"` [INFO] running `"docker" "rm" "-f" "86ce2abdc686901c3068512f3d1ae62aa766a82d49deeb415349aa372826ef74"` [INFO] [stdout] 86ce2abdc686901c3068512f3d1ae62aa766a82d49deeb415349aa372826ef74