[INFO] cloning repository https://github.com/RasmusBruhn/hex_plant_simulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RasmusBruhn/hex_plant_simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmusBruhn%2Fhex_plant_simulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmusBruhn%2Fhex_plant_simulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 29ecd363aac5c2a6cba36dee4a4ba81496d231f4 [INFO] checking RasmusBruhn/hex_plant_simulator against master#59fd4ef94daa991e6797b5aa6127e824f3067def for pr-145108-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmusBruhn%2Fhex_plant_simulator" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/RasmusBruhn/hex_plant_simulator [INFO] finished tweaking git repo https://github.com/RasmusBruhn/hex_plant_simulator [INFO] tweaked toml for git repo https://github.com/RasmusBruhn/hex_plant_simulator written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/RasmusBruhn/hex_plant_simulator on toolchain 59fd4ef94daa991e6797b5aa6127e824f3067def [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/RasmusBruhn/hex_plant_simulator 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" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fdc9b4d6fecf237f14497b60af9a1e3be9c68a7099bacebdd4c11cd9ecda18b2 [INFO] running `Command { std: "docker" "start" "-a" "fdc9b4d6fecf237f14497b60af9a1e3be9c68a7099bacebdd4c11cd9ecda18b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fdc9b4d6fecf237f14497b60af9a1e3be9c68a7099bacebdd4c11cd9ecda18b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fdc9b4d6fecf237f14497b60af9a1e3be9c68a7099bacebdd4c11cd9ecda18b2", kill_on_drop: false }` [INFO] [stdout] fdc9b4d6fecf237f14497b60af9a1e3be9c68a7099bacebdd4c11cd9ecda18b2 [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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1ee3691e3bb5c7cdec074e60b13501511ad4b6c215fe188e16921539c3cae277 [INFO] running `Command { std: "docker" "start" "-a" "1ee3691e3bb5c7cdec074e60b13501511ad4b6c215fe188e16921539c3cae277", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling unicode-ident v1.0.20 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling find-msvc-tools v0.1.4 [INFO] [stderr] Compiling wayland-sys v0.31.7 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling wayland-client v0.31.11 [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling cc v1.2.43 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Compiling naga v27.0.3 [INFO] [stderr] Checking hashbrown v0.16.0 [INFO] [stderr] Checking unicode-width v0.2.2 [INFO] [stderr] Checking codespan-reporting v0.12.0 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Checking indexmap v2.12.0 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Compiling wgpu-hal v27.0.4 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Compiling wayland-scanner v0.31.7 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Compiling wayland-backend v0.3.11 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking ash v0.38.0+1.3.281 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking regex-syntax v0.8.8 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking memmap2 v0.9.9 [INFO] [stderr] Compiling wgpu-core v27.0.3 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Compiling wgpu v27.0.1 [INFO] [stderr] Checking anstyle-query v1.1.4 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking jiff v0.2.15 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling zerocopy-derive v0.8.27 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking wayland-protocols v0.32.9 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking wgpu-types v27.0.1 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking wayland-cursor v0.31.11 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking env_filter v0.1.4 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking pollster v0.4.0 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.9 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.9 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking wgpu-core-deps-windows-linux-android v27.0.0 [INFO] [stderr] Checking plant_growth_simulation v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `get_mut` is never used [INFO] [stdout] --> src/map/tile/neighbor.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> TileNeighbors<'a> { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn get_mut(&mut self, direction: &NeighborDirection) -> &mut Neighbor<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `direction` is never used [INFO] [stdout] --> src/map/tile/neighbor.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl TilePos { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn direction(&self, size: &types::ISize, direction: &NeighborDirection) -> TilePosNeighbor { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `count` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/bridge/mod.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl BridgeSet { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn count(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbor_dir_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:225:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn neighbor_dir_to_id(dir: &NeighborDirection) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id_to_neighbor_dir` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:241:4 [INFO] [stdout] | [INFO] [stdout] 241 | fn id_to_neighbor_dir(id: usize) -> NeighborDirection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `float_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:257:4 [INFO] [stdout] | [INFO] [stdout] 257 | fn float_to_id(value: f64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id_to_float` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:266:4 [INFO] [stdout] | [INFO] [stdout] 266 | fn id_to_float(value: usize) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transfer_mode_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:275:4 [INFO] [stdout] | [INFO] [stdout] 275 | fn transfer_mode_to_id(mode: &TransferMode) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/arithmetic.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Arithmetic { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 9 | /// Always has the value 0.0 [INFO] [stdout] 10 | Zero, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | /// Always has the value 1.0 [INFO] [stdout] 12 | One, [INFO] [stdout] | ^^^ [INFO] [stdout] 13 | /// Always a constant value [INFO] [stdout] 14 | Constant(f64), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 15 | /// Doubles the value [INFO] [stdout] 16 | Double(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | /// Halfs the value [INFO] [stdout] 18 | Half(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | /// Increments the value by 1 [INFO] [stdout] 20 | Increment(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 21 | /// Decrements the value by 1 [INFO] [stdout] 22 | Decrement(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 23 | /// Adds to values [INFO] [stdout] 24 | Add(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 25 | /// Subtracts two values [INFO] [stdout] 26 | Sub(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | /// Multiplies two values [INFO] [stdout] 28 | Mul(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | /// Divides two values [INFO] [stdout] 30 | Div(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 31 | /// Applies modulus operator between two values [INFO] [stdout] 32 | Mod(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | /// Negates a value [INFO] [stdout] 34 | Neg(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | /// Finds the minimum of two values [INFO] [stdout] 36 | Min(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 37 | /// Finds the minimum of a value and zero [INFO] [stdout] 38 | MinZero(usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | /// Finds the minimum of a value and one [INFO] [stdout] 40 | MinOne(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 41 | /// Finds the maximum of two values [INFO] [stdout] 42 | Max(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 43 | /// Finds the maximum of a value and zero [INFO] [stdout] 44 | MaxZero(usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | /// Finds the maximum of a value and one [INFO] [stdout] 46 | MaxOne(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | /// Calculates the mean of two values [INFO] [stdout] 48 | Mean(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 49 | /// Gets the light value of this tile [INFO] [stdout] 50 | TileLight, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | /// Gets the gradient of the light in the specified direction [INFO] [stdout] 52 | TileLightGradient(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | /// Gets the transparency of this til [INFO] [stdout] 54 | TileTransparency, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 55 | /// Gets the gradient of the transparency in the specified direction [INFO] [stdout] 56 | TileTransparencyGradient(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 57 | /// A unique id for the type of the the the neighbor tile [INFO] [stdout] 58 | TilePlantType(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 59 | /// A unique id for the bridge in the direction [INFO] [stdout] 60 | BridgeType(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 61 | /// A unique id for the type of plant in this tile [INFO] [stdout] 62 | PlantType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 63 | /// Gets the age of the plant tile [INFO] [stdout] 64 | PlantAge, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | /// Gets the cumulative age of the plant [INFO] [stdout] 66 | PlantCumAge, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 67 | /// Gets the energy capacity of the plant tile [INFO] [stdout] 68 | PlantEnergyCapacity, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 69 | /// Gets the energy reserve of the plant tile [INFO] [stdout] 70 | PlantEnergyReserve, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | /// Gets the energy stored in the plant tile [INFO] [stdout] 72 | PlantEnergy, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 73 | /// Gets the change in energy of the plant tile since last simulation step [INFO] [stdout] 74 | PlantEnergyChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 75 | /// Gets the energy of the plant tile reserved for itself [INFO] [stdout] 76 | PlantEnergySelf, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | /// Gets the change in the self energy of the plant tile since last simulation step [INFO] [stdout] 78 | PlantEnergySelfChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | /// Gets the energy allocated for sharing with each neighbor ((energy - energy_self) / 6.0) [INFO] [stdout] 80 | PlantEnergyShare, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 81 | /// Gets the change in shared energy since the last simulation step [INFO] [stdout] 82 | PlantEnergyShareChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Arithmetic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/arithmetic.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 85 | impl Arithmetic { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 86 | /// The number of different arithmetic operators [INFO] [stdout] 87 | pub const COUNT: usize = 37; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_indices(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn from_id(id: usize, indices: (usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/logic.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Logic { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 8 | /// Always false [INFO] [stdout] 9 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | /// Always true [INFO] [stdout] 11 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | /// Applies and operator between two logic operations [INFO] [stdout] 13 | And(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | /// Applies or operator between two logic operators [INFO] [stdout] 15 | Or(usize, usize), [INFO] [stdout] | ^^ [INFO] [stdout] 16 | /// Applies xor operator between two logic operators [INFO] [stdout] 17 | Xor(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 18 | /// Applies not operator on a logic operator [INFO] [stdout] 19 | Not(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | /// Checks if two arithmetic operators are equal [INFO] [stdout] 21 | Equal(usize, usize), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 22 | /// Checks if two arithmetic operators are qual when rounded to integers [INFO] [stdout] 23 | EqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 24 | /// Checks if two arithmetic operators are not equal [INFO] [stdout] 25 | NotEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 26 | /// Checks if two arithmetic operators are not equal when rounded to integers [INFO] [stdout] 27 | NotEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 28 | /// Checks if one arithmetic operator is greater than another arithmetic operator [INFO] [stdout] 29 | Greater(usize, usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 30 | /// Checks if one arithmetic operator is greater than another arithmetic operator when rounded to integers [INFO] [stdout] 31 | GreaterRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 32 | /// Checks if one arithmetic operator is greater than or equal another arithmetic operator [INFO] [stdout] 33 | GreaterOrEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 34 | /// Checks if one arithmetic operator is greater than or equal another arithmetic operator when rounded to integers [INFO] [stdout] 35 | GreaterOrEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | /// Checks if one arithmetic operator is less than another arithmetic operator [INFO] [stdout] 37 | Less(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 38 | /// Checks if one arithmetic operator is less than another arithmetic operator when rounded to integers [INFO] [stdout] 39 | LessRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | /// Checks if one arithmetic operator is less than or equal another arithmetic operator [INFO] [stdout] 41 | LessOrEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 42 | /// Checks if one arithmetic operator is less than or equal another arithmetic operator when rounded to integers [INFO] [stdout] 43 | LessOrEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | /// Checks if a arithmetic operator is positive [INFO] [stdout] 45 | IsPositive(usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | /// Checks if a arithmetic operator is positive when rounded to an integer [INFO] [stdout] 47 | IsPositiveRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | /// Checks if a arithmetic operator is positive or zero [INFO] [stdout] 49 | IsNotNegative(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 50 | /// Checks if a arithmetic operator is positive or zero when rounded to an integer [INFO] [stdout] 51 | IsNotNegativeRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | /// Checks if a arithmetic operator is zero [INFO] [stdout] 53 | IsZero(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 54 | /// Checks if a arithmetic operator is zero when rounded to an integer [INFO] [stdout] 55 | IsZeroRound(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 56 | /// Checks if a arithmetic operator is negative or zero [INFO] [stdout] 57 | IsNotPositive(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 58 | /// Checks if a arithmetic operator is negative or zero when rounded to an integer [INFO] [stdout] 59 | IsNotPositiveRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 60 | /// Checks if a arithmetic operator is negative [INFO] [stdout] 61 | IsNegative(usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 62 | /// Checks if a arithmetic operator is negative when rounded to an integer [INFO] [stdout] 63 | IsNegativeRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 64 | /// True if the tile in the specified direction is available for spreading [INFO] [stdout] 65 | TileFree(NeighborDirection), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Logic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/logic.rs:70:15 [INFO] [stdout] | [INFO] [stdout] 68 | impl Logic { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 69 | /// The number of different logic operators [INFO] [stdout] 70 | pub const COUNT: usize = 29; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_indices(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn from_id(id: usize, indices: (usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/action.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Action { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 8 | /// Do nothing [INFO] [stdout] 9 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | /// If .0 is true then runs action .1 [INFO] [stdout] 11 | If(usize, usize), [INFO] [stdout] | ^^ [INFO] [stdout] 12 | /// If .0 is true then runs action .1 otherwise runs action .2 [INFO] [stdout] 13 | IfElse(usize, usize, usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | /// Runs action .0 and then action .1 [INFO] [stdout] 15 | Both(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | /// Kills the plant [INFO] [stdout] 17 | Kill, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | Spread(usize, usize, NeighborDirection), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | Grow, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/action.rs:28:15 [INFO] [stdout] | [INFO] [stdout] 26 | impl Action { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 27 | /// The number of different action operators [INFO] [stdout] 28 | pub const COUNT: usize = 7; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get_indices(&self) -> (usize, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn from_id(id: usize, indices: (usize, usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Seed`, `SugarBulb`, `Log`, and `Leaf` are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bulk.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub enum SpreadBulkType { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 83 | /// Produces a new seed [INFO] [stdout] 84 | Seed, [INFO] [stdout] | ^^^^ [INFO] [stdout] 85 | /// Produces a new sugar bulb [INFO] [stdout] 86 | SugarBulb, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 87 | /// Produces a new log [INFO] [stdout] 88 | Log, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | Leaf(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpreadBulkType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bulk.rs:96:15 [INFO] [stdout] | [INFO] [stdout] 94 | impl SpreadBulkType { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 95 | /// The number of different plant types [INFO] [stdout] 96 | pub const COUNT: usize = 4; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_indices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn from_id(id: usize, indices: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Log` and `Branch` are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bridge.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub enum SpreadBridgeType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 54 | /// Produces a new log [INFO] [stdout] 55 | Log, [INFO] [stdout] | ^^^ [INFO] [stdout] 56 | /// Produces a new branch [INFO] [stdout] 57 | Branch, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpreadBridgeType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bridge.rs:62:15 [INFO] [stdout] | [INFO] [stdout] 60 | impl SpreadBridgeType { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 61 | /// The number of different plant types [INFO] [stdout] 62 | pub const COUNT: usize = 2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn from_id(id: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:258:21 [INFO] [stdout] | [INFO] [stdout] 258 | return unsafe { transmute(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 258 - return unsafe { transmute(value) }; [INFO] [stdout] 258 + return unsafe { f64::to_bits(value) as usize }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:267:21 [INFO] [stdout] | [INFO] [stdout] 267 | return unsafe { transmute(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 267 - return unsafe { transmute(value) }; [INFO] [stdout] 267 + return unsafe { f64::from_bits(value as _) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_mut` is never used [INFO] [stdout] --> src/map/tile/neighbor.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> TileNeighbors<'a> { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn get_mut(&mut self, direction: &NeighborDirection) -> &mut Neighbor<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `direction` is never used [INFO] [stdout] --> src/map/tile/neighbor.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl TilePos { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn direction(&self, size: &types::ISize, direction: &NeighborDirection) -> TilePosNeighbor { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `count` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/bridge/mod.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl BridgeSet { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn count(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `neighbor_dir_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:225:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn neighbor_dir_to_id(dir: &NeighborDirection) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id_to_neighbor_dir` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:241:4 [INFO] [stdout] | [INFO] [stdout] 241 | fn id_to_neighbor_dir(id: usize) -> NeighborDirection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `float_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:257:4 [INFO] [stdout] | [INFO] [stdout] 257 | fn float_to_id(value: f64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `id_to_float` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:266:4 [INFO] [stdout] | [INFO] [stdout] 266 | fn id_to_float(value: usize) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transfer_mode_to_id` is never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:275:4 [INFO] [stdout] | [INFO] [stdout] 275 | fn transfer_mode_to_id(mode: &TransferMode) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/arithmetic.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Arithmetic { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 9 | /// Always has the value 0.0 [INFO] [stdout] 10 | Zero, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | /// Always has the value 1.0 [INFO] [stdout] 12 | One, [INFO] [stdout] | ^^^ [INFO] [stdout] 13 | /// Always a constant value [INFO] [stdout] 14 | Constant(f64), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 15 | /// Doubles the value [INFO] [stdout] 16 | Double(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | /// Halfs the value [INFO] [stdout] 18 | Half(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | /// Increments the value by 1 [INFO] [stdout] 20 | Increment(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 21 | /// Decrements the value by 1 [INFO] [stdout] 22 | Decrement(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 23 | /// Adds to values [INFO] [stdout] 24 | Add(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 25 | /// Subtracts two values [INFO] [stdout] 26 | Sub(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | /// Multiplies two values [INFO] [stdout] 28 | Mul(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | /// Divides two values [INFO] [stdout] 30 | Div(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 31 | /// Applies modulus operator between two values [INFO] [stdout] 32 | Mod(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | /// Negates a value [INFO] [stdout] 34 | Neg(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | /// Finds the minimum of two values [INFO] [stdout] 36 | Min(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 37 | /// Finds the minimum of a value and zero [INFO] [stdout] 38 | MinZero(usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | /// Finds the minimum of a value and one [INFO] [stdout] 40 | MinOne(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 41 | /// Finds the maximum of two values [INFO] [stdout] 42 | Max(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 43 | /// Finds the maximum of a value and zero [INFO] [stdout] 44 | MaxZero(usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | /// Finds the maximum of a value and one [INFO] [stdout] 46 | MaxOne(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | /// Calculates the mean of two values [INFO] [stdout] 48 | Mean(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 49 | /// Gets the light value of this tile [INFO] [stdout] 50 | TileLight, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | /// Gets the gradient of the light in the specified direction [INFO] [stdout] 52 | TileLightGradient(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | /// Gets the transparency of this til [INFO] [stdout] 54 | TileTransparency, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 55 | /// Gets the gradient of the transparency in the specified direction [INFO] [stdout] 56 | TileTransparencyGradient(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 57 | /// A unique id for the type of the the the neighbor tile [INFO] [stdout] 58 | TilePlantType(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 59 | /// A unique id for the bridge in the direction [INFO] [stdout] 60 | BridgeType(NeighborDirection), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 61 | /// A unique id for the type of plant in this tile [INFO] [stdout] 62 | PlantType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 63 | /// Gets the age of the plant tile [INFO] [stdout] 64 | PlantAge, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | /// Gets the cumulative age of the plant [INFO] [stdout] 66 | PlantCumAge, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 67 | /// Gets the energy capacity of the plant tile [INFO] [stdout] 68 | PlantEnergyCapacity, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 69 | /// Gets the energy reserve of the plant tile [INFO] [stdout] 70 | PlantEnergyReserve, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | /// Gets the energy stored in the plant tile [INFO] [stdout] 72 | PlantEnergy, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 73 | /// Gets the change in energy of the plant tile since last simulation step [INFO] [stdout] 74 | PlantEnergyChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 75 | /// Gets the energy of the plant tile reserved for itself [INFO] [stdout] 76 | PlantEnergySelf, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | /// Gets the change in the self energy of the plant tile since last simulation step [INFO] [stdout] 78 | PlantEnergySelfChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | /// Gets the energy allocated for sharing with each neighbor ((energy - energy_self) / 6.0) [INFO] [stdout] 80 | PlantEnergyShare, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 81 | /// Gets the change in shared energy since the last simulation step [INFO] [stdout] 82 | PlantEnergyShareChange, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Arithmetic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/arithmetic.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 85 | impl Arithmetic { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 86 | /// The number of different arithmetic operators [INFO] [stdout] 87 | pub const COUNT: usize = 37; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_indices(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn from_id(id: usize, indices: (usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/logic.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Logic { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 8 | /// Always false [INFO] [stdout] 9 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | /// Always true [INFO] [stdout] 11 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | /// Applies and operator between two logic operations [INFO] [stdout] 13 | And(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | /// Applies or operator between two logic operators [INFO] [stdout] 15 | Or(usize, usize), [INFO] [stdout] | ^^ [INFO] [stdout] 16 | /// Applies xor operator between two logic operators [INFO] [stdout] 17 | Xor(usize, usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 18 | /// Applies not operator on a logic operator [INFO] [stdout] 19 | Not(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | /// Checks if two arithmetic operators are equal [INFO] [stdout] 21 | Equal(usize, usize), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 22 | /// Checks if two arithmetic operators are qual when rounded to integers [INFO] [stdout] 23 | EqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 24 | /// Checks if two arithmetic operators are not equal [INFO] [stdout] 25 | NotEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 26 | /// Checks if two arithmetic operators are not equal when rounded to integers [INFO] [stdout] 27 | NotEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 28 | /// Checks if one arithmetic operator is greater than another arithmetic operator [INFO] [stdout] 29 | Greater(usize, usize), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 30 | /// Checks if one arithmetic operator is greater than another arithmetic operator when rounded to integers [INFO] [stdout] 31 | GreaterRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 32 | /// Checks if one arithmetic operator is greater than or equal another arithmetic operator [INFO] [stdout] 33 | GreaterOrEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 34 | /// Checks if one arithmetic operator is greater than or equal another arithmetic operator when rounded to integers [INFO] [stdout] 35 | GreaterOrEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | /// Checks if one arithmetic operator is less than another arithmetic operator [INFO] [stdout] 37 | Less(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 38 | /// Checks if one arithmetic operator is less than another arithmetic operator when rounded to integers [INFO] [stdout] 39 | LessRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | /// Checks if one arithmetic operator is less than or equal another arithmetic operator [INFO] [stdout] 41 | LessOrEqual(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 42 | /// Checks if one arithmetic operator is less than or equal another arithmetic operator when rounded to integers [INFO] [stdout] 43 | LessOrEqualRound(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | /// Checks if a arithmetic operator is positive [INFO] [stdout] 45 | IsPositive(usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | /// Checks if a arithmetic operator is positive when rounded to an integer [INFO] [stdout] 47 | IsPositiveRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | /// Checks if a arithmetic operator is positive or zero [INFO] [stdout] 49 | IsNotNegative(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 50 | /// Checks if a arithmetic operator is positive or zero when rounded to an integer [INFO] [stdout] 51 | IsNotNegativeRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | /// Checks if a arithmetic operator is zero [INFO] [stdout] 53 | IsZero(usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 54 | /// Checks if a arithmetic operator is zero when rounded to an integer [INFO] [stdout] 55 | IsZeroRound(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 56 | /// Checks if a arithmetic operator is negative or zero [INFO] [stdout] 57 | IsNotPositive(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 58 | /// Checks if a arithmetic operator is negative or zero when rounded to an integer [INFO] [stdout] 59 | IsNotPositiveRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 60 | /// Checks if a arithmetic operator is negative [INFO] [stdout] 61 | IsNegative(usize), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 62 | /// Checks if a arithmetic operator is negative when rounded to an integer [INFO] [stdout] 63 | IsNegativeRound(usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 64 | /// True if the tile in the specified direction is available for spreading [INFO] [stdout] 65 | TileFree(NeighborDirection), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Logic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/logic.rs:70:15 [INFO] [stdout] | [INFO] [stdout] 68 | impl Logic { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 69 | /// The number of different logic operators [INFO] [stdout] 70 | pub const COUNT: usize = 29; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_indices(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn from_id(id: usize, indices: (usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/action.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Action { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 8 | /// Do nothing [INFO] [stdout] 9 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | /// If .0 is true then runs action .1 [INFO] [stdout] 11 | If(usize, usize), [INFO] [stdout] | ^^ [INFO] [stdout] 12 | /// If .0 is true then runs action .1 otherwise runs action .2 [INFO] [stdout] 13 | IfElse(usize, usize, usize), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | /// Runs action .0 and then action .1 [INFO] [stdout] 15 | Both(usize, usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | /// Kills the plant [INFO] [stdout] 17 | Kill, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | Spread(usize, usize, NeighborDirection), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | Grow, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/action.rs:28:15 [INFO] [stdout] | [INFO] [stdout] 26 | impl Action { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 27 | /// The number of different action operators [INFO] [stdout] 28 | pub const COUNT: usize = 7; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get_indices(&self) -> (usize, usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn from_id(id: usize, indices: (usize, usize, usize)) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Seed`, `SugarBulb`, `Log`, and `Leaf` are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bulk.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub enum SpreadBulkType { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 83 | /// Produces a new seed [INFO] [stdout] 84 | Seed, [INFO] [stdout] | ^^^^ [INFO] [stdout] 85 | /// Produces a new sugar bulb [INFO] [stdout] 86 | SugarBulb, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 87 | /// Produces a new log [INFO] [stdout] 88 | Log, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | Leaf(usize), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpreadBulkType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, `get_indices`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bulk.rs:96:15 [INFO] [stdout] | [INFO] [stdout] 94 | impl SpreadBulkType { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 95 | /// The number of different plant types [INFO] [stdout] 96 | pub const COUNT: usize = 4; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_indices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn from_id(id: usize, indices: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Log` and `Branch` are never constructed [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bridge.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub enum SpreadBridgeType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 54 | /// Produces a new log [INFO] [stdout] 55 | Log, [INFO] [stdout] | ^^^ [INFO] [stdout] 56 | /// Produces a new branch [INFO] [stdout] 57 | Branch, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpreadBridgeType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `COUNT`, `get_id`, and `from_id` are never used [INFO] [stdout] --> src/map/tile/simulation/plant/program/spread_bridge.rs:62:15 [INFO] [stdout] | [INFO] [stdout] 60 | impl SpreadBridgeType { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 61 | /// The number of different plant types [INFO] [stdout] 62 | pub const COUNT: usize = 2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_id(&self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn from_id(id: usize) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:258:21 [INFO] [stdout] | [INFO] [stdout] 258 | return unsafe { transmute(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 258 - return unsafe { transmute(value) }; [INFO] [stdout] 258 + return unsafe { f64::to_bits(value) as usize }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/map/tile/simulation/plant/program/mod.rs:267:21 [INFO] [stdout] | [INFO] [stdout] 267 | return unsafe { transmute(value) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 267 - return unsafe { transmute(value) }; [INFO] [stdout] 267 + return unsafe { f64::from_bits(value as _) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "1ee3691e3bb5c7cdec074e60b13501511ad4b6c215fe188e16921539c3cae277", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ee3691e3bb5c7cdec074e60b13501511ad4b6c215fe188e16921539c3cae277", kill_on_drop: false }` [INFO] [stdout] 1ee3691e3bb5c7cdec074e60b13501511ad4b6c215fe188e16921539c3cae277