[INFO] cloning repository https://github.com/JonathanWoollett-Light/stellaris-performance-test [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JonathanWoollett-Light/stellaris-performance-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e43f147cc3683f6c43980ebf47816e1af698cc20 [INFO] checking JonathanWoollett-Light/stellaris-performance-test/e43f147cc3683f6c43980ebf47816e1af698cc20 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test [INFO] finished tweaking git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test [INFO] tweaked toml for git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded loom v0.3.4 [INFO] [stderr] Downloaded crossterm_winapi v0.6.1 [INFO] [stderr] Downloaded bytes v0.5.5 [INFO] [stderr] Downloaded generator v0.6.21 [INFO] [stderr] Downloaded serde_derive v1.0.113 [INFO] [stderr] Downloaded serde v1.0.113 [INFO] [stderr] Downloaded crossterm v0.17.5 [INFO] [stderr] Downloaded syn v1.0.32 [INFO] [stderr] Downloaded arrayfire v3.7.0 [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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3659d9340fa30ac7d5d7f9d9baed82ae8f5412144a9dbfd57ac68c9daa19d03a [INFO] running `Command { std: "docker" "start" "-a" "3659d9340fa30ac7d5d7f9d9baed82ae8f5412144a9dbfd57ac68c9daa19d03a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3659d9340fa30ac7d5d7f9d9baed82ae8f5412144a9dbfd57ac68c9daa19d03a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3659d9340fa30ac7d5d7f9d9baed82ae8f5412144a9dbfd57ac68c9daa19d03a", kill_on_drop: false }` [INFO] [stdout] 3659d9340fa30ac7d5d7f9d9baed82ae8f5412144a9dbfd57ac68c9daa19d03a [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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ba3bcade3f8fd596e34308a9ae8f1954febce91cfe066f8440b24f3bbe8d109d [INFO] running `Command { std: "docker" "start" "-a" "ba3bcade3f8fd596e34308a9ae8f1954febce91cfe066f8440b24f3bbe8d109d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.32 [INFO] [stderr] Compiling serde_derive v1.0.113 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Compiling serde v1.0.113 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling pin-project-internal v0.4.22 [INFO] [stderr] Compiling serde_json v1.0.55 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling proc-macro-nested v0.1.6 [INFO] [stderr] Checking futures-core v0.3.5 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling proc-macro-hack v0.5.16 [INFO] [stderr] Checking arc-swap v0.4.7 [INFO] [stderr] Checking net2 v0.2.34 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking futures-sink v0.3.5 [INFO] [stderr] Checking once_cell v1.4.0 [INFO] [stderr] Compiling itoa v0.4.6 [INFO] [stderr] Checking futures-channel v0.3.5 [INFO] [stderr] Checking signal-hook-registry v1.2.0 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking futures-task v0.3.5 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking futures-io v0.3.5 [INFO] [stderr] Checking smallvec v1.4.0 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking ppv-lite86 v0.2.8 [INFO] [stderr] Checking parking_lot_core v0.7.2 [INFO] [stderr] Checking nodrop v0.1.14 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Checking signal-hook v0.1.16 [INFO] [stderr] Checking bytes v0.5.5 [INFO] [stderr] Checking half v1.6.0 [INFO] [stderr] Checking pin-project-lite v0.1.7 [INFO] [stderr] Checking crossterm v0.17.5 [INFO] [stderr] Checking num-format v0.4.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Compiling futures-macro v0.3.5 [INFO] [stderr] Compiling tokio-macros v0.2.5 [INFO] [stderr] Checking tokio v0.2.21 [INFO] [stderr] Checking pin-project v0.4.22 [INFO] [stderr] Checking futures-util v0.3.5 [INFO] [stderr] Checking futures-executor v0.3.5 [INFO] [stderr] Checking futures v0.3.5 [INFO] [stderr] Compiling arrayfire v3.7.0 [INFO] [stderr] Checking stellaris-performance-test v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected expression, found `let` statement [INFO] [stdout] --> src/empire_optimization.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let compressed_employability_mask = species_employability_mask * empire_species_employability_mask; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: only supported directly in conditions of `if` and `while` expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/empire_optimization.rs:118:89 [INFO] [stdout] | [INFO] [stdout] 118 | let multiplied_production = mul(&summed_production,compressed_species_muls,true) [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 121 | let imerial_market_values = &self.modifier.multiplier * market_values; [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found `let` statement [INFO] [stdout] --> src/empire_optimization.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let compressed_employability_mask = species_employability_mask * empire_species_employability_mask; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: only supported directly in conditions of `if` and `while` expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/empire_optimization.rs:118:89 [INFO] [stdout] | [INFO] [stdout] 118 | let multiplied_production = mul(&summed_production,compressed_species_muls,true) [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 121 | let imerial_market_values = &self.modifier.multiplier * market_values; [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `job_adjusted` in this scope [INFO] [stdout] --> src/empire_optimization.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let market_adjusted = mul(&job_adjusted,&imerial_market_values,true); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `compressed_species_mods_arr` in this scope [INFO] [stdout] --> src/empire_optimization.rs:136:14 [INFO] [stdout] | [INFO] [stdout] 136 | &compressed_species_mods_arr, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a local variable with a similar name exists: `compressed_species_adds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | collections::{HashMap,HashSet} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `reorder_v2` [INFO] [stdout] --> src/empire_optimization.rs:1:67 [INFO] [stdout] | [INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NUMBER_OF_RESOURCES` [INFO] [stdout] --> src/empire_optimization.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | NUMBER_OF_RESOURCES,JOBS_MAX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API [INFO] [stdout] --> src/empire_optimization.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API [INFO] [stdout] --> src/empire_optimization.rs:116:39 [INFO] [stdout] | [INFO] [stdout] 116 | let reorderd_job_production = reorder(&tiled_job_production,Dim4::new(&[0,2,1,3])); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `job_adjusted` in this scope [INFO] [stdout] --> src/empire_optimization.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let market_adjusted = mul(&job_adjusted,&imerial_market_values,true); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `compressed_species_mods_arr` in this scope [INFO] [stdout] --> src/empire_optimization.rs:136:14 [INFO] [stdout] | [INFO] [stdout] 136 | &compressed_species_mods_arr, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a local variable with a similar name exists: `compressed_species_adds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | collections::{HashMap,HashSet} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `reorder_v2` [INFO] [stdout] --> src/empire_optimization.rs:1:67 [INFO] [stdout] | [INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NUMBER_OF_RESOURCES` [INFO] [stdout] --> src/empire_optimization.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | NUMBER_OF_RESOURCES,JOBS_MAX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API [INFO] [stdout] --> src/empire_optimization.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API [INFO] [stdout] --> src/empire_optimization.rs:116:39 [INFO] [stdout] | [INFO] [stdout] 116 | let reorderd_job_production = reorder(&tiled_job_production,Dim4::new(&[0,2,1,3])); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::EmpireJob: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/empire.rs:21:58 [INFO] [stdout] | [INFO] [stdout] 21 | let mut empire_jobs_arr: [EmpireJob;JOBS_MAX] = [EmpireJob::default();JOBS_MAX]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `empire::EmpireJob` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] = help: consider using `core::array::from_fn` to initialize the array [INFO] [stdout] = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::EmpireJob: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/empire.rs:21:58 [INFO] [stdout] | [INFO] [stdout] 21 | let mut empire_jobs_arr: [EmpireJob;JOBS_MAX] = [EmpireJob::default();JOBS_MAX]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `empire::EmpireJob` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] = help: consider using `core::array::from_fn` to initialize the array [INFO] [stdout] = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/empire.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | let planet = Planet::new(&mut rng,&self.jobs,&self.species); [INFO] [stdout] | ----------- ^^^^^^^^^^ expected `&Vec`, found `&[EmpireJob; 40]` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Vec` [INFO] [stdout] found reference `&[empire::EmpireJob; 40]` [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/empire.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn new(rng:&mut ThreadRng,empire_jobs: &Vec,empire_species: &Vec) -> Self { [INFO] [stdout] | ^^^ ---------------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/empire.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | let planet = Planet::new(&mut rng,&self.jobs,&self.species); [INFO] [stdout] | ----------- ^^^^^^^^^^ expected `&Vec`, found `&[EmpireJob; 40]` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Vec` [INFO] [stdout] found reference `&[empire::EmpireJob; 40]` [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/empire.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn new(rng:&mut ThreadRng,empire_jobs: &Vec,empire_species: &Vec) -> Self { [INFO] [stdout] | ^^^ ---------------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:128:37 [INFO] [stdout] | [INFO] [stdout] 128 | let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:128:37 [INFO] [stdout] | [INFO] [stdout] 128 | let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:128:61 [INFO] [stdout] | [INFO] [stdout] 128 | let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]); [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:128:61 [INFO] [stdout] | [INFO] [stdout] 128 | let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]); [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:142:38 [INFO] [stdout] | [INFO] [stdout] 142 | let ids:Vec = (0..self.jobs.len() * self.species.len()).map( [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:142:56 [INFO] [stdout] | [INFO] [stdout] 142 | let ids:Vec = (0..self.jobs.len() * self.species.len()).map( [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:142:38 [INFO] [stdout] | [INFO] [stdout] 142 | let ids:Vec = (0..self.jobs.len() * self.species.len()).map( [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:144:30 [INFO] [stdout] | [INFO] [stdout] 144 | job_id: self.jobs[indx % self.jobs.len()].job.id, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:142:56 [INFO] [stdout] | [INFO] [stdout] 142 | let ids:Vec = (0..self.jobs.len() * self.species.len()).map( [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:144:30 [INFO] [stdout] | [INFO] [stdout] 144 | job_id: self.jobs[indx % self.jobs.len()].job.id, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:144:47 [INFO] [stdout] | [INFO] [stdout] 144 | job_id: self.jobs[indx % self.jobs.len()].job.id, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | species_id: self.species[indx / self.jobs.len()].species.id [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:144:47 [INFO] [stdout] | [INFO] [stdout] 144 | job_id: self.jobs[indx % self.jobs.len()].job.id, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | species_id: self.species[indx / self.jobs.len()].species.id [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:145:54 [INFO] [stdout] | [INFO] [stdout] 145 | species_id: self.species[indx / self.jobs.len()].species.id [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization` [INFO] [stdout] --> src/empire_optimization.rs:145:54 [INFO] [stdout] | [INFO] [stdout] 145 | species_id: self.species[indx / self.jobs.len()].species.id [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied [INFO] [stdout] --> src/empire_optimization.rs:188:73 [INFO] [stdout] | [INFO] [stdout] 188 | let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ the trait `Convertable` is not implemented for `empire::Modifier` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Convertable`: [INFO] [stdout] Array [INFO] [stdout] bool [INFO] [stdout] f32 [INFO] [stdout] f64 [INFO] [stdout] i16 [INFO] [stdout] i32 [INFO] [stdout] i64 [INFO] [stdout] num_complex::Complex [INFO] [stdout] and 5 others [INFO] [stdout] note: required by a bound in `arrayfire::mul` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/arrayfire-3.7.0/src/arith/mod.rs:480:1 [INFO] [stdout] | [INFO] [stdout] 480 | overloaded_binary_func!("Multiplication of two Arrays", mul, mul_helper, af_mul); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | required by a bound in this function [INFO] [stdout] | required by this bound in `mul` [INFO] [stdout] = note: this error originates in the macro `overloaded_binary_func` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied [INFO] [stdout] --> src/empire_optimization.rs:188:73 [INFO] [stdout] | [INFO] [stdout] 188 | let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ the trait `Convertable` is not implemented for `empire::Modifier` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Convertable`: [INFO] [stdout] Array [INFO] [stdout] bool [INFO] [stdout] f32 [INFO] [stdout] f64 [INFO] [stdout] i16 [INFO] [stdout] i32 [INFO] [stdout] i64 [INFO] [stdout] num_complex::Complex [INFO] [stdout] and 5 others [INFO] [stdout] note: required by a bound in `arrayfire::mul` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/arrayfire-3.7.0/src/arith/mod.rs:480:1 [INFO] [stdout] | [INFO] [stdout] 480 | overloaded_binary_func!("Multiplication of two Arrays", mul, mul_helper, af_mul); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | required by a bound in this function [INFO] [stdout] | required by this bound in `mul` [INFO] [stdout] = note: this error originates in the macro `overloaded_binary_func` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied [INFO] [stdout] --> src/empire_optimization.rs:188:37 [INFO] [stdout] | [INFO] [stdout] 188 | let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Convertable` is not implemented for `empire::Modifier` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Convertable`: [INFO] [stdout] Array [INFO] [stdout] bool [INFO] [stdout] f32 [INFO] [stdout] f64 [INFO] [stdout] i16 [INFO] [stdout] i32 [INFO] [stdout] i64 [INFO] [stdout] num_complex::Complex [INFO] [stdout] and 5 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied [INFO] [stdout] --> src/empire_optimization.rs:188:37 [INFO] [stdout] | [INFO] [stdout] 188 | let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Convertable` is not implemented for `empire::Modifier` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Convertable`: [INFO] [stdout] Array [INFO] [stdout] bool [INFO] [stdout] f32 [INFO] [stdout] f64 [INFO] [stdout] i16 [INFO] [stdout] i32 [INFO] [stdout] i64 [INFO] [stdout] num_complex::Complex [INFO] [stdout] and 5 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Vec: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/main.rs:311:46 [INFO] [stdout] | [INFO] [stdout] 311 | let mut tiers:[Vec;TIERS] = [Vec::new();TIERS]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the trait `std::marker::Copy` is not implemented for `Vec` [INFO] [stdout] | help: create an inline `const` block: `const { Vec::new() }` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Vec: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/main.rs:311:46 [INFO] [stdout] | [INFO] [stdout] 311 | let mut tiers:[Vec;TIERS] = [Vec::new();TIERS]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the trait `std::marker::Copy` is not implemented for `Vec` [INFO] [stdout] | help: create an inline `const` block: `const { Vec::new() }` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Arc: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/main.rs:565:46 [INFO] [stdout] | [INFO] [stdout] 565 | let mut jobs_arr: [Arc;JOBS_MAX] = [Arc::new(Job::default());JOBS_MAX]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Arc` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] = help: consider using `core::array::from_fn` to initialize the array [INFO] [stdout] = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:596:13 [INFO] [stdout] | [INFO] [stdout] 596 | af_print!("",species.modifier); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Array<_>`, found `&Modifier` [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Array<_>` [INFO] [stdout] found reference `&empire::Modifier` [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/arrayfire-3.7.0/src/array.rs:645:8 [INFO] [stdout] | [INFO] [stdout] 645 | pub fn print_gen(msg: String, input: &Array, precision: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = note: this error originates in the macro `af_print` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Arc: std::marker::Copy` is not satisfied [INFO] [stdout] --> src/main.rs:565:46 [INFO] [stdout] | [INFO] [stdout] 565 | let mut jobs_arr: [Arc;JOBS_MAX] = [Arc::new(Job::default());JOBS_MAX]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Arc` [INFO] [stdout] | [INFO] [stdout] = note: the `Copy` trait is required because this value will be copied for each element of the array [INFO] [stdout] = help: consider using `core::array::from_fn` to initialize the array [INFO] [stdout] = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:596:13 [INFO] [stdout] | [INFO] [stdout] 596 | af_print!("",species.modifier); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `&Array<_>`, found `&Modifier` [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Array<_>` [INFO] [stdout] found reference `&empire::Modifier` [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/arrayfire-3.7.0/src/array.rs:645:8 [INFO] [stdout] | [INFO] [stdout] 645 | pub fn print_gen(msg: String, input: &Array, precision: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = note: this error originates in the macro `af_print` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.addend` which is behind a shared reference [INFO] [stdout] --> src/empire.rs:223:16 [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier [INFO] [stdout] | ^^^^^^^^^^^ move occurs because `self.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend.clone()) * self.multiplier [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire.rs:223:31 [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier [INFO] [stdout] | ^^^^^^^^^^^^^^^ move occurs because `self.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier.clone() [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.addend` which is behind a shared reference [INFO] [stdout] --> src/empire.rs:223:16 [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier [INFO] [stdout] | ^^^^^^^^^^^ move occurs because `self.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend.clone()) * self.multiplier [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire.rs:223:31 [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier [INFO] [stdout] | ^^^^^^^^^^^^^^^ move occurs because `self.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 223 | (raw + self.addend) * self.multiplier.clone() [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `JobPositionProduction::new` is unsafe and requires unsafe function or block [INFO] [stdout] --> src/empire_production.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | job_positions.iter().map(|(_,jp)| JobPositionProduction::new(jp)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:80:24 [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | `species.empire_species_modifier.multiplier` moved due to usage in operator [INFO] [stdout] | move occurs because `species.empire_species_modifier.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: calling this operator moves the left-hand side [INFO] [stdout] --> /rustc/f609b7e0586f81fefb3523e3e17adf779ac416be/library/core/src/ops/arith.rs:91:12 [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier.clone() + species.species_modifier.multiplier - 1) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:80:69 [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier.clone() - 1) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `base`, a captured variable in an `FnMut` closure [INFO] [stdout] --> src/empire_production.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ---- captured outer variable [INFO] [stdout] ... [INFO] [stdout] 77 | |sum, species| sum [INFO] [stdout] | -------------- captured by this `FnMut` closure [INFO] [stdout] ... [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | `base` moved due to usage in operator [INFO] [stdout] | move occurs because `base` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base.clone() + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:81:31 [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.empire_species_modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend.clone() + species.species_modifier.addend) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:81:72 [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend.clone()) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of an `Arc` [INFO] [stdout] --> src/empire_production.rs:73:20 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | value moved due to usage in operator [INFO] [stdout] | move occurs because value has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: calling this operator moves the left-hand side [INFO] [stdout] --> /rustc/f609b7e0586f81fefb3523e3e17adf779ac416be/library/core/src/ops/arith.rs:91:12 [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production.clone() + self.modifier.addend; [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `JobPositionProduction::new` is unsafe and requires unsafe function or block [INFO] [stdout] --> src/empire_production.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | job_positions.iter().map(|(_,jp)| JobPositionProduction::new(jp)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:73:42 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ move occurs because `self.modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend.clone(); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:80:24 [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | `species.empire_species_modifier.multiplier` moved due to usage in operator [INFO] [stdout] | move occurs because `species.empire_species_modifier.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: calling this operator moves the left-hand side [INFO] [stdout] --> /rustc/f609b7e0586f81fefb3523e3e17adf779ac416be/library/core/src/ops/arith.rs:91:12 [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier.clone() + species.species_modifier.multiplier - 1) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.multiplier` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:80:69 [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.multiplier` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 80 | * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier.clone() - 1) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `base`, a captured variable in an `FnMut` closure [INFO] [stdout] --> src/empire_production.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ---- captured outer variable [INFO] [stdout] ... [INFO] [stdout] 77 | |sum, species| sum [INFO] [stdout] | -------------- captured by this `FnMut` closure [INFO] [stdout] ... [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | `base` moved due to usage in operator [INFO] [stdout] | move occurs because `base` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base.clone() + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:81:31 [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.empire_species_modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend.clone() + species.species_modifier.addend) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:81:72 [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 81 | * (base + species.empire_species_modifier.addend + species.species_modifier.addend.clone()) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of an `Arc` [INFO] [stdout] --> src/empire_production.rs:73:20 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | value moved due to usage in operator [INFO] [stdout] | move occurs because value has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: calling this operator moves the left-hand side [INFO] [stdout] --> /rustc/f609b7e0586f81fefb3523e3e17adf779ac416be/library/core/src/ops/arith.rs:91:12 [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production.clone() + self.modifier.addend; [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.modifier.addend` which is behind a shared reference [INFO] [stdout] --> src/empire_production.rs:73:42 [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ move occurs because `self.modifier.addend` has type `Array`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | let base = self.job.production + self.modifier.addend.clone(); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tiers` [INFO] [stdout] --> src/main.rs:162:10 [INFO] [stdout] | [INFO] [stdout] 162 | let (tiers,jobs) = create_jobs(&resources,&[ [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiers` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tiers` [INFO] [stdout] --> src/main.rs:162:10 [INFO] [stdout] | [INFO] [stdout] 162 | let (tiers,jobs) = create_jobs(&resources,&[ [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiers` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `traits` [INFO] [stdout] --> src/main.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | let traits = create_traits(&resources,&jobs,&[ [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `traits` [INFO] [stdout] --> src/main.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | let traits = create_traits(&resources,&jobs,&[ [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `techs` [INFO] [stdout] --> src/main.rs:299:9 [INFO] [stdout] | [INFO] [stdout] 299 | let techs = create_techs(&resources,&jobs,&[ [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_techs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `techs` [INFO] [stdout] --> src/main.rs:299:9 [INFO] [stdout] | [INFO] [stdout] 299 | let techs = create_techs(&resources,&jobs,&[ [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_techs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: `&TraitEffect::All(_)` not covered [INFO] [stdout] --> src/main.rs:347:27 [INFO] [stdout] | [INFO] [stdout] 347 | match e { [INFO] [stdout] | ^ pattern `&TraitEffect::All(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `TraitEffect<'_>` defined here [INFO] [stdout] --> src/main.rs:440:10 [INFO] [stdout] | [INFO] [stdout] 440 | enum TraitEffect<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 444 | All(AddOrMul) // Affects all resources [INFO] [stdout] | --- not covered [INFO] [stdout] = note: the matched value is of type `&TraitEffect<'_>` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown [INFO] [stdout] | [INFO] [stdout] 356 ~ }, [INFO] [stdout] 357 + &TraitEffect::All(_) => todo!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: `&TraitEffect::All(_)` not covered [INFO] [stdout] --> src/main.rs:347:27 [INFO] [stdout] | [INFO] [stdout] 347 | match e { [INFO] [stdout] | ^ pattern `&TraitEffect::All(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `TraitEffect<'_>` defined here [INFO] [stdout] --> src/main.rs:440:10 [INFO] [stdout] | [INFO] [stdout] 440 | enum TraitEffect<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 444 | All(AddOrMul) // Affects all resources [INFO] [stdout] | --- not covered [INFO] [stdout] = note: the matched value is of type `&TraitEffect<'_>` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown [INFO] [stdout] | [INFO] [stdout] 356 ~ }, [INFO] [stdout] 357 + &TraitEffect::All(_) => todo!() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*tech` which is behind a shared reference [INFO] [stdout] --> src/main.rs:386:31 [INFO] [stdout] | [INFO] [stdout] 386 | (name.to_string(),*tech) [INFO] [stdout] | ^^^^^ move occurs because `*tech` has type `Tech<'_>`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*tech` which is behind a shared reference [INFO] [stdout] --> src/main.rs:386:31 [INFO] [stdout] | [INFO] [stdout] 386 | (name.to_string(),*tech) [INFO] [stdout] | ^^^^^ move occurs because `*tech` has type `Tech<'_>`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 31 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0004, E0133, E0277, E0308, E0425, E0507, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0004`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 31 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0004, E0133, E0277, E0308, E0425, E0507, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0004`. [INFO] [stdout] [INFO] [stderr] error: could not compile `stellaris-performance-test` (bin "stellaris-performance-test") due to 32 previous errors; 8 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `stellaris-performance-test` (bin "stellaris-performance-test" test) due to 32 previous errors; 8 warnings emitted [INFO] running `Command { std: "docker" "inspect" "ba3bcade3f8fd596e34308a9ae8f1954febce91cfe066f8440b24f3bbe8d109d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba3bcade3f8fd596e34308a9ae8f1954febce91cfe066f8440b24f3bbe8d109d", kill_on_drop: false }` [INFO] [stdout] ba3bcade3f8fd596e34308a9ae8f1954febce91cfe066f8440b24f3bbe8d109d