[INFO] cloning repository https://github.com/thehalleyyoung/algo-collusion-certifier [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thehalleyyoung/algo-collusion-certifier" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] aa10cb2a53c62611ee4264f620b7216797b12033 [INFO] checking thehalleyyoung/algo-collusion-certifier/aa10cb2a53c62611ee4264f620b7216797b12033 against master#1fe72d35998dea48aeecaf7fc07783b0b553f24f for pr-154992 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 22% (1536/6850) Updating files: 23% (1576/6850) Updating files: 23% (1640/6850) Updating files: 24% (1644/6850) Updating files: 25% (1713/6850) Updating files: 26% (1781/6850) Updating files: 27% (1850/6850) Updating files: 28% (1918/6850) Updating files: 29% (1987/6850) Updating files: 29% (2042/6850) Updating files: 30% (2055/6850) Updating files: 31% (2124/6850) Updating files: 32% (2192/6850) Updating files: 33% (2261/6850) Updating files: 34% (2329/6850) Updating files: 35% (2398/6850) Updating files: 36% (2466/6850) Updating files: 37% (2535/6850) Updating files: 38% (2603/6850) Updating files: 39% (2672/6850) Updating files: 40% (2740/6850) Updating files: 41% (2809/6850) Updating files: 42% (2877/6850) Updating files: 43% (2946/6850) Updating files: 44% (3014/6850) Updating files: 45% (3083/6850) Updating files: 46% (3151/6850) Updating files: 47% (3220/6850) Updating files: 48% (3288/6850) Updating files: 49% (3357/6850) Updating files: 50% (3425/6850) Updating files: 51% (3494/6850) Updating files: 52% (3562/6850) Updating files: 52% (3567/6850) Updating files: 53% (3631/6850) Updating files: 54% (3699/6850) Updating files: 55% (3768/6850) Updating files: 55% (3785/6850) Updating files: 56% (3836/6850) Updating files: 56% (3856/6850) Updating files: 57% (3905/6850) Updating files: 58% (3973/6850) Updating files: 59% (4042/6850) Updating files: 60% (4110/6850) Updating files: 61% (4179/6850) Updating files: 62% (4247/6850) Updating files: 63% (4316/6850) Updating files: 64% (4384/6850) Updating files: 65% (4453/6850) Updating files: 66% (4521/6850) Updating files: 67% (4590/6850) Updating files: 67% (4621/6850) Updating files: 68% (4658/6850) Updating files: 69% (4727/6850) Updating files: 70% (4795/6850) Updating files: 71% (4864/6850) Updating files: 72% (4932/6850) Updating files: 73% (5001/6850) Updating files: 74% (5069/6850) Updating files: 75% (5138/6850) Updating files: 76% (5206/6850) Updating files: 77% (5275/6850) Updating files: 78% (5343/6850) Updating files: 78% (5348/6850) Updating files: 79% (5412/6850) Updating files: 80% (5480/6850) Updating files: 81% (5549/6850) Updating files: 82% (5617/6850) Updating files: 83% (5686/6850) Updating files: 84% (5754/6850) Updating files: 85% (5823/6850) Updating files: 86% (5891/6850) Updating files: 87% (5960/6850) Updating files: 88% (6028/6850) Updating files: 89% (6097/6850) Updating files: 90% (6165/6850) Updating files: 91% (6234/6850) Updating files: 92% (6302/6850) Updating files: 93% (6371/6850) Updating files: 94% (6439/6850) Updating files: 94% (6469/6850) Updating files: 95% (6508/6850) Updating files: 96% (6576/6850) Updating files: 97% (6645/6850) Updating files: 97% (6699/6850) Updating files: 98% (6713/6850) Updating files: 98% (6768/6850) Updating files: 99% (6782/6850) Updating files: 100% (6850/6850) Updating files: 100% (6850/6850), done. [INFO] started tweaking git repo https://github.com/thehalleyyoung/algo-collusion-certifier [INFO] finished tweaking git repo https://github.com/thehalleyyoung/algo-collusion-certifier [INFO] tweaked toml for git repo https://github.com/thehalleyyoung/algo-collusion-certifier written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/thehalleyyoung/algo-collusion-certifier on toolchain 1fe72d35998dea48aeecaf7fc07783b0b553f24f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/thehalleyyoung/algo-collusion-certifier 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" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a83b3df4e520d9abbe9ee2a4fc112c32c08e64c870fbce23fbe96a75449b1c5f [INFO] running `Command { std: "docker" "start" "-a" "a83b3df4e520d9abbe9ee2a4fc112c32c08e64c870fbce23fbe96a75449b1c5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a83b3df4e520d9abbe9ee2a4fc112c32c08e64c870fbce23fbe96a75449b1c5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a83b3df4e520d9abbe9ee2a4fc112c32c08e64c870fbce23fbe96a75449b1c5f", kill_on_drop: false }` [INFO] [stdout] a83b3df4e520d9abbe9ee2a4fc112c32c08e64c870fbce23fbe96a75449b1c5f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3f7a781d4450211ccb6a250415056e78713e138d1f5621ee6306939753c7cf3e [INFO] running `Command { std: "docker" "start" "-a" "3f7a781d4450211ccb6a250415056e78713e138d1f5621ee6306939753c7cf3e", kill_on_drop: false }` [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking getrandom v0.4.2 [INFO] [stderr] Checking sha1_smol v1.0.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking humantime v2.3.0 [INFO] [stderr] Checking uuid v1.22.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking num-traits v0.2.19 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking simba v0.6.0 [INFO] [stderr] Checking simba v0.8.1 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking env_logger v0.10.2 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Compiling nalgebra-macros v0.1.0 [INFO] [stderr] Checking shared-types v0.1.0 (/opt/rustwide/workdir/implementation/crates/shared-types) [INFO] [stdout] warning: unused import: `crate::statistics::TestStatistic` [INFO] [stdout] --> implementation/crates/shared-types/src/evidence.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | use crate::statistics::TestStatistic; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Decisive` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/evidence.rs:150:15 [INFO] [stdout] | [INFO] [stdout] 150 | pub const Decisive: EvidenceStrength = EvidenceStrength::Definitive; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `DECISIVE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer0` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1031:15 [INFO] [stdout] | [INFO] [stdout] 1031 | pub const Layer0: OracleAccessLevel = OracleAccessLevel::Layer0Passive; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer1` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1032:15 [INFO] [stdout] | [INFO] [stdout] 1032 | pub const Layer1: OracleAccessLevel = OracleAccessLevel::Layer1Checkpoint; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer2` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1033:15 [INFO] [stdout] | [INFO] [stdout] 1033 | pub const Layer2: OracleAccessLevel = OracleAccessLevel::Layer2FullRewind; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER2` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking nalgebra v0.29.0 [INFO] [stderr] Checking nalgebra v0.32.6 [INFO] [stdout] warning: associated constant `Decisive` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/evidence.rs:150:15 [INFO] [stdout] | [INFO] [stdout] 150 | pub const Decisive: EvidenceStrength = EvidenceStrength::Definitive; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `DECISIVE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer0` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1031:15 [INFO] [stdout] | [INFO] [stdout] 1031 | pub const Layer0: OracleAccessLevel = OracleAccessLevel::Layer0Passive; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer1` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1032:15 [INFO] [stdout] | [INFO] [stdout] 1032 | pub const Layer1: OracleAccessLevel = OracleAccessLevel::Layer1Checkpoint; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant `Layer2` should have an upper case name [INFO] [stdout] --> implementation/crates/shared-types/src/types.rs:1033:15 [INFO] [stdout] | [INFO] [stdout] 1033 | pub const Layer2: OracleAccessLevel = OracleAccessLevel::Layer2FullRewind; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `LAYER2` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking statrs v0.16.1 [INFO] [stderr] Checking game-theory v0.1.0 (/opt/rustwide/workdir/implementation/crates/game-theory) [INFO] [stderr] Checking market-sim v0.1.0 (/opt/rustwide/workdir/implementation/crates/market-sim) [INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ordered_float::OrderedFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ordered_float::OrderedFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NashEquilibrium` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::equilibrium::{NashEquilibrium, PayoffMatrix, BertrandNashSolver, CournotNashSolver}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FeasiblePayoffSet`, `MinimaxComputation`, and `PunishmentStrategy` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::folk_theorem::{FeasiblePayoffSet, MinimaxComputation, PunishmentStrategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AlwaysDefect`, `GrimTriggerStrategy`, and `TitForTatStrategy` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:760:29 [INFO] [stdout] | [INFO] [stdout] 760 | use crate::strategies::{GrimTriggerStrategy, TitForTatStrategy, AlwaysDefect}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AutomatonState` [INFO] [stdout] --> implementation/crates/game-theory/src/strategies.rs:6:95 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::automaton::{AutomatonBuilder, DiscretizedPrice, FiniteStateStrategy, MealyMachine, AutomatonState}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> implementation/crates/game-theory/src/strategies.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ordered_float::OrderedFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ordered_float::OrderedFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NashEquilibrium` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::equilibrium::{NashEquilibrium, PayoffMatrix, BertrandNashSolver, CournotNashSolver}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FeasiblePayoffSet`, `MinimaxComputation`, and `PunishmentStrategy` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::folk_theorem::{FeasiblePayoffSet, MinimaxComputation, PunishmentStrategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AutomatonState` [INFO] [stdout] --> implementation/crates/game-theory/src/strategies.rs:6:95 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::automaton::{AutomatonBuilder, DiscretizedPrice, FiniteStateStrategy, MealyMachine, AutomatonState}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> implementation/crates/game-theory/src/strategies.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:884:57 [INFO] [stdout] | [INFO] [stdout] 884 | let mm = MinimaxComputation::from_payoff_matrix(&payoffs); [INFO] [stdout] | -------------------------------------- ^^^^^^^^ expected `&[Vec>]`, found `&Vec>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&[Vec>]` [INFO] [stdout] found reference `&Vec>` [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 296 | pub fn from_payoff_matrix(payoffs: &[Vec>]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ------------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inp_val` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:719:29 [INFO] [stdout] | [INFO] [stdout] 719 | let inp_val = inp as u32; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inp_val` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_agents` [INFO] [stdout] --> implementation/crates/game-theory/src/c3_validator.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 221 | num_agents: usize, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_agents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inp_val` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:719:29 [INFO] [stdout] | [INFO] [stdout] 719 | let inp_val = inp as u32; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inp_val` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `partition` [INFO] [stdout] --> implementation/crates/game-theory/src/automaton.rs:1085:21 [INFO] [stdout] | [INFO] [stdout] 1085 | let (min_m, partition) = AutomatonMinimizer::minimize(&m); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partition` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | let n = support.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prices` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | let prices: Vec = config.marginal_costs.iter().map(|c| c.0).collect(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prices` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iteration` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | for iteration in 0..self.max_iterations { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:636:21 [INFO] [stdout] | [INFO] [stdout] 636 | let n = prices.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_agents` [INFO] [stdout] --> implementation/crates/game-theory/src/c3_validator.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 221 | num_agents: usize, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_agents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payoff_collude` [INFO] [stdout] --> implementation/crates/game-theory/src/c3_validator.rs:347:13 [INFO] [stdout] | [INFO] [stdout] 347 | let payoff_collude = compute_payoff_for_agent(0, 2, 4, &profile_collude); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payoff_collude` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payoff_deviate` [INFO] [stdout] --> implementation/crates/game-theory/src/c3_validator.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | let payoff_deviate = compute_payoff_for_agent(0, 2, 4, &profile_deviate); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payoff_deviate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 225 | let n = config.num_players; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `avg_payoffs` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:513:9 [INFO] [stdout] | [INFO] [stdout] 513 | let avg_payoffs: Vec = (0..n).map(|i| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_payoffs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | let n = support.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prices` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:182:25 [INFO] [stdout] | [INFO] [stdout] 182 | let prices: Vec = config.marginal_costs.iter().map(|c| c.0).collect(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prices` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iteration` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | for iteration in 0..self.max_iterations { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:636:21 [INFO] [stdout] | [INFO] [stdout] 636 | let n = prices.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remaining` [INFO] [stdout] --> implementation/crates/game-theory/src/equilibrium.rs:994:23 [INFO] [stdout] | [INFO] [stdout] 994 | let (reduced, remaining) = DominanceElimination::eliminate(&game); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 225 | let n = config.num_players; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_linear_demand_box` is never used [INFO] [stdout] --> implementation/crates/market-sim/src/bertrand.rs:633:8 [INFO] [stdout] | [INFO] [stdout] 633 | fn make_linear_demand_box(a: f64, b: f64, c: f64, n: usize) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_0` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | let var_0: f64 = dist_0.iter().enumerate().map(|(a, &p)| (a as f64 - mean_0).powi(2) * p).sum(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_1` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | let var_1: f64 = dist_1.iter().enumerate().map(|(a, &p)| (a as f64 - mean_1).powi(2) * p).sum(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_actions` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:508:9 [INFO] [stdout] | [INFO] [stdout] 508 | num_actions: usize, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_actions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `avg_payoffs` [INFO] [stdout] --> implementation/crates/game-theory/src/folk_theorem.rs:513:9 [INFO] [stdout] | [INFO] [stdout] 513 | let avg_payoffs: Vec = (0..n).map(|i| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_payoffs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `others_avg` [INFO] [stdout] --> implementation/crates/game-theory/src/payoff.rs:290:25 [INFO] [stdout] | [INFO] [stdout] 290 | let others_avg: f64 = if n > 1 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_others_avg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut pm = PayoffMatrix::new(vec![num_levels; n]); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_action` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:149:14 [INFO] [stdout] | [INFO] [stdout] 149 | let (best_action, best_payoff) = self.payoffs.best_response(player, &collusive_actions); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_0` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | let var_0: f64 = dist_0.iter().enumerate().map(|(a, &p)| (a as f64 - mean_0).powi(2) * p).sum(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_1` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | let var_1: f64 = dist_1.iter().enumerate().map(|(a, &p)| (a as f64 - mean_1).powi(2) * p).sum(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_actions` [INFO] [stdout] --> implementation/crates/game-theory/src/learning.rs:508:9 [INFO] [stdout] | [INFO] [stdout] 508 | num_actions: usize, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_actions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `others_avg` [INFO] [stdout] --> implementation/crates/game-theory/src/payoff.rs:290:25 [INFO] [stdout] | [INFO] [stdout] 290 | let others_avg: f64 = if n > 1 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_others_avg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut pm = PayoffMatrix::new(vec![num_levels; n]); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `best_action` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:149:14 [INFO] [stdout] | [INFO] [stdout] 149 | let (best_action, best_payoff) = self.payoffs.best_response(player, &collusive_actions); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `round` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:684:13 [INFO] [stdout] | [INFO] [stdout] 684 | for round in 0..t { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_round` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `round` [INFO] [stdout] --> implementation/crates/game-theory/src/repeated_game.rs:684:13 [INFO] [stdout] | [INFO] [stdout] 684 | for round in 0..t { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_round` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `game-theory` (lib test) due to 1 previous error; 30 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "3f7a781d4450211ccb6a250415056e78713e138d1f5621ee6306939753c7cf3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f7a781d4450211ccb6a250415056e78713e138d1f5621ee6306939753c7cf3e", kill_on_drop: false }` [INFO] [stdout] 3f7a781d4450211ccb6a250415056e78713e138d1f5621ee6306939753c7cf3e