[INFO] cloning repository https://github.com/kkolyan/homm3_lab [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kkolyan/homm3_lab" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkkolyan%2Fhomm3_lab", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkkolyan%2Fhomm3_lab'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a9655a520c017f157b5f7379b93e6e681e34d2e4 [INFO] checking kkolyan/homm3_lab against try#8c500c7cefd54fd11d57295f3771d576be9ee415 for pr-145113 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkkolyan%2Fhomm3_lab" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kkolyan/homm3_lab [INFO] finished tweaking git repo https://github.com/kkolyan/homm3_lab [INFO] tweaked toml for git repo https://github.com/kkolyan/homm3_lab written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kkolyan/homm3_lab on toolchain 8c500c7cefd54fd11d57295f3771d576be9ee415 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kkolyan/homm3_lab already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] checking kkolyan/homm3_lab against try#8c500c7cefd54fd11d57295f3771d576be9ee415 for pr-145113 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkkolyan%2Fhomm3_lab" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kkolyan/homm3_lab [INFO] finished tweaking git repo https://github.com/kkolyan/homm3_lab [INFO] tweaked toml for git repo https://github.com/kkolyan/homm3_lab written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kkolyan/homm3_lab on toolchain 8c500c7cefd54fd11d57295f3771d576be9ee415 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kkolyan/homm3_lab already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 812e392fff1257bcd222ca3e0d357cf7be02a291b8686b725511019d5ecd1099 [INFO] running `Command { std: "docker" "start" "-a" "812e392fff1257bcd222ca3e0d357cf7be02a291b8686b725511019d5ecd1099", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "812e392fff1257bcd222ca3e0d357cf7be02a291b8686b725511019d5ecd1099", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "812e392fff1257bcd222ca3e0d357cf7be02a291b8686b725511019d5ecd1099", kill_on_drop: false }` [INFO] [stdout] 812e392fff1257bcd222ca3e0d357cf7be02a291b8686b725511019d5ecd1099 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+8c500c7cefd54fd11d57295f3771d576be9ee415" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1a98179eda6576a24655e956f34c2255587dff16587997f79e703c939dd4058e [INFO] running `Command { std: "docker" "start" "-a" "1a98179eda6576a24655e956f34c2255587dff16587997f79e703c939dd4058e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking homm3_lab_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::creature::Ability::*` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::creature::Ability::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::creature::Attr::*` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::creature::Attr::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::creature::Ability::*` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::creature::Ability::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::creature::Attr::*` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::creature::Attr::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/generate_castle_chart.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/generate_castle_chart.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Castle` [INFO] [stdout] --> src/generate_castle_chart.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::structure::{Castle, parse_structure}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/generate_growth_chart.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Castle` [INFO] [stdout] --> src/generate_castle_chart.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::structure::{Castle, parse_structure}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Castle` [INFO] [stdout] --> src/generate_growth_chart.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::structure::{Castle, parse_structure}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/generate_growth_chart.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pointer` [INFO] [stdout] --> src/tsv.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Display, Pointer, Write}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Castle` [INFO] [stdout] --> src/generate_growth_chart.rs:4:24 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::structure::{Castle, parse_structure}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/tsv.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pointer` [INFO] [stdout] --> src/tsv.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Display, Pointer, Write}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/tsv.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parse_creatures.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let (s, r) = rem.split_once('\n').unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parse_creatures.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let (s, r) = rem.split_once('\n').unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/parse_creatures.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let a = creatures.iter().find(|it| it.name == "Black Dragon"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/parse_creatures.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let a = creatures.iter().find(|it| it.name == "Black Dragon"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/parse_creatures.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | let b = creatures.iter().find(|it| it.name == "Titan"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/parse_creatures.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | let b = creatures.iter().find(|it| it.name == "Titan"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `column` [INFO] [stdout] --> src/parse_creatures.rs:63:53 [INFO] [stdout] | [INFO] [stdout] 63 | next_row(&mut rem, columns.len(), &mut |column, s| {}); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parse_creatures.rs:63:61 [INFO] [stdout] | [INFO] [stdout] 63 | next_row(&mut rem, columns.len(), &mut |column, s| {}); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `column` [INFO] [stdout] --> src/parse_creatures.rs:63:53 [INFO] [stdout] | [INFO] [stdout] 63 | next_row(&mut rem, columns.len(), &mut |column, s| {}); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parse_creatures.rs:63:61 [INFO] [stdout] | [INFO] [stdout] 63 | next_row(&mut rem, columns.len(), &mut |column, s| {}); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enum_name` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:200:10 [INFO] [stdout] | [INFO] [stdout] 200 | for (enum_name, _) in flags.iter() { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enum_name` [INFO] [stdout] --> src/parse_attrs_and_abilities.rs:200:10 [INFO] [stdout] | [INFO] [stdout] 200 | for (enum_name, _) in flags.iter() { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/tournament.rs:176:22 [INFO] [stdout] | [INFO] [stdout] 176 | ("VS", &|vs, result| vs.to_string()), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | ("army_size", &|vs, result| result.army_size.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | ("clean", &|vs, result| result.clean.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | ("counts[0]", &|vs, result| result.counts[0].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:180:25 [INFO] [stdout] | [INFO] [stdout] 180 | ("counts[1]", &|vs, result| result.counts[1].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:181:27 [INFO] [stdout] | [INFO] [stdout] 181 | ("win_rate[0]", &|vs, result| result.win_rate[0].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | ("win_rate[1]", &|vs, result| result.win_rate[1].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/tournament.rs:176:22 [INFO] [stdout] | [INFO] [stdout] 176 | ("VS", &|vs, result| vs.to_string()), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | ("army_size", &|vs, result| result.army_size.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:178:21 [INFO] [stdout] | [INFO] [stdout] 178 | ("clean", &|vs, result| result.clean.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | ("counts[0]", &|vs, result| result.counts[0].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:180:25 [INFO] [stdout] | [INFO] [stdout] 180 | ("counts[1]", &|vs, result| result.counts[1].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:181:27 [INFO] [stdout] | [INFO] [stdout] 181 | ("win_rate[0]", &|vs, result| result.win_rate[0].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vs` [INFO] [stdout] --> src/tournament.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | ("win_rate[1]", &|vs, result| result.win_rate[1].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_vs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tournament.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | let mut msg = if result.counts[0] == result.counts[1] && result.win_rate[0] == result.win_rate[1] { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/generate_castle_chart.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | for (i, castle) in castles.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tournament.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | let mut msg = if result.counts[0] == result.counts[1] && result.win_rate[0] == result.win_rate[1] { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/generate_castle_chart.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | for (i, castle) in castles.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/generate_castle_chart.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut double_levels = by_castle_and_double_level.keys() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/generate_growth_chart.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | for (i, castle) in castles.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/generate_castle_chart.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut double_levels = by_castle_and_double_level.keys() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/generate_growth_chart.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | for (i, castle) in castles.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/generate_growth_chart.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut double_levels = by_castle_and_double_level.keys() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/generate_growth_chart.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut double_levels = by_castle_and_double_level.keys() [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BTreeSet`, `HashMap`, and `HashSet` [INFO] [stdout] --> src/bin/generate_castle_chart.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/bin/generate_castle_chart.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `homm3_lab_rs::ratings::rating_by` [INFO] [stdout] --> src/bin/generate_castle_chart.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use homm3_lab_rs::ratings::rating_by; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Castle` and `parse_structure` [INFO] [stdout] --> src/bin/generate_castle_chart.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use homm3_lab_rs::structure::{Castle, parse_structure}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/bin/h3_duel.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | for x in creatures.iter() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `arrange_tournament` [INFO] [stdout] --> src/bin/h3_full_tournament_render_1.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use homm3_lab_rs::tournament::{arrange_tournament, render}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 5 arguments but 4 arguments were supplied [INFO] [stdout] --> src/bin/h3.rs:29:26 [INFO] [stdout] | [INFO] [stdout] 29 | let result = find_counter_count(100, (left_count, a), b, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------------------- argument #5 of type `bool` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/combat.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_counter_count(rounds: u32, creature: (u32, &Creature), counter: &Creature, verbose: bool, clean: bool) -> [CounterSearchResul... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 29 | let result = find_counter_count(100, (left_count, a), b, false, /* bool */); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 5 arguments but 4 arguments were supplied [INFO] [stdout] --> src/bin/h3.rs:29:26 [INFO] [stdout] | [INFO] [stdout] 29 | let result = find_counter_count(100, (left_count, a), b, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------------------- argument #5 of type `bool` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/combat.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_counter_count(rounds: u32, creature: (u32, &Creature), counter: &Creature, verbose: bool, clean: bool) -> [CounterSearchResul... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 29 | let result = find_counter_count(100, (left_count, a), b, false, /* bool */); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CastleCreature` is never constructed [INFO] [stdout] --> src/bin/generate_castle_chart.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct CastleCreature { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 5 arguments but 4 arguments were supplied [INFO] [stdout] --> src/bin/h3_inferno_tournament.rs:19:26 [INFO] [stdout] | [INFO] [stdout] 19 | let result = find_counter_count(100, (left_count, a), b, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------------------- argument #5 of type `bool` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/combat.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_counter_count(rounds: u32, creature: (u32, &Creature), counter: &Creature, verbose: bool, clean: bool) -> [CounterSearchResul... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 19 | let result = find_counter_count(100, (left_count, a), b, false, /* bool */); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/bin/h3_duel.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | for x in creatures.iter() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/bin/rating_battles.rs:19:53 [INFO] [stdout] | [INFO] [stdout] 19 | let j = creatures.iter().enumerate().find(|(i, it)| it.name == by).unwrap().0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "h3") due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "h3_inferno_tournament" test) due to 1 previous error [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "h3" test) due to 1 previous error [INFO] [stdout] error[E0609]: no field `name` on type `String` [INFO] [stdout] --> src/bin/print_structure.rs:8:39 [INFO] [stdout] | [INFO] [stdout] 8 | println!(" {}", creature.name); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0609`. [INFO] [stdout] [INFO] [stdout] warning: unused import: `arrange_tournament` [INFO] [stdout] --> src/bin/h3_full_tournament_render_1.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use homm3_lab_rs::tournament::{arrange_tournament, render}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::Map` [INFO] [stdout] --> src/bin/price_chart.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::iter::Map; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Div` [INFO] [stdout] --> src/bin/price_chart.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Div; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `homm3_lab_rs::generate_castle_chart::generate_castle_chart` [INFO] [stdout] --> src/bin/price_chart.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use homm3_lab_rs::generate_castle_chart::generate_castle_chart; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Task` and `perform_tournament` [INFO] [stdout] --> src/bin/price_chart.rs:10:32 [INFO] [stdout] | [INFO] [stdout] 10 | use homm3_lab_rs::tournament::{perform_tournament, Task}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 5 arguments but 4 arguments were supplied [INFO] [stdout] --> src/bin/h3_inferno_tournament.rs:19:26 [INFO] [stdout] | [INFO] [stdout] 19 | let result = find_counter_count(100, (left_count, a), b, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------------------- argument #5 of type `bool` is missing [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/workdir/src/combat.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn find_counter_count(rounds: u32, creature: (u32, &Creature), counter: &Creature, verbose: bool, clean: bool) -> [CounterSearchResul... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 19 | let result = find_counter_count(100, (left_count, a), b, false, /* bool */); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "print_structure") due to 1 previous error [INFO] [stdout] For more information about this error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/bin/price_chart.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "h3_inferno_tournament") due to 1 previous error [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/generate_attrs.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | ("Realm", &|cc, c| cc.castle_name.to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/generate_attrs.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | ("Level", &|cc, c| format!("{}{}", 1 + cc.double_level / 2, if cc.double_level % 2 == 0 {""} else {"+"})), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | ("Name", &|cc, c| c.name.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:57:20 [INFO] [stdout] | [INFO] [stdout] 57 | ("Gold", &|cc, c| c.cost[&ResourceType::Gold].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | ("Growth", &|cc, c| c.growth.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | ("Attack", &|cc, c| c.attack.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | ("Defence", &|cc, c| c.defence.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:61:26 [INFO] [stdout] | [INFO] [stdout] 61 | ("Damage Low", &|cc, c| c.damage_low.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:62:27 [INFO] [stdout] | [INFO] [stdout] 62 | ("Damage High", &|cc, c| c.damage_high.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | ("Speed", &|cc, c| c.speed.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | ("Health", &|cc, c| c.health.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | ("Features", &|cc, c| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/generate_attrs.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | ("Realm", &|cc, c| cc.castle_name.to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/generate_attrs.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | ("Level", &|cc, c| format!("{}{}", 1 + cc.double_level / 2, if cc.double_level % 2 == 0 {""} else {"+"})), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | ("Name", &|cc, c| c.name.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:57:20 [INFO] [stdout] | [INFO] [stdout] 57 | ("Gold", &|cc, c| c.cost[&ResourceType::Gold].to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | ("Growth", &|cc, c| c.growth.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | ("Attack", &|cc, c| c.attack.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:60:23 [INFO] [stdout] | [INFO] [stdout] 60 | ("Defence", &|cc, c| c.defence.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:61:26 [INFO] [stdout] | [INFO] [stdout] 61 | ("Damage Low", &|cc, c| c.damage_low.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:62:27 [INFO] [stdout] | [INFO] [stdout] 62 | ("Damage High", &|cc, c| c.damage_high.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `name` on type `String` [INFO] [stdout] --> src/bin/print_structure.rs:8:39 [INFO] [stdout] | [INFO] [stdout] 8 | println!(" {}", creature.name); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | ("Speed", &|cc, c| c.speed.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | ("Health", &|cc, c| c.health.to_string()), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cc` [INFO] [stdout] --> src/bin/generate_attrs.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | ("Features", &|cc, c| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0609`. [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/generate_attrs.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut columns: Vec<(&str, &dyn Fn(&CastleCreature, &Creature) -> String)> = vec![ [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/generate_attrs.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut columns: Vec<(&str, &dyn Fn(&CastleCreature, &Creature) -> String)> = vec![ [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `homm3_lab_rs` (bin "print_structure" test) due to 1 previous error [INFO] running `Command { std: "docker" "inspect" "1a98179eda6576a24655e956f34c2255587dff16587997f79e703c939dd4058e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1a98179eda6576a24655e956f34c2255587dff16587997f79e703c939dd4058e", kill_on_drop: false }` [INFO] [stdout] 1a98179eda6576a24655e956f34c2255587dff16587997f79e703c939dd4058e