[INFO] updating cached repository droundy/rust-student-pairs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/droundy/rust-student-pairs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/droundy/rust-student-pairs" "work/ex/clippy-test-run/sources/stable/gh/droundy/rust-student-pairs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/droundy/rust-student-pairs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/droundy/rust-student-pairs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/droundy/rust-student-pairs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/droundy/rust-student-pairs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 046b9ad4b439685c0b3f1a99fb21a8669a86d1c2 [INFO] sha for GitHub repo droundy/rust-student-pairs: 046b9ad4b439685c0b3f1a99fb21a8669a86d1c2 [INFO] validating manifest of droundy/rust-student-pairs 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 droundy/rust-student-pairs 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 droundy/rust-student-pairs [INFO] finished frobbing droundy/rust-student-pairs [INFO] frobbed toml for droundy/rust-student-pairs written to work/ex/clippy-test-run/sources/stable/gh/droundy/rust-student-pairs/Cargo.toml [INFO] started frobbing droundy/rust-student-pairs [INFO] finished frobbing droundy/rust-student-pairs [INFO] frobbed toml for droundy/rust-student-pairs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/droundy/rust-student-pairs/Cargo.toml [INFO] crate droundy/rust-student-pairs 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 droundy/rust-student-pairs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/droundy/rust-student-pairs:/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] 9820979f5f6ddbc4e020b92d938a3731c3869d07908619ea338cf5b272aef805 [INFO] running `"docker" "start" "-a" "9820979f5f6ddbc4e020b92d938a3731c3869d07908619ea338cf5b272aef805"` [INFO] [stderr] Compiling memchr v2.0.2 [INFO] [stderr] Checking filetime v0.1.15 [INFO] [stderr] Checking base64 v0.7.0 [INFO] [stderr] Checking tinyset v0.2.2 [INFO] [stderr] Compiling serde v1.0.75 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking buf_redux v0.6.3 [INFO] [stderr] Checking thread_local v0.3.3 [INFO] [stderr] Checking mime v0.2.6 [INFO] [stderr] Checking twoway v0.1.8 [INFO] [stderr] Checking brotli-sys v0.2.1 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Checking url v0.2.38 [INFO] [stderr] Compiling nom v4.0.0 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking gzip-header v0.1.2 [INFO] [stderr] Checking brotli2 v0.2.2 [INFO] [stderr] Checking state v0.4.1 [INFO] [stderr] Checking askama_shared v0.7.1 [INFO] [stderr] Checking chrono v0.2.25 [INFO] [stderr] Compiling mime_guess v1.8.6 [INFO] [stderr] Checking deflate v0.7.18 [INFO] [stderr] Checking internment v0.3.6 [INFO] [stderr] Checking tiny_http v0.5.9 [INFO] [stderr] Checking multipart v0.13.6 [INFO] [stderr] Checking rouille v2.1.0 [INFO] [stderr] Compiling toml v0.4.6 [INFO] [stderr] Compiling askama_derive v0.7.1 [INFO] [stderr] Compiling askama v0.7.1 [INFO] [stderr] Compiling rust-student-pairs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/atomicfile.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | dir: dir, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [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/atomicfile.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/database.rs:553:21 [INFO] [stderr] | [INFO] [stderr] 553 | day: day, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `day` [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/database.rs:555:21 [INFO] [stderr] | [INFO] [stderr] 555 | current_pairing: current_pairing, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_pairing` [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/database.rs:559:21 [INFO] [stderr] | [INFO] [stderr] 559 | previous_team: previous_team, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_team` [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/database.rs:689:29 [INFO] [stderr] | [INFO] [stderr] 689 | primary: primary, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `primary` [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/database.rs:691:29 [INFO] [stderr] | [INFO] [stderr] 691 | team: team, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `team` [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/database.rs:692:29 [INFO] [stderr] | [INFO] [stderr] 692 | section: section, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `section` [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/atomicfile.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | dir: dir, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [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/atomicfile.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/database.rs:553:21 [INFO] [stderr] | [INFO] [stderr] 553 | day: day, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `day` [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/database.rs:555:21 [INFO] [stderr] | [INFO] [stderr] 555 | current_pairing: current_pairing, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_pairing` [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/database.rs:559:21 [INFO] [stderr] | [INFO] [stderr] 559 | previous_team: previous_team, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_team` [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/database.rs:689:29 [INFO] [stderr] | [INFO] [stderr] 689 | primary: primary, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `primary` [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/database.rs:691:29 [INFO] [stderr] | [INFO] [stderr] 691 | team: team, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `team` [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/database.rs:692:29 [INFO] [stderr] | [INFO] [stderr] 692 | section: section, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `section` [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 `#[macro_use]` import [INFO] [stderr] --> src/main.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/database.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | return &self.days[day.id]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.days[day.id]` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/database.rs:368:28 [INFO] [stderr] | [INFO] [stderr] 368 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 369 | | if remove_student_from_vec(secondary, &mut students).is_some() { [INFO] [stderr] 370 | | println!(">>> {} is now alone in {} ({} dropped)", secondary, team, primary); [INFO] [stderr] 371 | | newpairings.push(Pairing::Solo { student: secondary, [INFO] [stderr] ... | [INFO] [stderr] 375 | | } [INFO] [stderr] 376 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 368 | } else if remove_student_from_vec(secondary, &mut students).is_some() { [INFO] [stderr] 369 | println!(">>> {} is now alone in {} ({} dropped)", secondary, team, primary); [INFO] [stderr] 370 | newpairings.push(Pairing::Solo { student: secondary, [INFO] [stderr] 371 | section, team }); [INFO] [stderr] 372 | possible_teams = possible_teams.iter().cloned() [INFO] [stderr] 373 | .filter(|&t| t != team).collect(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/database.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | return &self.days[day.id]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.days[day.id]` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/database.rs:368:28 [INFO] [stderr] | [INFO] [stderr] 368 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 369 | | if remove_student_from_vec(secondary, &mut students).is_some() { [INFO] [stderr] 370 | | println!(">>> {} is now alone in {} ({} dropped)", secondary, team, primary); [INFO] [stderr] 371 | | newpairings.push(Pairing::Solo { student: secondary, [INFO] [stderr] ... | [INFO] [stderr] 375 | | } [INFO] [stderr] 376 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 368 | } else if remove_student_from_vec(secondary, &mut students).is_some() { [INFO] [stderr] 369 | println!(">>> {} is now alone in {} ({} dropped)", secondary, team, primary); [INFO] [stderr] 370 | newpairings.push(Pairing::Solo { student: secondary, [INFO] [stderr] 371 | section, team }); [INFO] [stderr] 372 | possible_teams = possible_teams.iter().cloned() [INFO] [stderr] 373 | .filter(|&t| t != team).collect(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/atomicfile.rs:28:24 [INFO] [stderr] | [INFO] [stderr] 28 | Some(p) if p.as_os_str().len() == 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `p.as_os_str().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: redundant closure found [INFO] [stderr] --> src/database.rs:46:32 [INFO] [stderr] | [INFO] [stderr] 46 | usize::from_str(s).map(|x| Day::from(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Day::from` [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: length comparison to zero [INFO] [stderr] --> src/atomicfile.rs:28:24 [INFO] [stderr] | [INFO] [stderr] 28 | Some(p) if p.as_os_str().len() == 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `p.as_os_str().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: redundant closure found [INFO] [stderr] --> src/database.rs:46:32 [INFO] [stderr] | [INFO] [stderr] 46 | usize::from_str(s).map(|x| Day::from(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Day::from` [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: you should consider deriving a `Default` implementation for `database::Data` [INFO] [stderr] --> src/database.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | / pub fn new() -> Self { [INFO] [stderr] 174 | | if let Ok(f) = ::std::fs::File::open("pairs.yaml") { [INFO] [stderr] 175 | | if let Ok(s) = serde_yaml::from_reader::<_,Self>(&f) { [INFO] [stderr] 176 | | return s; [INFO] [stderr] ... | [INFO] [stderr] 186 | | } [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 156 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | if let Some(s2) = options.iter().cloned() [INFO] [stderr] | ___________________________^ [INFO] [stderr] 215 | | .filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)) [INFO] [stderr] 216 | | .next() [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)).next()` with `find(|&s2| self.nonrepeat_partners_for_day(day, s1, s2))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/database.rs:257:37 [INFO] [stderr] | [INFO] [stderr] 257 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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: you should consider deriving a `Default` implementation for `database::Data` [INFO] [stderr] --> src/database.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | / pub fn new() -> Self { [INFO] [stderr] 174 | | if let Ok(f) = ::std::fs::File::open("pairs.yaml") { [INFO] [stderr] 175 | | if let Ok(s) = serde_yaml::from_reader::<_,Self>(&f) { [INFO] [stderr] 176 | | return s; [INFO] [stderr] ... | [INFO] [stderr] 186 | | } [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 156 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/database.rs:313:37 [INFO] [stderr] | [INFO] [stderr] 313 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | if let Some(s2) = options.iter().cloned() [INFO] [stderr] | ___________________________^ [INFO] [stderr] 215 | | .filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)) [INFO] [stderr] 216 | | .next() [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)).next()` with `find(|&s2| self.nonrepeat_partners_for_day(day, s1, s2))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/database.rs:257:37 [INFO] [stderr] | [INFO] [stderr] 257 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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/database.rs:313:37 [INFO] [stderr] | [INFO] [stderr] 313 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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/database.rs:402:37 [INFO] [stderr] | [INFO] [stderr] 402 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/database.rs:425:21 [INFO] [stderr] | [INFO] [stderr] 425 | / self.days[day.id-1].iter() [INFO] [stderr] 426 | | .filter(|pp| pp.team() == p.team()) [INFO] [stderr] 427 | | .map(|p| p.present_students()) [INFO] [stderr] 428 | | .next().unwrap_or(Vec::new()) [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 425 | self.days[day.id-1].iter() [INFO] [stderr] 426 | .filter(|pp| pp.team() == p.team()) [INFO] [stderr] 427 | .map(|p| p.present_students()) [INFO] [stderr] 428 | .next().unwrap_or_default() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/database.rs:402:37 [INFO] [stderr] | [INFO] [stderr] 402 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_teams.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: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:562:24 [INFO] [stderr] | [INFO] [stderr] 562 | if pairings.iter() [INFO] [stderr] | ________________________^ [INFO] [stderr] 563 | | .filter(|p| p.team() == Some(*t)) [INFO] [stderr] 564 | | .filter(|p| !p.has(s)) [INFO] [stderr] 565 | | .filter(|p| p.full_pair() || (p.section().is_some() [INFO] [stderr] 566 | | && opt.current_section().is_some() [INFO] [stderr] 567 | | && p.section() != opt.current_section())) [INFO] [stderr] 568 | | .next().is_none() [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/database.rs:591:52 [INFO] [stderr] | [INFO] [stderr] 591 | .any(|p| *p == Pairing::Absent((*s).clone()))) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*(*s)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/database.rs:425:21 [INFO] [stderr] | [INFO] [stderr] 425 | / self.days[day.id-1].iter() [INFO] [stderr] 426 | | .filter(|pp| pp.team() == p.team()) [INFO] [stderr] 427 | | .map(|p| p.present_students()) [INFO] [stderr] 428 | | .next().unwrap_or(Vec::new()) [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 425 | self.days[day.id-1].iter() [INFO] [stderr] 426 | .filter(|pp| pp.team() == p.team()) [INFO] [stderr] 427 | .map(|p| p.present_students()) [INFO] [stderr] 428 | .next().unwrap_or_default() [INFO] [stderr] | [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/database.rs:645:9 [INFO] [stderr] | [INFO] [stderr] 645 | / match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] 646 | | Some(Pairing::Pair{ primary, secondary, team, section }) => { [INFO] [stderr] 647 | | if primary != student { [INFO] [stderr] 648 | | newpairings.insert(Pairing::Solo { [INFO] [stderr] ... | [INFO] [stderr] 661 | | _ => (), [INFO] [stderr] 662 | | } [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] 645 | if let Some(Pairing::Pair{ primary, secondary, team, section }) = self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] 646 | if primary != student { [INFO] [stderr] 647 | newpairings.insert(Pairing::Solo { [INFO] [stderr] 648 | student: primary, [INFO] [stderr] 649 | team, [INFO] [stderr] 650 | section [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:645:15 [INFO] [stderr] | [INFO] [stderr] 645 | match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.has(student)).next()` with `find(|p| p.has(student))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:679:19 [INFO] [stderr] | [INFO] [stderr] 679 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.team() == Some(team)).next()` with `find(|p| p.team() == Some(team))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:704:29 [INFO] [stderr] | [INFO] [stderr] 704 | let section = match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.has(student)).next()` with `find(|p| p.has(student))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:715:15 [INFO] [stderr] | [INFO] [stderr] 715 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.team() == Some(team)).next()` with `find(|p| p.team() == Some(team))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:562:24 [INFO] [stderr] | [INFO] [stderr] 562 | if pairings.iter() [INFO] [stderr] | ________________________^ [INFO] [stderr] 563 | | .filter(|p| p.team() == Some(*t)) [INFO] [stderr] 564 | | .filter(|p| !p.has(s)) [INFO] [stderr] 565 | | .filter(|p| p.full_pair() || (p.section().is_some() [INFO] [stderr] 566 | | && opt.current_section().is_some() [INFO] [stderr] 567 | | && p.section() != opt.current_section())) [INFO] [stderr] 568 | | .next().is_none() [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/database.rs:591:52 [INFO] [stderr] | [INFO] [stderr] 591 | .any(|p| *p == Pairing::Absent((*s).clone()))) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*(*s)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database.rs:645:9 [INFO] [stderr] | [INFO] [stderr] 645 | / match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] 646 | | Some(Pairing::Pair{ primary, secondary, team, section }) => { [INFO] [stderr] 647 | | if primary != student { [INFO] [stderr] 648 | | newpairings.insert(Pairing::Solo { [INFO] [stderr] ... | [INFO] [stderr] 661 | | _ => (), [INFO] [stderr] 662 | | } [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] 645 | if let Some(Pairing::Pair{ primary, secondary, team, section }) = self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] 646 | if primary != student { [INFO] [stderr] 647 | newpairings.insert(Pairing::Solo { [INFO] [stderr] 648 | student: primary, [INFO] [stderr] 649 | team, [INFO] [stderr] 650 | section [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:645:15 [INFO] [stderr] | [INFO] [stderr] 645 | match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.has(student)).next()` with `find(|p| p.has(student))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:852:34 [INFO] [stderr] | [INFO] [stderr] 852 | fn is_current_team(&self, t: &Team) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Team` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:861:37 [INFO] [stderr] | [INFO] [stderr] 861 | fn is_current_section(&self, s: &Section) -> bool { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Section` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:864:35 [INFO] [stderr] | [INFO] [stderr] 864 | fn is_previous_team(&self, t: &Team) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Team` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:679:19 [INFO] [stderr] | [INFO] [stderr] 679 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.team() == Some(team)).next()` with `find(|p| p.team() == Some(team))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:704:29 [INFO] [stderr] | [INFO] [stderr] 704 | let section = match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.has(student)).next()` with `find(|p| p.has(student))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:715:15 [INFO] [stderr] | [INFO] [stderr] 715 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|p| p.team() == Some(team)).next()` with `find(|p| p.team() == Some(team))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:911:38 [INFO] [stderr] | [INFO] [stderr] 911 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 912 | | .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stderr] | |______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|(o,_)| o.clone() == c.clone()).next()` with `find(|(o,_)| o.clone() == c.clone())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/database.rs:927:56 [INFO] [stderr] | [INFO] [stderr] 927 | self.current.clone().map(|x| format!("{}", x)).unwrap_or("-".to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "-".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:852:34 [INFO] [stderr] | [INFO] [stderr] 852 | fn is_current_team(&self, t: &Team) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Team` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:861:37 [INFO] [stderr] | [INFO] [stderr] 861 | fn is_current_section(&self, s: &Section) -> bool { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Section` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/database.rs:864:35 [INFO] [stderr] | [INFO] [stderr] 864 | fn is_previous_team(&self, t: &Team) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Team` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/database.rs:911:38 [INFO] [stderr] | [INFO] [stderr] 911 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 912 | | .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stderr] | |______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|(o,_)| o.clone() == c.clone()).next()` with `find(|(o,_)| o.clone() == c.clone())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/database.rs:927:56 [INFO] [stderr] | [INFO] [stderr] 927 | self.current.clone().map(|x| format!("{}", x)).unwrap_or("-".to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "-".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 71 [INFO] [stderr] --> src/main.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | rouille::start_server("0.0.0.0:8088", move |request| { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 71 | | let response = rouille::match_assets(&request, "static"); [INFO] [stderr] 72 | | if response.is_success() { [INFO] [stderr] 73 | | return response; [INFO] [stderr] ... | [INFO] [stderr] 347 | | Response::html(html) [INFO] [stderr] 348 | | }); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 86 | | id: usize, [INFO] [stderr] 87 | | name: String, [INFO] [stderr] 88 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:127:23 [INFO] [stderr] | [INFO] [stderr] 127 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 128 | | team: String, [INFO] [stderr] 129 | | section: String, [INFO] [stderr] 130 | | student: String, [INFO] [stderr] 131 | | action: String, [INFO] [stderr] 132 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:189:23 [INFO] [stderr] | [INFO] [stderr] 189 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 190 | | team: String, [INFO] [stderr] 191 | | section: String, [INFO] [stderr] 192 | | primary: String, [INFO] [stderr] 193 | | secondary: String, [INFO] [stderr] 194 | | action: String, [INFO] [stderr] 195 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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 function has a cyclomatic complexity of 71 [INFO] [stderr] --> src/main.rs:70:43 [INFO] [stderr] | [INFO] [stderr] 70 | rouille::start_server("0.0.0.0:8088", move |request| { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 71 | | let response = rouille::match_assets(&request, "static"); [INFO] [stderr] 72 | | if response.is_success() { [INFO] [stderr] 73 | | return response; [INFO] [stderr] ... | [INFO] [stderr] 347 | | Response::html(html) [INFO] [stderr] 348 | | }); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:251:23 [INFO] [stderr] | [INFO] [stderr] 251 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 252 | | section: String, [INFO] [stderr] 253 | | oldname: String, [INFO] [stderr] 254 | | newname: String, [INFO] [stderr] 255 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 86 | | id: usize, [INFO] [stderr] 87 | | name: String, [INFO] [stderr] 88 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mem_replace_option_with_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:127:23 [INFO] [stderr] | [INFO] [stderr] 127 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 128 | | team: String, [INFO] [stderr] 129 | | section: String, [INFO] [stderr] 130 | | student: String, [INFO] [stderr] 131 | | action: String, [INFO] [stderr] 132 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:287:23 [INFO] [stderr] | [INFO] [stderr] 287 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 288 | | oldname: String, [INFO] [stderr] 289 | | newname: String, [INFO] [stderr] 290 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:318:23 [INFO] [stderr] | [INFO] [stderr] 318 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 319 | | oldname: String, [INFO] [stderr] 320 | | newname: String, [INFO] [stderr] 321 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:189:23 [INFO] [stderr] | [INFO] [stderr] 189 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 190 | | team: String, [INFO] [stderr] 191 | | section: String, [INFO] [stderr] 192 | | primary: String, [INFO] [stderr] 193 | | secondary: String, [INFO] [stderr] 194 | | action: String, [INFO] [stderr] 195 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:251:23 [INFO] [stderr] | [INFO] [stderr] 251 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 252 | | section: String, [INFO] [stderr] 253 | | oldname: String, [INFO] [stderr] 254 | | newname: String, [INFO] [stderr] 255 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:287:23 [INFO] [stderr] | [INFO] [stderr] 287 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 288 | | oldname: String, [INFO] [stderr] 289 | | newname: String, [INFO] [stderr] 290 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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: replacing an `Option` with `None` [INFO] [stderr] --> src/main.rs:318:23 [INFO] [stderr] | [INFO] [stderr] 318 | match post_input!(request, { [INFO] [stderr] | _______________________^ [INFO] [stderr] 319 | | oldname: String, [INFO] [stderr] 320 | | newname: String, [INFO] [stderr] 321 | | }) { [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [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] Finished dev [unoptimized + debuginfo] target(s) in 52.34s [INFO] running `"docker" "inspect" "9820979f5f6ddbc4e020b92d938a3731c3869d07908619ea338cf5b272aef805"` [INFO] running `"docker" "rm" "-f" "9820979f5f6ddbc4e020b92d938a3731c3869d07908619ea338cf5b272aef805"` [INFO] [stdout] 9820979f5f6ddbc4e020b92d938a3731c3869d07908619ea338cf5b272aef805