[INFO] updating cached repository isalevine/rust-cli-practice [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/isalevine/rust-cli-practice [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/isalevine/rust-cli-practice" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/isalevine/rust-cli-practice"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/isalevine/rust-cli-practice'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/isalevine/rust-cli-practice" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/isalevine/rust-cli-practice"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/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#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of isalevine/rust-cli-practice on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-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-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/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-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/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" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking isalevine/rust-cli-practice against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-4/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/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" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 06623e7a48f18970f68635f2864c4a3e5dbe5e657c0d37e1cbd22f12c0ebeb3c [INFO] running `"docker" "start" "-a" "06623e7a48f18970f68635f2864c4a3e5dbe5e657c0d37e1cbd22f12c0ebeb3c"` [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 1.15s [INFO] running `"docker" "inspect" "06623e7a48f18970f68635f2864c4a3e5dbe5e657c0d37e1cbd22f12c0ebeb3c"` [INFO] running `"docker" "rm" "-f" "06623e7a48f18970f68635f2864c4a3e5dbe5e657c0d37e1cbd22f12c0ebeb3c"` [INFO] [stdout] 06623e7a48f18970f68635f2864c4a3e5dbe5e657c0d37e1cbd22f12c0ebeb3c