[INFO] updating cached repository bobvandenberge/dammen-in-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bobvandenberge/dammen-in-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bobvandenberge/dammen-in-rust" "work/ex/clippy-test-run/sources/stable/gh/bobvandenberge/dammen-in-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/bobvandenberge/dammen-in-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bobvandenberge/dammen-in-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bobvandenberge/dammen-in-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bobvandenberge/dammen-in-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9f99688a5cef38ff10e1ba94a0a6181bbec82324 [INFO] sha for GitHub repo bobvandenberge/dammen-in-rust: 9f99688a5cef38ff10e1ba94a0a6181bbec82324 [INFO] validating manifest of bobvandenberge/dammen-in-rust 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 bobvandenberge/dammen-in-rust 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 bobvandenberge/dammen-in-rust [INFO] finished frobbing bobvandenberge/dammen-in-rust [INFO] frobbed toml for bobvandenberge/dammen-in-rust written to work/ex/clippy-test-run/sources/stable/gh/bobvandenberge/dammen-in-rust/Cargo.toml [INFO] started frobbing bobvandenberge/dammen-in-rust [INFO] finished frobbing bobvandenberge/dammen-in-rust [INFO] frobbed toml for bobvandenberge/dammen-in-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bobvandenberge/dammen-in-rust/Cargo.toml [INFO] crate bobvandenberge/dammen-in-rust 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 bobvandenberge/dammen-in-rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/bobvandenberge/dammen-in-rust:/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] f85a3567f0973e2061175e8e339887f70bdb9a2da8adbb8cc7a135b478baaaec [INFO] running `"docker" "start" "-a" "f85a3567f0973e2061175e8e339887f70bdb9a2da8adbb8cc7a135b478baaaec"` [INFO] [stderr] Checking regex v0.2.11 [INFO] [stderr] Checking dammen v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/bord.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return bord; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `bord` [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/core/engine/regels.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/engine/regels.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return Err(String::from("Je mag maar 1 stap per keer zetten")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(String::from("Je mag maar 1 stap per keer zetten"))` [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: variable does not need to be mutable [INFO] [stderr] --> src/core/bord.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut veld = &mut self.velden[index]; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dam` [INFO] [stderr] --> src/core/schijf.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Dam(SchijfKleur), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/core/engine/regels.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | pub fn new(geslagen_schijf_positie: u32, eind_positie: u32) -> SlagOptie { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BeurtBlijftGelijk` [INFO] [stderr] --> src/core/engine/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | BeurtBlijftGelijk, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/schijf.rs:8:30 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn tegenovergestelde(&self) -> SchijfKleur { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core/schijf.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | / match self { [INFO] [stderr] 10 | | &SchijfKleur::Wit => SchijfKleur::Zwart, [INFO] [stderr] 11 | | &SchijfKleur::Zwart => SchijfKleur::Wit, [INFO] [stderr] 12 | | } [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] 9 | match *self { [INFO] [stderr] 10 | SchijfKleur::Wit => SchijfKleur::Zwart, [INFO] [stderr] 11 | SchijfKleur::Zwart => SchijfKleur::Wit, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core/zet.rs:28:46 [INFO] [stderr] | [INFO] [stderr] 28 | fn converteer_naar_index(&self, address: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: comparison is useless due to type limits [INFO] [stderr] --> src/core/bord.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if index >= 100 || index < 0 { [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/core/bord.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if index >= 100 || index < 0 { [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 false [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:15:42 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn bron_veld_moet_schijf_bevatten(_: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn doel_veld_moet_leeg_zijn(_: &SchijfKleur, bord: &mut Bord, (_, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:33:46 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn eigen_beurt_eigen_kleur(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:47:43 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn alleen_bruine_vlakken_gebruiken(_: &SchijfKleur, _: &mut Bord, (_, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:56:61 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn maar_1_stap_per_keer_voor_enkel_schijf(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: length comparison to zero [INFO] [stderr] --> src/core/engine/regels.rs:62:8 [INFO] [stderr] | [INFO] [stderr] 62 | if kan_slaan(aan_de_beurt, bord).len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!kan_slaan(aan_de_beurt, bord).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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn slaan_is_verplicht(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: length comparison to zero [INFO] [stderr] --> src/core/engine/regels.rs:82:8 [INFO] [stderr] | [INFO] [stderr] 82 | if slaan_mogelijkheden.len() == 0 || slaan_mogelijkheden.iter().filter(|optie| optie.eind_positie == doel).count() == 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slaan_mogelijkheden.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:90:50 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn geen_schijven_is_einde_spel(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (_, _): (usize, usize)) -> NaVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:99:58 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn slaan_verwijderd_de_geslagen_schijf(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> NaVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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 block may be rewritten with the `?` operator [INFO] [stderr] --> src/core/engine/regels.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / if slag.is_none() { [INFO] [stderr] 106 | | return None; [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `slag?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:139:28 [INFO] [stderr] | [INFO] [stderr] 139 | fn kan_slaan(aan_de_beurt: &SchijfKleur, bord: &Bord) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core/engine/regels.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / match veld.get_schijf() { [INFO] [stderr] 144 | | &Some(Schijf::Enkel(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 145 | | &Some(Schijf::Dam(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 146 | | _ => continue [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 143 | match *veld.get_schijf() { [INFO] [stderr] 144 | Some(Schijf::Enkel(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 145 | Some(Schijf::Dam(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/mod.rs:19:42 [INFO] [stderr] | [INFO] [stderr] 19 | fn voer_zet_uit(&self, aan_de_beurt: &SchijfKleur, bord: &mut Bord, zet: &Zet) -> Result; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/engine/mod.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | / match (*function)(aan_de_beurt, bord, (bron, doel)) { [INFO] [stderr] 42 | | Some(uitkomst) => return Ok(uitkomst), [INFO] [stderr] 43 | | _ => () [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(uitkomst) = (*function)(aan_de_beurt, bord, (bron, doel)) { return Ok(uitkomst) }` [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] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ui/printer.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / match veld.get_schijf() { [INFO] [stderr] 30 | | &Some(Schijf::Enkel(SchijfKleur::Wit)) => print!("[ WE ]"), [INFO] [stderr] 31 | | &Some(Schijf::Enkel(SchijfKleur::Zwart)) => print!("[ ZE ]"), [INFO] [stderr] 32 | | &Some(Schijf::Dam(SchijfKleur::Wit)) => print!("[ WD ]"), [INFO] [stderr] 33 | | &Some(Schijf::Dam(SchijfKleur::Zwart)) => print!("[ ZD ]"), [INFO] [stderr] 34 | | &None => print!("[ ]") [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 29 | match *veld.get_schijf() { [INFO] [stderr] 30 | Some(Schijf::Enkel(SchijfKleur::Wit)) => print!("[ WE ]"), [INFO] [stderr] 31 | Some(Schijf::Enkel(SchijfKleur::Zwart)) => print!("[ ZE ]"), [INFO] [stderr] 32 | Some(Schijf::Dam(SchijfKleur::Wit)) => print!("[ WD ]"), [INFO] [stderr] 33 | Some(Schijf::Dam(SchijfKleur::Zwart)) => print!("[ ZD ]"), [INFO] [stderr] 34 | None => print!("[ ]") [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/ui/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / match spel.zet(&zet) { [INFO] [stderr] 24 | | Err(_error) => { [INFO] [stderr] 25 | | println!("{}", _error); [INFO] [stderr] 26 | | verkrijg_zet_en_voer_uit(spel); [INFO] [stderr] 27 | | }, [INFO] [stderr] 28 | | _ => () [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 23 | if let Err(_error) = spel.zet(&zet) { [INFO] [stderr] 24 | println!("{}", _error); [INFO] [stderr] 25 | verkrijg_zet_en_voer_uit(spel); [INFO] [stderr] 26 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `dammen`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/bord.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return bord; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `bord` [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/core/engine/regels.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core/engine/regels.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return Err(String::from("Je mag maar 1 stap per keer zetten")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(String::from("Je mag maar 1 stap per keer zetten"))` [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: variable does not need to be mutable [INFO] [stderr] --> src/core/bord.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut veld = &mut self.velden[index]; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dam` [INFO] [stderr] --> src/core/schijf.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | Dam(SchijfKleur), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BeurtBlijftGelijk` [INFO] [stderr] --> src/core/engine/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | BeurtBlijftGelijk, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/schijf.rs:8:30 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn tegenovergestelde(&self) -> SchijfKleur { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core/schijf.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | / match self { [INFO] [stderr] 10 | | &SchijfKleur::Wit => SchijfKleur::Zwart, [INFO] [stderr] 11 | | &SchijfKleur::Zwart => SchijfKleur::Wit, [INFO] [stderr] 12 | | } [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] 9 | match *self { [INFO] [stderr] 10 | SchijfKleur::Wit => SchijfKleur::Zwart, [INFO] [stderr] 11 | SchijfKleur::Zwart => SchijfKleur::Wit, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/core/zet.rs:28:46 [INFO] [stderr] | [INFO] [stderr] 28 | fn converteer_naar_index(&self, address: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: comparison is useless due to type limits [INFO] [stderr] --> src/core/bord.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if index >= 100 || index < 0 { [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/core/bord.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if index >= 100 || index < 0 { [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 false [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:15:42 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn bron_veld_moet_schijf_bevatten(_: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn doel_veld_moet_leeg_zijn(_: &SchijfKleur, bord: &mut Bord, (_, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:33:46 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn eigen_beurt_eigen_kleur(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:47:43 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn alleen_bruine_vlakken_gebruiken(_: &SchijfKleur, _: &mut Bord, (_, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:56:61 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn maar_1_stap_per_keer_voor_enkel_schijf(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: length comparison to zero [INFO] [stderr] --> src/core/engine/regels.rs:62:8 [INFO] [stderr] | [INFO] [stderr] 62 | if kan_slaan(aan_de_beurt, bord).len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!kan_slaan(aan_de_beurt, bord).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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn slaan_is_verplicht(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, doel): (usize, usize)) -> VoorVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: length comparison to zero [INFO] [stderr] --> src/core/engine/regels.rs:82:8 [INFO] [stderr] | [INFO] [stderr] 82 | if slaan_mogelijkheden.len() == 0 || slaan_mogelijkheden.iter().filter(|optie| optie.eind_positie == doel).count() == 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slaan_mogelijkheden.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:90:50 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn geen_schijven_is_einde_spel(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (_, _): (usize, usize)) -> NaVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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/core/engine/regels.rs:99:58 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn slaan_verwijderd_de_geslagen_schijf(aan_de_beurt: &SchijfKleur, bord: &mut Bord, (bron, _): (usize, usize)) -> NaVerplaatsenRegelUitkomst { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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 block may be rewritten with the `?` operator [INFO] [stderr] --> src/core/engine/regels.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / if slag.is_none() { [INFO] [stderr] 106 | | return None; [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `slag?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/regels.rs:139:28 [INFO] [stderr] | [INFO] [stderr] 139 | fn kan_slaan(aan_de_beurt: &SchijfKleur, bord: &Bord) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/core/engine/regels.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / match veld.get_schijf() { [INFO] [stderr] 144 | | &Some(Schijf::Enkel(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 145 | | &Some(Schijf::Dam(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 146 | | _ => continue [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 143 | match *veld.get_schijf() { [INFO] [stderr] 144 | Some(Schijf::Enkel(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] 145 | Some(Schijf::Dam(kleur)) if kleur == *aan_de_beurt => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core/engine/mod.rs:19:42 [INFO] [stderr] | [INFO] [stderr] 19 | fn voer_zet_uit(&self, aan_de_beurt: &SchijfKleur, bord: &mut Bord, zet: &Zet) -> Result; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `SchijfKleur` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/core/engine/mod.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | / match (*function)(aan_de_beurt, bord, (bron, doel)) { [INFO] [stderr] 42 | | Some(uitkomst) => return Ok(uitkomst), [INFO] [stderr] 43 | | _ => () [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(uitkomst) = (*function)(aan_de_beurt, bord, (bron, doel)) { return Ok(uitkomst) }` [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] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | (*engine).voer_zet_uit(&SchijfKleur::Wit, &mut bord, &zet); [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | (*engine).voer_zet_uit(&SchijfKleur::Zwart, &mut bord, &zet); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | (*engine).voer_zet_uit(&SchijfKleur::Wit, &mut bord, &zet); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:213:9 [INFO] [stderr] | [INFO] [stderr] 213 | (*engine).voer_zet_uit(&SchijfKleur::Zwart, &mut bord, &zet); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | (*engine).voer_zet_uit(&SchijfKleur::Wit, &mut bord, &zet); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/engine/mod.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | (*engine).voer_zet_uit(&SchijfKleur::Zwart, &mut bord, &zet); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ui/printer.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / match veld.get_schijf() { [INFO] [stderr] 30 | | &Some(Schijf::Enkel(SchijfKleur::Wit)) => print!("[ WE ]"), [INFO] [stderr] 31 | | &Some(Schijf::Enkel(SchijfKleur::Zwart)) => print!("[ ZE ]"), [INFO] [stderr] 32 | | &Some(Schijf::Dam(SchijfKleur::Wit)) => print!("[ WD ]"), [INFO] [stderr] 33 | | &Some(Schijf::Dam(SchijfKleur::Zwart)) => print!("[ ZD ]"), [INFO] [stderr] 34 | | &None => print!("[ ]") [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 29 | match *veld.get_schijf() { [INFO] [stderr] 30 | Some(Schijf::Enkel(SchijfKleur::Wit)) => print!("[ WE ]"), [INFO] [stderr] 31 | Some(Schijf::Enkel(SchijfKleur::Zwart)) => print!("[ ZE ]"), [INFO] [stderr] 32 | Some(Schijf::Dam(SchijfKleur::Wit)) => print!("[ WD ]"), [INFO] [stderr] 33 | Some(Schijf::Dam(SchijfKleur::Zwart)) => print!("[ ZD ]"), [INFO] [stderr] 34 | None => print!("[ ]") [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/ui/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / match spel.zet(&zet) { [INFO] [stderr] 24 | | Err(_error) => { [INFO] [stderr] 25 | | println!("{}", _error); [INFO] [stderr] 26 | | verkrijg_zet_en_voer_uit(spel); [INFO] [stderr] 27 | | }, [INFO] [stderr] 28 | | _ => () [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 23 | if let Err(_error) = spel.zet(&zet) { [INFO] [stderr] 24 | println!("{}", _error); [INFO] [stderr] 25 | verkrijg_zet_en_voer_uit(spel); [INFO] [stderr] 26 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `dammen`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f85a3567f0973e2061175e8e339887f70bdb9a2da8adbb8cc7a135b478baaaec"` [INFO] running `"docker" "rm" "-f" "f85a3567f0973e2061175e8e339887f70bdb9a2da8adbb8cc7a135b478baaaec"` [INFO] [stdout] f85a3567f0973e2061175e8e339887f70bdb9a2da8adbb8cc7a135b478baaaec