[INFO] updating cached repository keatinge/rust-schedule-optimizer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/keatinge/rust-schedule-optimizer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/keatinge/rust-schedule-optimizer" "work/ex/clippy-test-run/sources/stable/gh/keatinge/rust-schedule-optimizer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/keatinge/rust-schedule-optimizer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/keatinge/rust-schedule-optimizer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/keatinge/rust-schedule-optimizer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/keatinge/rust-schedule-optimizer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 110685c1cdff41914c8ef824555457b549a998da [INFO] sha for GitHub repo keatinge/rust-schedule-optimizer: 110685c1cdff41914c8ef824555457b549a998da [INFO] validating manifest of keatinge/rust-schedule-optimizer 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 keatinge/rust-schedule-optimizer 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 keatinge/rust-schedule-optimizer [INFO] finished frobbing keatinge/rust-schedule-optimizer [INFO] frobbed toml for keatinge/rust-schedule-optimizer written to work/ex/clippy-test-run/sources/stable/gh/keatinge/rust-schedule-optimizer/Cargo.toml [INFO] started frobbing keatinge/rust-schedule-optimizer [INFO] finished frobbing keatinge/rust-schedule-optimizer [INFO] frobbed toml for keatinge/rust-schedule-optimizer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/keatinge/rust-schedule-optimizer/Cargo.toml [INFO] crate keatinge/rust-schedule-optimizer 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 keatinge/rust-schedule-optimizer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/keatinge/rust-schedule-optimizer:/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] 96190df81b85b3877d2cb2c259dd929dbaabbe93f2ab95bf61e9fcc1d44ae529 [INFO] running `"docker" "start" "-a" "96190df81b85b3877d2cb2c259dd929dbaabbe93f2ab95bf61e9fcc1d44ae529"` [INFO] [stderr] Compiling rand v0.4.2 [INFO] [stderr] Compiling rand v0.3.22 [INFO] [stderr] Compiling phf_generator v0.7.21 [INFO] [stderr] Compiling string_cache_codegen v0.4.0 [INFO] [stderr] Compiling phf_codegen v0.7.21 [INFO] [stderr] Compiling string_cache v0.6.2 [INFO] [stderr] Compiling markup5ever v0.3.2 [INFO] [stderr] Checking html5ever v0.18.0 [INFO] [stderr] Checking select v0.4.2 [INFO] [stderr] Checking sched v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | s_time: s_time [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `s_time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | course_num: course_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `course_num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | s_time: s_time [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `s_time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | course_num: course_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `course_num` [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: unused import: `Equal` [INFO] [stderr] --> src/main.rs:5:32 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cmp::Ordering::{Less, Equal, Greater}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Attr`, `Predicate` [INFO] [stderr] --> src/main.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | use select::predicate::{Predicate, Attr, Class as HTMLClass, Name, And}; [INFO] [stderr] | ^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | return mb; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `mb` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | 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/main.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | return false; // They are equal [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | return days[day as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `days[day as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:598:5 [INFO] [stderr] | [INFO] [stderr] 598 | return courses; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `courses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:637:5 [INFO] [stderr] | [INFO] [stderr] 637 | 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: unused import: `Equal` [INFO] [stderr] --> src/main.rs:5:32 [INFO] [stderr] | [INFO] [stderr] 5 | use std::cmp::Ordering::{Less, Equal, Greater}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Attr`, `Predicate` [INFO] [stderr] --> src/main.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | use select::predicate::{Predicate, Attr, Class as HTMLClass, Name, And}; [INFO] [stderr] | ^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | return mb; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `mb` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | 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/main.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | return false; // They are equal [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | return days[day as usize] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `days[day as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:598:5 [INFO] [stderr] | [INFO] [stderr] 598 | return courses; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `courses` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:637:5 [INFO] [stderr] | [INFO] [stderr] 637 | 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: constant item is never used: `CRN_INDEX` [INFO] [stderr] --> src/main.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | const CRN_INDEX:usize = 1_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `INSTRUCTOR_INDEX` [INFO] [stderr] --> src/main.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | const INSTRUCTOR_INDEX:usize = 19_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `LOC_INDEX` [INFO] [stderr] --> src/main.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const LOC_INDEX:usize = 21_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Class` [INFO] [stderr] --> src/main.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | struct Class<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_stack` [INFO] [stderr] --> src/main.rs:145:1 [INFO] [stderr] | [INFO] [stderr] 145 | fn print_stack(stack: &[&Section]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/main.rs:168:33 [INFO] [stderr] | [INFO] [stderr] 168 | fn schedule_credit_hours(sched: &Vec<&Section>) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:169:26 [INFO] [stderr] | [INFO] [stderr] 169 | sched.iter().map(|s| s.credits as u32 ).sum::() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(s.credits)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:172:34 [INFO] [stderr] | [INFO] [stderr] 172 | fn schedule_starting_time(sched: &Vec<&Section>) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | fn schedule_bs_time(sched: &Vec<&Section>) -> TimeAnalysis { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | assert!(day >= 0 && day < 7); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/main.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | assert!(day >= 0 && day < 7); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | / match o { [INFO] [stderr] 285 | | &Less => Greater, [INFO] [stderr] 286 | | &Greater => Less, [INFO] [stderr] 287 | | _=> panic!() [INFO] [stderr] 288 | | } [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: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 284 | match *o { [INFO] [stderr] 285 | Less => Greater, [INFO] [stderr] 286 | Greater => Less, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | / let mut total_score = 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty; [INFO] [stderr] 336 | | [INFO] [stderr] 337 | | [INFO] [stderr] 338 | | //TODO [INFO] [stderr] 339 | | if credit_hours < 16 || credit_hours > 20 { [INFO] [stderr] 340 | | total_score = -std::f64::INFINITY; [INFO] [stderr] 341 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let total_score = if credit_hours < 16 || credit_hours > 20 { -std::f64::INFINITY } else { 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:330:27 [INFO] [stderr] | [INFO] [stderr] 330 | let bs_time_penalty = time_analysis.bs_time as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.bs_time)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:331:38 [INFO] [stderr] | [INFO] [stderr] 331 | let back_to_dorm_count_penalty = time_analysis.back_to_dorm_count as f64 * 20.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.back_to_dorm_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:332:40 [INFO] [stderr] | [INFO] [stderr] 332 | let back_to_dorm_minutes_penalty = time_analysis.back_to_dorm_minutes as f64 / 100.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.back_to_dorm_minutes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:335:33 [INFO] [stderr] | [INFO] [stderr] 335 | let mut total_score = 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dt)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:359:8 [INFO] [stderr] | [INFO] [stderr] 359 | if courses.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `courses.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: length comparison to zero [INFO] [stderr] --> src/main.rs:360:12 [INFO] [stderr] | [INFO] [stderr] 360 | if stack.len() != 0 && stack.len() == 4{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/main.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | / fn get_immediate_inner_text<'a>(n: select::node::Node<'a>) -> Option<&'a str> { [INFO] [stderr] 387 | | n.children().next().and_then(|c| { [INFO] [stderr] 388 | | c.as_text().and_then(|t| { [INFO] [stderr] 389 | | if t.len() == 2 && t.chars().nth(0).unwrap() == NBSP { [INFO] [stderr] ... | [INFO] [stderr] 397 | | [INFO] [stderr] 398 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `CRN_INDEX` [INFO] [stderr] --> src/main.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | const CRN_INDEX:usize = 1_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `INSTRUCTOR_INDEX` [INFO] [stderr] --> src/main.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | const INSTRUCTOR_INDEX:usize = 19_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `LOC_INDEX` [INFO] [stderr] --> src/main.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const LOC_INDEX:usize = 21_usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Class` [INFO] [stderr] --> src/main.rs:120:1 [INFO] [stderr] | [INFO] [stderr] 120 | struct Class<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_stack` [INFO] [stderr] --> src/main.rs:145:1 [INFO] [stderr] | [INFO] [stderr] 145 | fn print_stack(stack: &[&Section]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | hours = hours + 12; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hours += 12` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [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/main.rs:466:33 [INFO] [stderr] | [INFO] [stderr] 466 | fn get_time_in_row<'a, 'b>(rows:&'b Vec>, row_i:usize) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[select::node::Node<'a>]` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:470:8 [INFO] [stderr] | [INFO] [stderr] 470 | if next_row_tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `next_row_tds.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/main.rs:486:39 [INFO] [stderr] | [INFO] [stderr] 486 | fn get_time_continuation<'a, 'b>(rows:&'b Vec>, row_i:usize) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[select::node::Node<'a>]` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:496:12 [INFO] [stderr] | [INFO] [stderr] 496 | if next_row_tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `next_row_tds.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/main.rs:168:33 [INFO] [stderr] | [INFO] [stderr] 168 | fn schedule_credit_hours(sched: &Vec<&Section>) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:169:26 [INFO] [stderr] | [INFO] [stderr] 169 | sched.iter().map(|s| s.credits as u32 ).sum::() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(s.credits)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:172:34 [INFO] [stderr] | [INFO] [stderr] 172 | fn schedule_starting_time(sched: &Vec<&Section>) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | fn schedule_bs_time(sched: &Vec<&Section>) -> TimeAnalysis { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[&Section]` [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: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | assert!(day >= 0 && day < 7); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/main.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | assert!(day >= 0 && day < 7); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:529:12 [INFO] [stderr] | [INFO] [stderr] 529 | if tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tds.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] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | / match o { [INFO] [stderr] 285 | | &Less => Greater, [INFO] [stderr] 286 | | &Greater => Less, [INFO] [stderr] 287 | | _=> panic!() [INFO] [stderr] 288 | | } [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: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 284 | match *o { [INFO] [stderr] 285 | Less => Greater, [INFO] [stderr] 286 | Greater => Less, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | / let mut total_score = 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty; [INFO] [stderr] 336 | | [INFO] [stderr] 337 | | [INFO] [stderr] 338 | | //TODO [INFO] [stderr] 339 | | if credit_hours < 16 || credit_hours > 20 { [INFO] [stderr] 340 | | total_score = -std::f64::INFINITY; [INFO] [stderr] 341 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let total_score = if credit_hours < 16 || credit_hours > 20 { -std::f64::INFINITY } else { 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:330:27 [INFO] [stderr] | [INFO] [stderr] 330 | let bs_time_penalty = time_analysis.bs_time as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.bs_time)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:331:38 [INFO] [stderr] | [INFO] [stderr] 331 | let back_to_dorm_count_penalty = time_analysis.back_to_dorm_count as f64 * 20.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.back_to_dorm_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:332:40 [INFO] [stderr] | [INFO] [stderr] 332 | let back_to_dorm_minutes_penalty = time_analysis.back_to_dorm_minutes as f64 / 100.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(time_analysis.back_to_dorm_minutes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:335:33 [INFO] [stderr] | [INFO] [stderr] 335 | let mut total_score = 0.0 - (dt as f64) - bs_time_penalty - back_to_dorm_count_penalty - back_to_dorm_minutes_penalty; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dt)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:359:8 [INFO] [stderr] | [INFO] [stderr] 359 | if courses.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `courses.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: the loop variable `i` is used to index `v` [INFO] [stderr] --> src/main.rs:628:14 [INFO] [stderr] | [INFO] [stderr] 628 | for i in 0..v.len() { [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] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:360:12 [INFO] [stderr] | [INFO] [stderr] 360 | if stack.len() != 0 && stack.len() == 4{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.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] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 628 | for (i, ) in v.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/main.rs:386:1 [INFO] [stderr] | [INFO] [stderr] 386 | / fn get_immediate_inner_text<'a>(n: select::node::Node<'a>) -> Option<&'a str> { [INFO] [stderr] 387 | | n.children().next().and_then(|c| { [INFO] [stderr] 388 | | c.as_text().and_then(|t| { [INFO] [stderr] 389 | | if t.len() == 2 && t.chars().nth(0).unwrap() == NBSP { [INFO] [stderr] ... | [INFO] [stderr] 397 | | [INFO] [stderr] 398 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | hours = hours + 12; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hours += 12` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:668:51 [INFO] [stderr] | [INFO] [stderr] 668 | let mut evaluations = results.into_iter().map(|s| evaluate_schedule(s)).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `evaluate_schedule` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: variable `SHOULD_PRUNE` should have a snake case name such as `should_prune` [INFO] [stderr] --> src/main.rs:673:9 [INFO] [stderr] | [INFO] [stderr] 673 | let SHOULD_PRUNE = true; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:688:5 [INFO] [stderr] | [INFO] [stderr] 688 | file.write_all(full_data.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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/main.rs:466:33 [INFO] [stderr] | [INFO] [stderr] 466 | fn get_time_in_row<'a, 'b>(rows:&'b Vec>, row_i:usize) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[select::node::Node<'a>]` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:470:8 [INFO] [stderr] | [INFO] [stderr] 470 | if next_row_tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `next_row_tds.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/main.rs:486:39 [INFO] [stderr] | [INFO] [stderr] 486 | fn get_time_continuation<'a, 'b>(rows:&'b Vec>, row_i:usize) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[select::node::Node<'a>]` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:496:12 [INFO] [stderr] | [INFO] [stderr] 496 | if next_row_tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `next_row_tds.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: length comparison to zero [INFO] [stderr] --> src/main.rs:529:12 [INFO] [stderr] | [INFO] [stderr] 529 | if tds.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tds.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: the loop variable `i` is used to index `v` [INFO] [stderr] --> src/main.rs:628:14 [INFO] [stderr] | [INFO] [stderr] 628 | for i in 0..v.len() { [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] 628 | for (i, ) in v.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:668:51 [INFO] [stderr] | [INFO] [stderr] 668 | let mut evaluations = results.into_iter().map(|s| evaluate_schedule(s)).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `evaluate_schedule` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: variable `SHOULD_PRUNE` should have a snake case name such as `should_prune` [INFO] [stderr] --> src/main.rs:673:9 [INFO] [stderr] | [INFO] [stderr] 673 | let SHOULD_PRUNE = true; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:688:5 [INFO] [stderr] | [INFO] [stderr] 688 | file.write_all(full_data.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `sched`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `sched`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "96190df81b85b3877d2cb2c259dd929dbaabbe93f2ab95bf61e9fcc1d44ae529"` [INFO] running `"docker" "rm" "-f" "96190df81b85b3877d2cb2c259dd929dbaabbe93f2ab95bf61e9fcc1d44ae529"` [INFO] [stdout] 96190df81b85b3877d2cb2c259dd929dbaabbe93f2ab95bf61e9fcc1d44ae529