[INFO] cloning repository https://github.com/k-nrd/rust-ecs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/k-nrd/rust-ecs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk-nrd%2Frust-ecs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk-nrd%2Frust-ecs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] be875252303e40f92564f721d4cf03c911ae9f65
[INFO] checking k-nrd/rust-ecs against try#54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47 for pr-153041
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk-nrd%2Frust-ecs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/k-nrd/rust-ecs
[INFO] finished tweaking git repo https://github.com/k-nrd/rust-ecs
[INFO] tweaked toml for git repo https://github.com/k-nrd/rust-ecs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/k-nrd/rust-ecs on toolchain 54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/k-nrd/rust-ecs 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" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "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] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded aho-corasick v1.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8fa159fa0626d3098836cb46a3d8d107f81f842e4266071f0f19e1275f0b8562
[INFO] running `Command { std: "docker" "start" "-a" "8fa159fa0626d3098836cb46a3d8d107f81f842e4266071f0f19e1275f0b8562", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8fa159fa0626d3098836cb46a3d8d107f81f842e4266071f0f19e1275f0b8562", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fa159fa0626d3098836cb46a3d8d107f81f842e4266071f0f19e1275f0b8562", kill_on_drop: false }`
[INFO] [stdout] 8fa159fa0626d3098836cb46a3d8d107f81f842e4266071f0f19e1275f0b8562
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a507f64a682218a70b5ef8c5811a4650fbe11c62e5e0f13379afddd71470c2e8
[INFO] running `Command { std: "docker" "start" "-a" "a507f64a682218a70b5ef8c5811a4650fbe11c62e5e0f13379afddd71470c2e8", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.6.3
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling rustix v0.38.13
[INFO] [stderr]     Checking regex-syntax v0.7.5
[INFO] [stderr]     Checking bitflags v2.4.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.7
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]    Compiling thiserror v1.0.49
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking termcolor v1.3.0
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.67
[INFO] [stderr]     Checking sparseset v1.0.1 (https://github.com/k-nrd/sparseset#8f8cd041)
[INFO] [stderr]     Checking glam v0.24.1
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.37
[INFO] [stderr]     Checking aho-corasick v1.1.0
[INFO] [stderr]     Checking regex-automata v0.3.8
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]    Compiling thiserror-impl v1.0.49
[INFO] [stderr]     Checking regex v1.9.5
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking pikuma-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]  --> src/ecs/archetype.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::debug;
[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 import: `QueryParameterFetch`
[INFO] [stdout]  --> src/ecs/queries/mod.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use query_parameters::{QueryParameterFetch, QueryParameters};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> src/ecs/world.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::warn`
[INFO] [stdout]  --> src/ecs/world.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::warn;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]  --> src/ecs/archetype.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::debug;
[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 import: `QueryParameterFetch`
[INFO] [stdout]  --> src/ecs/queries/mod.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use query_parameters::{QueryParameterFetch, QueryParameters};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Ref`
[INFO] [stdout]  --> src/ecs/world.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::Ref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::warn`
[INFO] [stdout]  --> src/ecs/world.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::warn;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tests::can_get_entity_component::Name: ComponentBundle` is not satisfied
[INFO] [stdout]    --> src/ecs/world.rs:402:34
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let entity = world.spawn(Name("Link"));
[INFO] [stdout]     |                            ----- ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `ComponentBundle` is not implemented for `tests::can_get_entity_component::Name`
[INFO] [stdout]    --> src/ecs/world.rs:407:9
[INFO] [stdout]     |
[INFO] [stdout] 407 |         struct Name(&'static str);
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `ComponentBundle`:
[INFO] [stdout]               (A, B)
[INFO] [stdout]               (A, B, C)
[INFO] [stdout]               (A, B, C, D)
[INFO] [stdout]               (A, B, C, D, E)
[INFO] [stdout]               (A, B, C, D, E, F)
[INFO] [stdout]               (A, B, C, D, E, F, G)
[INFO] [stdout]               (A, B, C, D, E, F, G, H)
[INFO] [stdout]               (A, B, C, D, E, F, G, H, I)
[INFO] [stdout]             and 7 others
[INFO] [stdout] note: required by a bound in `world::World::spawn`
[INFO] [stdout]    --> src/ecs/world.rs:116:42
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn spawn(&mut self, bundle: impl ComponentBundle) -> Entity {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^ required by this bound in `World::spawn`
[INFO] [stdout] help: use a unary tuple instead
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let entity = world.spawn((Name("Link"),));
[INFO] [stdout]     |                                  +            ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/ecs/entities.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub(crate) fn has_entity(&self, entity: Entity) {}
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/ecs/world.rs:131:30
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn update(&mut self, dt: u32) {
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_component` found for struct `world::World` in the current scope
[INFO] [stdout]    --> src/ecs/world.rs:414:35
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub struct World {
[INFO] [stdout]     | ---------------- method `get_component` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 414 |         let entity_health = world.get_component::<Health>(entity).unwrap();
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `add_component` with a similar name, but with different arguments
[INFO] [stdout]    --> src/ecs/world.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | /     pub fn add_component<T: Component>(
[INFO] [stdout] 147 | |         &mut self,
[INFO] [stdout] 148 | |         entity: Entity,
[INFO] [stdout] 149 | |         component: T,
[INFO] [stdout] 150 | |     ) -> Result<(), EcsError> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_component` found for struct `world::World` in the current scope
[INFO] [stdout]    --> src/ecs/world.rs:417:34
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub struct World {
[INFO] [stdout]     | ---------------- method `get_component` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 417 |         let entity_speed = world.get_component::<Speed>(entity);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `add_component` with a similar name, but with different arguments
[INFO] [stdout]    --> src/ecs/world.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | /     pub fn add_component<T: Component>(
[INFO] [stdout] 147 | |         &mut self,
[INFO] [stdout] 148 | |         entity: Entity,
[INFO] [stdout] 149 | |         component: T,
[INFO] [stdout] 150 | |     ) -> Result<(), EcsError> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/game.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let dt = elapsed.as_secs_f32();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArchetypeError` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum ArchetypeError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ArchetypeId` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type ArchetypeId = usize;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ComponentId` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub type ComponentId = usize;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Component` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait Component: 'static {}
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentSet` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait ComponentSet {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Lock` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type Lock<T> = RwLock<T>;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComponentStore` is never constructed
[INFO] [stdout]   --> src/ecs/archetype.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct ComponentStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `empty_clone` are never used
[INFO] [stdout]   --> src/ecs/archetype.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ComponentStore {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 73 |     pub fn new<T: Component>() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn empty_clone(&self) -> ComponentStore {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_set_to_mut` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn component_set_to_mut<T: 'static>(c: &mut dyn ComponentSet) -> &mut Vec<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_set_to_ref` is never used
[INFO] [stdout]   --> src/ecs/archetype.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn component_set_to_ref<T: 'static>(c: &dyn ComponentSet) -> RwLockReadGuard<'_, Vec<T>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Archetype` is never constructed
[INFO] [stdout]    --> src/ecs/archetype.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Archetype {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ecs/archetype.rs:113:19
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Archetype {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 112 |     /// Gets ComponentSet through its TypeId, downcasts to &mut Vec<T>.
[INFO] [stdout] 113 |     pub(crate) fn get_component_set_mut<T: Component>(&mut self) -> &mut Vec<T> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn has_component<T: Component>(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub(crate) fn add_entity_component<T: Component>(&mut self, component: T) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn add_entity(&mut self, entity_id: EntityId) -> EntityArchetypeIndex {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub(crate) fn remove_entity(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub(crate) fn set_entity_component<T: Component>(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub(crate) fn get_entity_component<T: Component>(&self) -> RwLockReadGuard<'_, Vec<T>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub(crate) fn migrate_component(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BundleId` is never used
[INFO] [stdout]   --> src/ecs/bundles.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) type BundleId = u64;
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentBundle` is never used
[INFO] [stdout]   --> src/ecs/bundles.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait ComponentBundle: 'static {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_bundle_id` is never used
[INFO] [stdout]   --> src/ecs/bundles.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn calculate_bundle_id(types: &[TypeId]) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityId` is never used
[INFO] [stdout]  --> src/ecs/entities.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type EntityId = u32;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Generation` is never used
[INFO] [stdout]  --> src/ecs/entities.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type Generation = u32;
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityArchetypeIndex` is never used
[INFO] [stdout]  --> src/ecs/entities.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type EntityArchetypeIndex = usize;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntityError` is never used
[INFO] [stdout]   --> src/ecs/entities.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum EntityError {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entity` is never constructed
[INFO] [stdout]   --> src/ecs/entities.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Entity {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ecs/entities.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Entity {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 28 |     pub(crate) fn new(index: EntityId, generation: Generation) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityLocation` is never constructed
[INFO] [stdout]   --> src/ecs/entities.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct EntityLocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ecs/entities.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl EntityLocation {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 40 |     pub fn new(archetype_id: ArchetypeId, index_in_archetype: EntityArchetypeIndex) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityEntry` is never constructed
[INFO] [stdout]   --> src/ecs/entities.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct EntityEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ecs/entities.rs:56:19
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl EntityEntry {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 56 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entities` is never constructed
[INFO] [stdout]   --> src/ecs/entities.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub(crate) struct Entities {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ecs/entities.rs:77:19
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl Entities {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout]  77 |     pub(crate) fn len(&self) -> u32 {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub(crate) fn allocate(&mut self) -> Result<Entity, EntityError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub(crate) fn deallocate(&mut self, entity: Entity) -> Result<(), EntityError> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub(crate) fn set_location(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub(crate) fn count(&self) -> usize {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub(crate) fn is_live(&self, entity: Entity) -> bool {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub(crate) fn live_at_index(&self, index: u32) -> Option<&EntityEntry> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub(crate) fn has_entity(&self, entity: Entity) {}
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_twice` is never used
[INFO] [stdout]  --> src/ecs/helpers.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(crate) fn index_twice<T>(slice: &mut [T], first: usize, second: usize) -> (&mut T, &mut T) {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FetchError` is never used
[INFO] [stdout]  --> src/ecs/queries/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum FetchError {}
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryFetch` is never constructed
[INFO] [stdout]   --> src/ecs/queries/query.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct QueryFetch<T: QueryParameters> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Query` is never constructed
[INFO] [stdout]   --> src/ecs/queries/query.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Query<'world_borrow, T: QueryParameters> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `query` is never used
[INFO] [stdout]   --> src/ecs/queries/query.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn query<'world_borrow, T: QueryParameters>(
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `QueryParameterFetch` is never used
[INFO] [stdout]   --> src/ecs/queries/query_parameters.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait QueryParameterFetch<'world_borrow> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryParameterFetchRead` is never constructed
[INFO] [stdout]   --> src/ecs/queries/query_parameters.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct QueryParameterFetchRead<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryParameterFetchWrite` is never constructed
[INFO] [stdout]   --> src/ecs/queries/query_parameters.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct QueryParameterFetchWrite<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `QueryParameter` is never used
[INFO] [stdout]   --> src/ecs/queries/query_parameters.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub trait QueryParameter {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `QueryParameters` is never used
[INFO] [stdout]    --> src/ecs/queries/query_parameters.rs:100:11
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub trait QueryParameters: for<'a> QueryParameterFetch<'a> {}
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EcsError` is never used
[INFO] [stdout]   --> src/ecs/world.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum EcsError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `World` is never constructed
[INFO] [stdout]   --> src/ecs/world.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct World {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ecs/world.rs:45:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl World {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  45 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub(crate) fn add_archetype(&mut self, archetype: Archetype) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub(crate) fn get_archetype(&self, archetype_id: ArchetypeId) -> &Archetype {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub(crate) fn get_archetype_mut(&mut self, archetype_id: ArchetypeId) -> &mut Archetype {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub(crate) fn get_bundle_archetype(&self, bundle_id: BundleId) -> Option<&ArchetypeId> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub(crate) fn set_bundle_archetype(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub(crate) fn next_archetype_id(&self) -> usize {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub(crate) fn add_entity_to_archetype(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub(crate) fn add_component_to_archetype<T: Component>(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub(crate) fn set_component_in_archetype<T: Component>(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn spawn(&mut self, bundle: impl ComponentBundle) -> Entity {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn remove(&mut self, entity: Entity) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn entity_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn update(&mut self, dt: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn add_component<T: Component>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn remove_component<T: Component>(&mut self, entity: Entity) -> Result<(), EcsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn has_component<T: Component>(&self, entity: Entity) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn query<'world_borrow, T: QueryParameters>(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn has_system() {}
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 358 |     pub fn get_system() {}
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target_fps` and `game_size` are never read
[INFO] [stdout]   --> src/game.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct GameConfig {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 11 |     target_fps: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     target_frame_duration: Duration,
[INFO] [stdout] 13 |     game_size: (u32, u32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture_creator` and `img_ctx` are never read
[INFO] [stdout]   --> src/game.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Game {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     texture_creator: TextureCreator<WindowContext>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     img_ctx: Sdl2ImageContext,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/ecs/entities.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub(crate) fn has_entity(&self, entity: Entity) {}
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/ecs/world.rs:131:30
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn update(&mut self, dt: u32) {
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/game.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let dt = elapsed.as_secs_f32();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pikuma-rs` (bin "pikuma-rs" test) due to 3 previous errors; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "a507f64a682218a70b5ef8c5811a4650fbe11c62e5e0f13379afddd71470c2e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a507f64a682218a70b5ef8c5811a4650fbe11c62e5e0f13379afddd71470c2e8", kill_on_drop: false }`
[INFO] [stdout] a507f64a682218a70b5ef8c5811a4650fbe11c62e5e0f13379afddd71470c2e8
