[INFO] cloning repository isalevine/rust-cli-practice [INFO] running `"git" "clone" "--bare" "git://github.com/isalevine/rust-cli-practice.git" "work/cache/sources/gh/isalevine/rust-cli-practice"` [INFO] [stderr] Cloning into bare repository 'work/cache/sources/gh/isalevine/rust-cli-practice'... [INFO] running `"git" "clone" "work/cache/sources/gh/isalevine/rust-cli-practice" "work/ex/pr-62133/sources/master#5f9c0448dde167128d668da4555879f64e56af1d/gh/isalevine/rust-cli-practice"` [INFO] [stderr] Cloning into 'work/ex/pr-62133/sources/master#5f9c0448dde167128d668da4555879f64e56af1d/gh/isalevine/rust-cli-practice'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/isalevine/rust-cli-practice" "work/ex/pr-62133/sources/try#8ec8125bea94852768b56958f05da47666c21ab0/gh/isalevine/rust-cli-practice"` [INFO] [stderr] Cloning into 'work/ex/pr-62133/sources/try#8ec8125bea94852768b56958f05da47666c21ab0/gh/isalevine/rust-cli-practice'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5defe5cc90be02f4d070672040ef806b3003c071 [INFO] sha for GitHub repo isalevine/rust-cli-practice: 5defe5cc90be02f4d070672040ef806b3003c071 [INFO] validating manifest of isalevine/rust-cli-practice on toolchain master#5f9c0448dde167128d668da4555879f64e56af1d [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+5f9c0448dde167128d668da4555879f64e56af1d-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of isalevine/rust-cli-practice on toolchain try#8ec8125bea94852768b56958f05da47666c21ab0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+8ec8125bea94852768b56958f05da47666c21ab0-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing isalevine/rust-cli-practice [INFO] finished frobbing isalevine/rust-cli-practice [INFO] frobbed toml for isalevine/rust-cli-practice written to work/ex/pr-62133/sources/master#5f9c0448dde167128d668da4555879f64e56af1d/gh/isalevine/rust-cli-practice/Cargo.toml [INFO] started frobbing isalevine/rust-cli-practice [INFO] finished frobbing isalevine/rust-cli-practice [INFO] frobbed toml for isalevine/rust-cli-practice written to work/ex/pr-62133/sources/try#8ec8125bea94852768b56958f05da47666c21ab0/gh/isalevine/rust-cli-practice/Cargo.toml [INFO] crate isalevine/rust-cli-practice already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+5f9c0448dde167128d668da4555879f64e56af1d-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+8ec8125bea94852768b56958f05da47666c21ab0-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking isalevine/rust-cli-practice against master#5f9c0448dde167128d668da4555879f64e56af1d for pr-62133 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-62133/worker-3/master#5f9c0448dde167128d668da4555879f64e56af1d:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-62133/sources/master#5f9c0448dde167128d668da4555879f64e56af1d/gh/isalevine/rust-cli-practice:/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" "+5f9c0448dde167128d668da4555879f64e56af1d-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 78be1664ad75b0fc18edd3e877bedf476da41f804d07c0a46dd78e2f79f1b2cd [INFO] running `"docker" "start" "-a" "78be1664ad75b0fc18edd3e877bedf476da41f804d07c0a46dd78e2f79f1b2cd"` [INFO] [stderr] Checking rust-cli-practice v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused variable: `retreat` [INFO] [stderr] --> src/main.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | let retreat = (player.evade * 2) - enemy.evade; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_retreat` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `player` [INFO] [stderr] --> src/main.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn roll_attack(player: &Character, enemy: &Character) -> u32 { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_player` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enemy` [INFO] [stderr] --> src/main.rs:182:40 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn roll_attack(player: &Character, enemy: &Character) -> u32 { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_enemy` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | let mut knight = Character { [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let mut lizardman = Character { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/main.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 104 | main_turn_loop(tuple.0, tuple.1); [INFO] [stderr] | -------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unconditional_recursion)] on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:85:46 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print_character_attack` [INFO] [stderr] --> src/main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | fn print_character_attack(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `retreat` [INFO] [stderr] --> src/main.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | let retreat = (player.evade * 2) - enemy.evade; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_retreat` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `player` [INFO] [stderr] --> src/main.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn roll_attack(player: &Character, enemy: &Character) -> u32 { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_player` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enemy` [INFO] [stderr] --> src/main.rs:182:40 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn roll_attack(player: &Character, enemy: &Character) -> u32 { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_enemy` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | let mut knight = Character { [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let mut lizardman = Character { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/main.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 104 | main_turn_loop(tuple.0, tuple.1); [INFO] [stderr] | -------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unconditional_recursion)] on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:85:46 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn main_turn_loop(mut player: Character, mut enemy: Character) { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print_character_attack` [INFO] [stderr] --> src/main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | fn print_character_attack(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.68s [INFO] running `"docker" "inspect" "78be1664ad75b0fc18edd3e877bedf476da41f804d07c0a46dd78e2f79f1b2cd"` [INFO] running `"docker" "rm" "-f" "78be1664ad75b0fc18edd3e877bedf476da41f804d07c0a46dd78e2f79f1b2cd"` [INFO] [stdout] 78be1664ad75b0fc18edd3e877bedf476da41f804d07c0a46dd78e2f79f1b2cd