[INFO] cloning repository https://github.com/joanix2/OSCARv2 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/joanix2/OSCARv2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoanix2%2FOSCARv2", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoanix2%2FOSCARv2'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8453a327857b2a67774565492599de9d97568f02 [INFO] testing joanix2/OSCARv2 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoanix2%2FOSCARv2" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/joanix2/OSCARv2 [INFO] finished tweaking git repo https://github.com/joanix2/OSCARv2 [INFO] tweaked toml for git repo https://github.com/joanix2/OSCARv2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/joanix2/OSCARv2 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/joanix2/OSCARv2 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasi v0.14.7+wasi-0.2.4 [INFO] [stderr] Downloaded raw-window-handle v0.4.3 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.54 [INFO] [stderr] Downloaded windows-targets v0.53.4 [INFO] [stderr] Downloaded version-compare v0.1.1 [INFO] [stderr] Downloaded cty v0.2.2 [INFO] [stderr] Downloaded serde_derive v1.0.227 [INFO] [stderr] Downloaded find-msvc-tools v0.1.2 [INFO] [stderr] Downloaded clap v4.5.48 [INFO] [stderr] Downloaded serde_core v1.0.227 [INFO] [stderr] Downloaded cc v1.2.38 [INFO] [stderr] Downloaded serde v1.0.227 [INFO] [stderr] Downloaded minifb v0.24.0 [INFO] [stderr] Downloaded clap_builder v4.5.48 [INFO] [stderr] Downloaded sdl2 v0.35.2 [INFO] [stderr] Downloaded libc v0.2.176 [INFO] [stderr] Downloaded windows-sys v0.61.1 [INFO] [stderr] Downloaded sdl2-sys v0.35.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4e360a488e9447236b5499fce2844835d28e3b50976a37a032a81b60d94a2160 [INFO] running `Command { std: "docker" "start" "-a" "4e360a488e9447236b5499fce2844835d28e3b50976a37a032a81b60d94a2160", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4e360a488e9447236b5499fce2844835d28e3b50976a37a032a81b60d94a2160", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e360a488e9447236b5499fce2844835d28e3b50976a37a032a81b60d94a2160", kill_on_drop: false }` [INFO] [stdout] 4e360a488e9447236b5499fce2844835d28e3b50976a37a032a81b60d94a2160 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3ca61646613108cdf5e44666c33b1979f9708a30428374a44fd7af8f26cf5c47 [INFO] running `Command { std: "docker" "start" "-a" "3ca61646613108cdf5e44666c33b1979f9708a30428374a44fd7af8f26cf5c47", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling libc v0.2.176 [INFO] [stderr] Compiling cfg-if v1.0.3 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling xml-rs v0.8.27 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.2 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling cc v1.2.38 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling anstream v0.6.20 [INFO] [stderr] Compiling cty v0.2.2 [INFO] [stderr] Compiling xcursor v0.3.10 [INFO] [stderr] Compiling raw-window-handle v0.4.3 [INFO] [stderr] Compiling dlib v0.5.2 [INFO] [stderr] Compiling clap_builder v4.5.48 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling minifb v0.24.0 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling nix v0.24.3 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling wayland-commons v0.29.5 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling clap_derive v4.5.47 [INFO] [stderr] Compiling wayland-cursor v0.29.5 [INFO] [stderr] Compiling clap v4.5.48 [INFO] [stderr] Compiling OSCARv2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: crate `OSCARv2` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `oscarv2` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `engine::Engine` [INFO] [stdout] --> src/engine/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use engine::Engine; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `color` is never read [INFO] [stdout] --> src/dsl/ast.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 5 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `init_value`, and `timestep` are never read [INFO] [stdout] --> src/dsl/ast.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VarDef { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 17 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | pub init_value: Value, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 19 | pub timestep: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VarDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/dsl/ast.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Int(i32), [INFO] [stdout] 24 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Str` is never constructed [INFO] [stdout] --> src/dsl/ast.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Value { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] 25 | Str(String), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `new_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct StatusRule { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 30 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 31 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | pub new_status: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `child_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct BirthRule { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 38 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 39 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 41 | pub child_status: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BirthRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `step` are never read [INFO] [stdout] --> src/dsl/ast.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct FieldDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 46 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 47 | pub step: i32, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field` and `sensitivity` are never read [INFO] [stdout] --> src/dsl/ast.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SensorField { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 52 | pub field: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | pub sensitivity: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorField` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `fields` are never read [INFO] [stdout] --> src/dsl/ast.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 58 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 59 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `name`, `color`, `births`, `fields`, and `sensors` are never read [INFO] [stdout] --> src/dsl/ast.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct Species { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 64 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 65 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 66 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub births: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 70 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 71 | pub sensors: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Species` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `species_pattern` and `positions` are never read [INFO] [stdout] --> src/dsl/ast.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct AgentDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 76 | pub species_pattern: String, // ex: "(void,tree,void,tree)" ou "rock" ou "fire" [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | pub positions: Vec, // ex: ["(0:64,0:64)", "(5,5)", "(60,60)", "(30,15)"] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AgentDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Mineral`, `Vegetal`, and `Animal` are never constructed [INFO] [stdout] --> src/model/agent.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum SpeciesKind { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 9 | Mineral, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | Vegetal, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | Animal, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/model/agent.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Agent { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 17 | pub id: AgentId, [INFO] [stdout] | ^^ [INFO] [stdout] 18 | pub pos: Position, [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | pub species: SpeciesKind, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub species_id: usize, // index dans la liste des espèces [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 21 | pub status: String, // nom du statut courant (ex: "alive", "dead") [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | pub color: u32, // couleur (ARGB ou RGB packed) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | pub vars: Vec, // variables numériques [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Agent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_var`, `set_var`, `inc_var`, and `kill` are never used [INFO] [stdout] --> src/model/agent.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Agent { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 28 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_var(&self, idx: usize) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_var(&mut self, idx: usize, val: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn inc_var(&mut self, idx: usize, delta: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `to_index`, and `neighbors8` are never used [INFO] [stdout] --> src/model/position.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Position { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 8 | #[inline] [INFO] [stdout] 9 | pub fn new(row: usize, col: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn to_index(&self, cols: usize) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn neighbors8(&self, rows: usize, cols: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `agent` and `trace` are never read [INFO] [stdout] --> src/model/world.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Cell { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 7 | pub agent: Option, // référence vers un agent (index dans Vec) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | pub trace: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cell` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `grid` is never read [INFO] [stdout] --> src/model/world.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub grid: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/model/world.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 26 | impl World { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn in_bounds(&self, pos: Position) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get(&self, pos: Position) -> Option<&Cell> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_mut(&mut self, pos: Position) -> Option<&mut Cell> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn set_agent(&mut self, pos: Position, agent_id: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill_agent(&mut self, agent_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set_trace(&mut self, pos: Position) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn spawn_agent( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn is_position_free(&self, pos: &Position) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn move_agent(&mut self, agent_id: usize, new_pos: Position) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorldBuilder` is never constructed [INFO] [stdout] --> src/model/builder.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct WorldBuilder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpeciesInfo` is never constructed [INFO] [stdout] --> src/model/builder.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SpeciesInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/builder.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl WorldBuilder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 26 | /// Crée un nouveau WorldBuilder à partir de la configuration AST [INFO] [stdout] 27 | pub fn from_config(config: &ConfigAst) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn add_agent(&mut self, species_name: &str, pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn add_agents_pattern(&mut self, species_name: &str, pattern: &str, bounds: (usize, usize, usize, usize)) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn place_agents(&mut self, config: &ConfigAst) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn parse_and_place_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn parse_single_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn parse_range_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn parse_range_part(&self, range_str: &str) -> Result<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn should_place_at_position(&self, species_pattern: &str, _pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | fn resolve_species_from_pattern(&self, species_pattern: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 230 | pub fn build(self) -> (World, Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_color` is never used [INFO] [stdout] --> src/model/builder.rs:236:4 [INFO] [stdout] | [INFO] [stdout] 236 | fn parse_color(color_str: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `color`, `num_vars`, `status_rules`, `birth_rules`, and `sensors` are never read [INFO] [stdout] --> src/engine/engine.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SpeciesDef { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | pub color: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub num_vars: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 13 | pub status_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | pub birth_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 15 | pub field_defs: Vec, // définitions des champs [INFO] [stdout] 16 | pub sensors: Vec, // capteurs liés aux agents de cette espèce [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `species_defs` is never read [INFO] [stdout] --> src/engine/engine.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Engine { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 21 | pub world: World, [INFO] [stdout] 22 | pub species_defs: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `step` is never read [INFO] [stdout] --> src/engine/field.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct FieldDef { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] 7 | pub step: i32, // DistanceStepValue [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `def`, `rows`, and `cols` are never read [INFO] [stdout] --> src/engine/field.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Field { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 13 | pub def: FieldDef, [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | pub values: Vec, // taille = rows * cols [INFO] [stdout] 15 | pub rows: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | pub cols: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Field` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `idx`, `add_source`, and `get` are never used [INFO] [stdout] --> src/engine/field.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl Field { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn add_source(&mut self, pos: Position, var_value: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get(&self, pos: Position) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_status_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn apply_status_rules(agent: &mut Agent, rules: &[StatusRule], _world: &World) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_birth_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn apply_birth_rules(parent: &Agent, rules: &[BirthRule], world: &mut World) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `target_var`, and `terms` are never read [INFO] [stdout] --> src/engine/sensor.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | pub target_var: usize, // index de la variable à mettre à jour [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub terms: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_name` and `weight` are never read [INFO] [stdout] --> src/engine/sensor.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct SensorTerm { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 13 | pub field_name: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 14 | pub weight: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorTerm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate` is never used [INFO] [stdout] --> src/engine/sensor.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl SensorDef { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn evaluate( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `argb_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn argb_to_rgb(argb: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn hex_to_rgb(hex: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `named_color_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn named_color_to_rgb(name: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WHITE` is never used [INFO] [stdout] --> src/utils/color.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const WHITE: u32 = 0xFFFFFF; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLACK` is never used [INFO] [stdout] --> src/utils/color.rs:52:11 [INFO] [stdout] | [INFO] [stdout] 52 | pub const BLACK: u32 = 0x000000; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RED` is never used [INFO] [stdout] --> src/utils/color.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | pub const RED: u32 = 0xFF0000; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GREEN` is never used [INFO] [stdout] --> src/utils/color.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | pub const GREEN: u32 = 0x00FF00; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLUE` is never used [INFO] [stdout] --> src/utils/color.rs:55:11 [INFO] [stdout] | [INFO] [stdout] 55 | pub const BLUE: u32 = 0x0000FF; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `YELLOW` is never used [INFO] [stdout] --> src/utils/color.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | pub const YELLOW: u32 = 0xFFFF00; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CYAN` is never used [INFO] [stdout] --> src/utils/color.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | pub const CYAN: u32 = 0x00FFFF; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGENTA` is never used [INFO] [stdout] --> src/utils/color.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub const MAGENTA: u32 = 0xFF00FF; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | pub const GRAY: u32 = 0x808080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LIGHT_GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const LIGHT_GRAY: u32 = 0xC0C0C0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARK_GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const DARK_GRAY: u32 = 0x404040; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ORANGE` is never used [INFO] [stdout] --> src/utils/color.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const ORANGE: u32 = 0xFFA500; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PINK` is never used [INFO] [stdout] --> src/utils/color.rs:63:11 [INFO] [stdout] | [INFO] [stdout] 63 | pub const PINK: u32 = 0xFFC0CB; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PURPLE` is never used [INFO] [stdout] --> src/utils/color.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | pub const PURPLE: u32 = 0x800080; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROWN` is never used [INFO] [stdout] --> src/utils/color.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | pub const BROWN: u32 = 0x8B4513; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LIME` is never used [INFO] [stdout] --> src/utils/color.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | pub const LIME: u32 = 0x00FF00; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAVY` is never used [INFO] [stdout] --> src/utils/color.rs:67:11 [INFO] [stdout] | [INFO] [stdout] 67 | pub const NAVY: u32 = 0x000080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OLIVE` is never used [INFO] [stdout] --> src/utils/color.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | pub const OLIVE: u32 = 0x808000; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEAL` is never used [INFO] [stdout] --> src/utils/color.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const TEAL: u32 = 0x008080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SILVER` is never used [INFO] [stdout] --> src/utils/color.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const SILVER: u32 = 0xC0C0C0; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAROON` is never used [INFO] [stdout] --> src/utils/color.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const MAROON: u32 = 0x800000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TRACE_COLOR` is never used [INFO] [stdout] --> src/utils/color.rs:74:11 [INFO] [stdout] | [INFO] [stdout] 74 | pub const TRACE_COLOR: u32 = RED; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blend_colors` is never used [INFO] [stdout] --> src/utils/color.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn blend_colors(color1: u32, color2: u32, ratio: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `darken_color` is never used [INFO] [stdout] --> src/utils/color.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn darken_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lighten_color` is never used [INFO] [stdout] --> src/utils/color.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn lighten_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `random_color` is never used [INFO] [stdout] --> src/utils/color.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn random_color() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rgb_to_hsv` is never used [INFO] [stdout] --> src/utils/color.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn rgb_to_hsv(rgb: u32) -> (f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hsv_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_harmony_palette` is never used [INFO] [stdout] --> src/utils/color.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn generate_harmony_palette(base_color: u32, count: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogLevel` is never used [INFO] [stdout] --> src/utils/log.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LogLevel { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `emoji` and `color_code` are never used [INFO] [stdout] --> src/utils/log.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl LogLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 34 | /// Retourne le symbole emoji associé au niveau [INFO] [stdout] 35 | pub fn emoji(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn color_code(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Logger` is never constructed [INFO] [stdout] --> src/utils/log.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Logger { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/utils/log.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Logger { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 75 | /// Crée un nouveau logger avec configuration par défaut [INFO] [stdout] 76 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_level(mut self, level: LogLevel) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn with_colors(mut self, colors: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn with_emojis(mut self, emojis: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn with_timestamp(mut self, timestamp: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn log(&self, level: LogLevel, message: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn format_message(&self, level: LogLevel, message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_LOGGER` is never used [INFO] [stdout] --> src/utils/log.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | static mut GLOBAL_LOGGER: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger` is never used [INFO] [stdout] --> src/utils/log.rs:151:8 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn init_logger(logger: Logger) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_logger` is never used [INFO] [stdout] --> src/utils/log.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn get_logger() -> &'static Logger { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `debug` is never used [INFO] [stdout] --> src/utils/log.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn debug(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/utils/log.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn info(message: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `warning` is never used [INFO] [stdout] --> src/utils/log.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn warning(message: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/utils/log.rs:177:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn error(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/utils/log.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn start(world_size: (usize, usize), agent_count: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stats` is never used [INFO] [stdout] --> src/utils/log.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn stats(tick: u64, agents_alive: usize, fps: f32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end` is never used [INFO] [stdout] --> src/utils/log.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn end(total_ticks: u64, final_agent_count: usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_error` is never used [INFO] [stdout] --> src/utils/log.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn parse_error(file: &str, err_msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_state_change` is never used [INFO] [stdout] --> src/utils/log.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn agent_state_change(agent_id: usize, old_state: &str, new_state: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_interaction` is never used [INFO] [stdout] --> src/utils/log.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn agent_interaction(agent1: usize, agent2: usize, interaction_type: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `time_function` is never used [INFO] [stdout] --> src/utils/log.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn time_function(name: &str, func: F) -> R [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `memory_usage` is never used [INFO] [stdout] --> src/utils/log.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn memory_usage(description: &str, bytes: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.14s [INFO] running `Command { std: "docker" "inspect" "3ca61646613108cdf5e44666c33b1979f9708a30428374a44fd7af8f26cf5c47", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ca61646613108cdf5e44666c33b1979f9708a30428374a44fd7af8f26cf5c47", kill_on_drop: false }` [INFO] [stdout] 3ca61646613108cdf5e44666c33b1979f9708a30428374a44fd7af8f26cf5c47 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c3535c91d9827ea5984c81f3d0bae3621820b4554c23302349e4f29a4316a620 [INFO] running `Command { std: "docker" "start" "-a" "c3535c91d9827ea5984c81f3d0bae3621820b4554c23302349e4f29a4316a620", kill_on_drop: false }` [INFO] [stdout] warning: crate `OSCARv2` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `oscarv2` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling OSCARv2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `engine::Engine` [INFO] [stdout] --> src/engine/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use engine::Engine; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `color` is never read [INFO] [stdout] --> src/dsl/ast.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 5 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `init_value`, and `timestep` are never read [INFO] [stdout] --> src/dsl/ast.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VarDef { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 17 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | pub init_value: Value, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 19 | pub timestep: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VarDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/dsl/ast.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Int(i32), [INFO] [stdout] 24 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Str` is never constructed [INFO] [stdout] --> src/dsl/ast.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Value { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] 25 | Str(String), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `new_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct StatusRule { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 30 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 31 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | pub new_status: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `child_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct BirthRule { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 38 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 39 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 41 | pub child_status: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BirthRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `step` are never read [INFO] [stdout] --> src/dsl/ast.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct FieldDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 46 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 47 | pub step: i32, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field` and `sensitivity` are never read [INFO] [stdout] --> src/dsl/ast.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SensorField { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 52 | pub field: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | pub sensitivity: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorField` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `fields` are never read [INFO] [stdout] --> src/dsl/ast.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 58 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 59 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `name`, `color`, `births`, `fields`, and `sensors` are never read [INFO] [stdout] --> src/dsl/ast.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct Species { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 64 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 65 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 66 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub births: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 70 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 71 | pub sensors: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Species` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `species_pattern` and `positions` are never read [INFO] [stdout] --> src/dsl/ast.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct AgentDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 76 | pub species_pattern: String, // ex: "(void,tree,void,tree)" ou "rock" ou "fire" [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | pub positions: Vec, // ex: ["(0:64,0:64)", "(5,5)", "(60,60)", "(30,15)"] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AgentDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Mineral`, `Vegetal`, and `Animal` are never constructed [INFO] [stdout] --> src/model/agent.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum SpeciesKind { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 9 | Mineral, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | Vegetal, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | Animal, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/model/agent.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Agent { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 17 | pub id: AgentId, [INFO] [stdout] | ^^ [INFO] [stdout] 18 | pub pos: Position, [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | pub species: SpeciesKind, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub species_id: usize, // index dans la liste des espèces [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 21 | pub status: String, // nom du statut courant (ex: "alive", "dead") [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | pub color: u32, // couleur (ARGB ou RGB packed) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | pub vars: Vec, // variables numériques [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Agent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_var`, `set_var`, `inc_var`, and `kill` are never used [INFO] [stdout] --> src/model/agent.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Agent { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 28 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_var(&self, idx: usize) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_var(&mut self, idx: usize, val: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn inc_var(&mut self, idx: usize, delta: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `to_index`, and `neighbors8` are never used [INFO] [stdout] --> src/model/position.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Position { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 8 | #[inline] [INFO] [stdout] 9 | pub fn new(row: usize, col: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn to_index(&self, cols: usize) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn neighbors8(&self, rows: usize, cols: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `agent` and `trace` are never read [INFO] [stdout] --> src/model/world.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Cell { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 7 | pub agent: Option, // référence vers un agent (index dans Vec) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | pub trace: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cell` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `grid` is never read [INFO] [stdout] --> src/model/world.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub grid: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/model/world.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 26 | impl World { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn in_bounds(&self, pos: Position) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get(&self, pos: Position) -> Option<&Cell> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_mut(&mut self, pos: Position) -> Option<&mut Cell> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn set_agent(&mut self, pos: Position, agent_id: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill_agent(&mut self, agent_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set_trace(&mut self, pos: Position) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn spawn_agent( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn is_position_free(&self, pos: &Position) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn move_agent(&mut self, agent_id: usize, new_pos: Position) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorldBuilder` is never constructed [INFO] [stdout] --> src/model/builder.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct WorldBuilder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpeciesInfo` is never constructed [INFO] [stdout] --> src/model/builder.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SpeciesInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/builder.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl WorldBuilder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 26 | /// Crée un nouveau WorldBuilder à partir de la configuration AST [INFO] [stdout] 27 | pub fn from_config(config: &ConfigAst) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn add_agent(&mut self, species_name: &str, pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn add_agents_pattern(&mut self, species_name: &str, pattern: &str, bounds: (usize, usize, usize, usize)) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn place_agents(&mut self, config: &ConfigAst) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn parse_and_place_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn parse_single_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn parse_range_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn parse_range_part(&self, range_str: &str) -> Result<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn should_place_at_position(&self, species_pattern: &str, _pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | fn resolve_species_from_pattern(&self, species_pattern: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 230 | pub fn build(self) -> (World, Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_color` is never used [INFO] [stdout] --> src/model/builder.rs:236:4 [INFO] [stdout] | [INFO] [stdout] 236 | fn parse_color(color_str: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `color`, `num_vars`, `status_rules`, `birth_rules`, and `sensors` are never read [INFO] [stdout] --> src/engine/engine.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SpeciesDef { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | pub color: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub num_vars: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 13 | pub status_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | pub birth_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 15 | pub field_defs: Vec, // définitions des champs [INFO] [stdout] 16 | pub sensors: Vec, // capteurs liés aux agents de cette espèce [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `species_defs` is never read [INFO] [stdout] --> src/engine/engine.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Engine { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 21 | pub world: World, [INFO] [stdout] 22 | pub species_defs: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `step` is never read [INFO] [stdout] --> src/engine/field.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct FieldDef { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] 7 | pub step: i32, // DistanceStepValue [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `def`, `rows`, and `cols` are never read [INFO] [stdout] --> src/engine/field.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Field { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 13 | pub def: FieldDef, [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | pub values: Vec, // taille = rows * cols [INFO] [stdout] 15 | pub rows: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | pub cols: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Field` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `idx`, `add_source`, and `get` are never used [INFO] [stdout] --> src/engine/field.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl Field { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn add_source(&mut self, pos: Position, var_value: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get(&self, pos: Position) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_status_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn apply_status_rules(agent: &mut Agent, rules: &[StatusRule], _world: &World) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_birth_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn apply_birth_rules(parent: &Agent, rules: &[BirthRule], world: &mut World) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `target_var`, and `terms` are never read [INFO] [stdout] --> src/engine/sensor.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | pub target_var: usize, // index de la variable à mettre à jour [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub terms: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_name` and `weight` are never read [INFO] [stdout] --> src/engine/sensor.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct SensorTerm { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 13 | pub field_name: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 14 | pub weight: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorTerm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate` is never used [INFO] [stdout] --> src/engine/sensor.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl SensorDef { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn evaluate( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `argb_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn argb_to_rgb(argb: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn hex_to_rgb(hex: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `named_color_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn named_color_to_rgb(name: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WHITE` is never used [INFO] [stdout] --> src/utils/color.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const WHITE: u32 = 0xFFFFFF; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLACK` is never used [INFO] [stdout] --> src/utils/color.rs:52:11 [INFO] [stdout] | [INFO] [stdout] 52 | pub const BLACK: u32 = 0x000000; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RED` is never used [INFO] [stdout] --> src/utils/color.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | pub const RED: u32 = 0xFF0000; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GREEN` is never used [INFO] [stdout] --> src/utils/color.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | pub const GREEN: u32 = 0x00FF00; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLUE` is never used [INFO] [stdout] --> src/utils/color.rs:55:11 [INFO] [stdout] | [INFO] [stdout] 55 | pub const BLUE: u32 = 0x0000FF; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `YELLOW` is never used [INFO] [stdout] --> src/utils/color.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | pub const YELLOW: u32 = 0xFFFF00; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CYAN` is never used [INFO] [stdout] --> src/utils/color.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | pub const CYAN: u32 = 0x00FFFF; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGENTA` is never used [INFO] [stdout] --> src/utils/color.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub const MAGENTA: u32 = 0xFF00FF; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | pub const GRAY: u32 = 0x808080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LIGHT_GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const LIGHT_GRAY: u32 = 0xC0C0C0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARK_GRAY` is never used [INFO] [stdout] --> src/utils/color.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const DARK_GRAY: u32 = 0x404040; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ORANGE` is never used [INFO] [stdout] --> src/utils/color.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const ORANGE: u32 = 0xFFA500; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PINK` is never used [INFO] [stdout] --> src/utils/color.rs:63:11 [INFO] [stdout] | [INFO] [stdout] 63 | pub const PINK: u32 = 0xFFC0CB; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PURPLE` is never used [INFO] [stdout] --> src/utils/color.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | pub const PURPLE: u32 = 0x800080; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROWN` is never used [INFO] [stdout] --> src/utils/color.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | pub const BROWN: u32 = 0x8B4513; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LIME` is never used [INFO] [stdout] --> src/utils/color.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | pub const LIME: u32 = 0x00FF00; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAVY` is never used [INFO] [stdout] --> src/utils/color.rs:67:11 [INFO] [stdout] | [INFO] [stdout] 67 | pub const NAVY: u32 = 0x000080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OLIVE` is never used [INFO] [stdout] --> src/utils/color.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | pub const OLIVE: u32 = 0x808000; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEAL` is never used [INFO] [stdout] --> src/utils/color.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const TEAL: u32 = 0x008080; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SILVER` is never used [INFO] [stdout] --> src/utils/color.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const SILVER: u32 = 0xC0C0C0; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAROON` is never used [INFO] [stdout] --> src/utils/color.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const MAROON: u32 = 0x800000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TRACE_COLOR` is never used [INFO] [stdout] --> src/utils/color.rs:74:11 [INFO] [stdout] | [INFO] [stdout] 74 | pub const TRACE_COLOR: u32 = RED; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blend_colors` is never used [INFO] [stdout] --> src/utils/color.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn blend_colors(color1: u32, color2: u32, ratio: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `darken_color` is never used [INFO] [stdout] --> src/utils/color.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn darken_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lighten_color` is never used [INFO] [stdout] --> src/utils/color.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn lighten_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `random_color` is never used [INFO] [stdout] --> src/utils/color.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn random_color() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rgb_to_hsv` is never used [INFO] [stdout] --> src/utils/color.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn rgb_to_hsv(rgb: u32) -> (f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hsv_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_harmony_palette` is never used [INFO] [stdout] --> src/utils/color.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn generate_harmony_palette(base_color: u32, count: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogLevel` is never used [INFO] [stdout] --> src/utils/log.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LogLevel { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `emoji` and `color_code` are never used [INFO] [stdout] --> src/utils/log.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl LogLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 34 | /// Retourne le symbole emoji associé au niveau [INFO] [stdout] 35 | pub fn emoji(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn color_code(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Logger` is never constructed [INFO] [stdout] --> src/utils/log.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Logger { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/utils/log.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Logger { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 75 | /// Crée un nouveau logger avec configuration par défaut [INFO] [stdout] 76 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_level(mut self, level: LogLevel) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn with_colors(mut self, colors: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn with_emojis(mut self, emojis: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn with_timestamp(mut self, timestamp: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn log(&self, level: LogLevel, message: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn format_message(&self, level: LogLevel, message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_LOGGER` is never used [INFO] [stdout] --> src/utils/log.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | static mut GLOBAL_LOGGER: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger` is never used [INFO] [stdout] --> src/utils/log.rs:151:8 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn init_logger(logger: Logger) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_logger` is never used [INFO] [stdout] --> src/utils/log.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn get_logger() -> &'static Logger { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `debug` is never used [INFO] [stdout] --> src/utils/log.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn debug(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/utils/log.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn info(message: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `warning` is never used [INFO] [stdout] --> src/utils/log.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn warning(message: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/utils/log.rs:177:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn error(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/utils/log.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn start(world_size: (usize, usize), agent_count: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stats` is never used [INFO] [stdout] --> src/utils/log.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn stats(tick: u64, agents_alive: usize, fps: f32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end` is never used [INFO] [stdout] --> src/utils/log.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn end(total_ticks: u64, final_agent_count: usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_error` is never used [INFO] [stdout] --> src/utils/log.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn parse_error(file: &str, err_msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_state_change` is never used [INFO] [stdout] --> src/utils/log.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn agent_state_change(agent_id: usize, old_state: &str, new_state: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_interaction` is never used [INFO] [stdout] --> src/utils/log.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn agent_interaction(agent1: usize, agent2: usize, interaction_type: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `time_function` is never used [INFO] [stdout] --> src/utils/log.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn time_function(name: &str, func: F) -> R [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `memory_usage` is never used [INFO] [stdout] --> src/utils/log.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn memory_usage(description: &str, bytes: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Token` [INFO] [stdout] --> tests/tokenizer_test.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | use OSCARv2::dsl::token::{Token, TokenKind}; [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: `anyhow::Result` [INFO] [stdout] --> tests/error_handling_tests.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::Result; [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: `engine::Engine` [INFO] [stdout] --> src/engine/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use engine::Engine; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `color` is never read [INFO] [stdout] --> src/dsl/ast.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 5 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `init_value`, and `timestep` are never read [INFO] [stdout] --> src/dsl/ast.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VarDef { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 17 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | pub init_value: Value, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 19 | pub timestep: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VarDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/dsl/ast.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Int(i32), [INFO] [stdout] 24 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Str` is never constructed [INFO] [stdout] --> src/dsl/ast.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Value { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] 24 | Int(i32), [INFO] [stdout] 25 | Str(String), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `new_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct StatusRule { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 30 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 31 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | pub new_status: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable`, `less_than`, `threshold`, and `child_status` are never read [INFO] [stdout] --> src/dsl/ast.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct BirthRule { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 38 | pub variable: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 39 | pub less_than: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 40 | pub threshold: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 41 | pub child_status: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BirthRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `step` are never read [INFO] [stdout] --> src/dsl/ast.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct FieldDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 46 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 47 | pub step: i32, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field` and `sensitivity` are never read [INFO] [stdout] --> src/dsl/ast.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SensorField { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 52 | pub field: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | pub sensitivity: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorField` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `fields` are never read [INFO] [stdout] --> src/dsl/ast.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 58 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 59 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `name`, `color`, `births`, `fields`, and `sensors` are never read [INFO] [stdout] --> src/dsl/ast.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct Species { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 64 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 65 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 66 | pub color: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub births: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 70 | pub fields: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 71 | pub sensors: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Species` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `species_pattern` and `positions` are never read [INFO] [stdout] --> src/dsl/ast.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct AgentDef { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 76 | pub species_pattern: String, // ex: "(void,tree,void,tree)" ou "rock" ou "fire" [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | pub positions: Vec, // ex: ["(0:64,0:64)", "(5,5)", "(60,60)", "(30,15)"] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AgentDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Mineral`, `Vegetal`, and `Animal` are never constructed [INFO] [stdout] --> src/model/agent.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum SpeciesKind { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 9 | Mineral, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | Vegetal, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | Animal, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/model/agent.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Agent { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 17 | pub id: AgentId, [INFO] [stdout] | ^^ [INFO] [stdout] 18 | pub pos: Position, [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | pub species: SpeciesKind, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub species_id: usize, // index dans la liste des espèces [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 21 | pub status: String, // nom du statut courant (ex: "alive", "dead") [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | pub color: u32, // couleur (ARGB ou RGB packed) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | pub vars: Vec, // variables numériques [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Agent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_var`, `set_var`, `inc_var`, and `kill` are never used [INFO] [stdout] --> src/model/agent.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Agent { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 28 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_var(&self, idx: usize) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_var(&mut self, idx: usize, val: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn inc_var(&mut self, idx: usize, delta: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `to_index`, and `neighbors8` are never used [INFO] [stdout] --> src/model/position.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Position { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 8 | #[inline] [INFO] [stdout] 9 | pub fn new(row: usize, col: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn to_index(&self, cols: usize) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn neighbors8(&self, rows: usize, cols: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `agent` and `trace` are never read [INFO] [stdout] --> src/model/world.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Cell { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 7 | pub agent: Option, // référence vers un agent (index dans Vec) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | pub trace: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cell` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `grid` is never read [INFO] [stdout] --> src/model/world.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub grid: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/model/world.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 26 | impl World { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn in_bounds(&self, pos: Position) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get(&self, pos: Position) -> Option<&Cell> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_mut(&mut self, pos: Position) -> Option<&mut Cell> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn set_agent(&mut self, pos: Position, agent_id: Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn kill_agent(&mut self, agent_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set_trace(&mut self, pos: Position) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn spawn_agent( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn is_position_free(&self, pos: &Position) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn move_agent(&mut self, agent_id: usize, new_pos: Position) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorldBuilder` is never constructed [INFO] [stdout] --> src/model/builder.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct WorldBuilder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpeciesInfo` is never constructed [INFO] [stdout] --> src/model/builder.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SpeciesInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/builder.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl WorldBuilder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 26 | /// Crée un nouveau WorldBuilder à partir de la configuration AST [INFO] [stdout] 27 | pub fn from_config(config: &ConfigAst) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn add_agent(&mut self, species_name: &str, pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn add_agents_pattern(&mut self, species_name: &str, pattern: &str, bounds: (usize, usize, usize, usize)) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn place_agents(&mut self, config: &ConfigAst) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn parse_and_place_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn parse_single_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn parse_range_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn parse_range_part(&self, range_str: &str) -> Result<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn should_place_at_position(&self, species_pattern: &str, _pos: Position) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | fn resolve_species_from_pattern(&self, species_pattern: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 230 | pub fn build(self) -> (World, Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind`, `color`, `num_vars`, `status_rules`, `birth_rules`, and `sensors` are never read [INFO] [stdout] --> src/engine/engine.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SpeciesDef { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | pub kind: SpeciesKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | pub color: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub num_vars: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 13 | pub status_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | pub birth_rules: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 15 | pub field_defs: Vec, // définitions des champs [INFO] [stdout] 16 | pub sensors: Vec, // capteurs liés aux agents de cette espèce [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpeciesDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `species_defs` is never read [INFO] [stdout] --> src/engine/engine.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Engine { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 21 | pub world: World, [INFO] [stdout] 22 | pub species_defs: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `step` is never read [INFO] [stdout] --> src/engine/field.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct FieldDef { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] 7 | pub step: i32, // DistanceStepValue [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `def`, `rows`, and `cols` are never read [INFO] [stdout] --> src/engine/field.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Field { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 13 | pub def: FieldDef, [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | pub values: Vec, // taille = rows * cols [INFO] [stdout] 15 | pub rows: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | pub cols: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Field` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `idx`, `add_source`, and `get` are never used [INFO] [stdout] --> src/engine/field.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 19 | impl Field { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | fn idx(&self, pos: Position) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn add_source(&mut self, pos: Position, var_value: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get(&self, pos: Position) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_status_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn apply_status_rules(agent: &mut Agent, rules: &[StatusRule], _world: &World) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_birth_rules` is never used [INFO] [stdout] --> src/engine/rules.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn apply_birth_rules(parent: &Agent, rules: &[BirthRule], world: &mut World) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `target_var`, and `terms` are never read [INFO] [stdout] --> src/engine/sensor.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct SensorDef { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 6 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | pub target_var: usize, // index de la variable à mettre à jour [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub terms: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_name` and `weight` are never read [INFO] [stdout] --> src/engine/sensor.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct SensorTerm { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 13 | pub field_name: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 14 | pub weight: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensorTerm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate` is never used [INFO] [stdout] --> src/engine/sensor.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl SensorDef { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn evaluate( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TRACE_COLOR` is never used [INFO] [stdout] --> src/utils/color.rs:74:11 [INFO] [stdout] | [INFO] [stdout] 74 | pub const TRACE_COLOR: u32 = RED; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `darken_color` is never used [INFO] [stdout] --> src/utils/color.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn darken_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lighten_color` is never used [INFO] [stdout] --> src/utils/color.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn lighten_color(color: u32, factor: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `random_color` is never used [INFO] [stdout] --> src/utils/color.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn random_color() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rgb_to_hsv` is never used [INFO] [stdout] --> src/utils/color.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn rgb_to_hsv(rgb: u32) -> (f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hsv_to_rgb` is never used [INFO] [stdout] --> src/utils/color.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_harmony_palette` is never used [INFO] [stdout] --> src/utils/color.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn generate_harmony_palette(base_color: u32, count: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_LOGGER` is never used [INFO] [stdout] --> src/utils/log.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | static mut GLOBAL_LOGGER: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger` is never used [INFO] [stdout] --> src/utils/log.rs:151:8 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn init_logger(logger: Logger) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_logger` is never used [INFO] [stdout] --> src/utils/log.rs:158:4 [INFO] [stdout] | [INFO] [stdout] 158 | fn get_logger() -> &'static Logger { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `debug` is never used [INFO] [stdout] --> src/utils/log.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn debug(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/utils/log.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn info(message: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `warning` is never used [INFO] [stdout] --> src/utils/log.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn warning(message: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/utils/log.rs:177:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn error(message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/utils/log.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn start(world_size: (usize, usize), agent_count: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stats` is never used [INFO] [stdout] --> src/utils/log.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn stats(tick: u64, agents_alive: usize, fps: f32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end` is never used [INFO] [stdout] --> src/utils/log.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn end(total_ticks: u64, final_agent_count: usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_error` is never used [INFO] [stdout] --> src/utils/log.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn parse_error(file: &str, err_msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_state_change` is never used [INFO] [stdout] --> src/utils/log.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn agent_state_change(agent_id: usize, old_state: &str, new_state: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `agent_interaction` is never used [INFO] [stdout] --> src/utils/log.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn agent_interaction(agent1: usize, agent2: usize, interaction_type: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `time_function` is never used [INFO] [stdout] --> src/utils/log.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn time_function(name: &str, func: F) -> R [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `memory_usage` is never used [INFO] [stdout] --> src/utils/log.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn memory_usage(description: &str, bytes: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/utils/log.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.93s [INFO] running `Command { std: "docker" "inspect" "c3535c91d9827ea5984c81f3d0bae3621820b4554c23302349e4f29a4316a620", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c3535c91d9827ea5984c81f3d0bae3621820b4554c23302349e4f29a4316a620", kill_on_drop: false }` [INFO] [stdout] c3535c91d9827ea5984c81f3d0bae3621820b4554c23302349e4f29a4316a620 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 95fc8fb0f18bec886ba202741d62dd6738c0e7c71a0eebaac489bd3da8938ce8 [INFO] running `Command { std: "docker" "start" "-a" "95fc8fb0f18bec886ba202741d62dd6738c0e7c71a0eebaac489bd3da8938ce8", kill_on_drop: false }` [INFO] [stderr] warning: crate `OSCARv2` should have a snake case name [INFO] [stderr] | [INFO] [stderr] = help: convert the identifier to snake case: `oscarv2` [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/utils/log.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | GLOBAL_LOGGER.get_or_insert_with(Logger::default) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `OSCARv2` (lib) generated 2 warnings [INFO] [stderr] warning: `OSCARv2` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: unused import: `engine::Engine` [INFO] [stderr] --> src/engine/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub use engine::Engine; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `color` is never read [INFO] [stderr] --> src/dsl/ast.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 2 | pub struct World { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] ... [INFO] [stderr] 5 | pub color: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `name`, `init_value`, and `timestep` are never read [INFO] [stderr] --> src/dsl/ast.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 16 | pub struct VarDef { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 17 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 18 | pub init_value: Value, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 19 | pub timestep: i32, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `VarDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/dsl/ast.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | Int(i32), [INFO] [stderr] | --- ^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 24 - Int(i32), [INFO] [stderr] 24 + Int(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant `Str` is never constructed [INFO] [stderr] --> src/dsl/ast.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub enum Value { [INFO] [stderr] | ----- variant in this enum [INFO] [stderr] 24 | Int(i32), [INFO] [stderr] 25 | Str(String), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `variable`, `less_than`, `threshold`, and `new_status` are never read [INFO] [stderr] --> src/dsl/ast.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 29 | pub struct StatusRule { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 30 | pub variable: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 31 | pub less_than: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 32 | pub threshold: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 33 | pub new_status: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `StatusRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `variable`, `less_than`, `threshold`, and `child_status` are never read [INFO] [stderr] --> src/dsl/ast.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 37 | pub struct BirthRule { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] 38 | pub variable: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 39 | pub less_than: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 40 | pub threshold: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 41 | pub child_status: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BirthRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `name` and `step` are never read [INFO] [stderr] --> src/dsl/ast.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 45 | pub struct FieldDef { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 46 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 47 | pub step: i32, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FieldDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `field` and `sensitivity` are never read [INFO] [stderr] --> src/dsl/ast.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 51 | pub struct SensorField { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] 52 | pub field: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 53 | pub sensitivity: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SensorField` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `name` and `fields` are never read [INFO] [stderr] --> src/dsl/ast.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 57 | pub struct SensorDef { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] 58 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 59 | pub fields: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SensorDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `kind`, `name`, `color`, `births`, `fields`, and `sensors` are never read [INFO] [stderr] --> src/dsl/ast.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 63 | pub struct Species { [INFO] [stderr] | ------- fields in this struct [INFO] [stderr] 64 | pub kind: SpeciesKind, [INFO] [stderr] | ^^^^ [INFO] [stderr] 65 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 66 | pub color: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub births: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 70 | pub fields: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 71 | pub sensors: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Species` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `species_pattern` and `positions` are never read [INFO] [stderr] --> src/dsl/ast.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 75 | pub struct AgentDef { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 76 | pub species_pattern: String, // ex: "(void,tree,void,tree)" ou "rock" ou "fire" [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 77 | pub positions: Vec, // ex: ["(0:64,0:64)", "(5,5)", "(60,60)", "(30,15)"] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AgentDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Mineral`, `Vegetal`, and `Animal` are never constructed [INFO] [stderr] --> src/model/agent.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub enum SpeciesKind { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] 9 | Mineral, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 10 | Vegetal, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 11 | Animal, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SpeciesKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/model/agent.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 16 | pub struct Agent { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] 17 | pub id: AgentId, [INFO] [stderr] | ^^ [INFO] [stderr] 18 | pub pos: Position, [INFO] [stderr] | ^^^ [INFO] [stderr] 19 | pub species: SpeciesKind, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 20 | pub species_id: usize, // index dans la liste des espèces [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 21 | pub status: String, // nom du statut courant (ex: "alive", "dead") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 22 | pub color: u32, // couleur (ARGB ou RGB packed) [INFO] [stderr] | ^^^^^ [INFO] [stderr] 23 | pub vars: Vec, // variables numériques [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Agent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `get_var`, `set_var`, `inc_var`, and `kill` are never used [INFO] [stderr] --> src/model/agent.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 27 | impl Agent { [INFO] [stderr] | ---------- associated items in this implementation [INFO] [stderr] 28 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | pub fn get_var(&self, idx: usize) -> i32 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | pub fn set_var(&mut self, idx: usize, val: i32) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 62 | pub fn inc_var(&mut self, idx: usize, delta: i32) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn kill(&mut self) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `to_index`, and `neighbors8` are never used [INFO] [stderr] --> src/model/position.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 7 | impl Position { [INFO] [stderr] | ------------- associated items in this implementation [INFO] [stderr] 8 | #[inline] [INFO] [stderr] 9 | pub fn new(row: usize, col: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 15 | pub fn to_index(&self, cols: usize) -> usize { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 20 | pub fn neighbors8(&self, rows: usize, cols: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `agent` and `trace` are never read [INFO] [stderr] --> src/model/world.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Cell { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 7 | pub agent: Option, // référence vers un agent (index dans Vec) [INFO] [stderr] | ^^^^^ [INFO] [stderr] 8 | pub trace: bool, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Cell` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `grid` is never read [INFO] [stderr] --> src/model/world.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct World { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] ... [INFO] [stderr] 22 | pub grid: Vec, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `World` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/model/world.rs:37:8 [INFO] [stderr] | [INFO] [stderr] 26 | impl World { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 37 | fn idx(&self, pos: Position) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 41 | pub fn in_bounds(&self, pos: Position) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn get(&self, pos: Position) -> Option<&Cell> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 53 | pub fn get_mut(&mut self, pos: Position) -> Option<&mut Cell> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 62 | pub fn set_agent(&mut self, pos: Position, agent_id: Option) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn kill_agent(&mut self, agent_id: usize) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 79 | pub fn set_trace(&mut self, pos: Position) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 86 | pub fn spawn_agent( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 103 | pub fn is_position_free(&self, pos: &Position) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 112 | pub fn move_agent(&mut self, agent_id: usize, new_pos: Position) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `WorldBuilder` is never constructed [INFO] [stderr] --> src/model/builder.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct WorldBuilder { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SpeciesInfo` is never constructed [INFO] [stderr] --> src/model/builder.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 18 | pub struct SpeciesInfo { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/model/builder.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 25 | impl WorldBuilder { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 26 | /// Crée un nouveau WorldBuilder à partir de la configuration AST [INFO] [stderr] 27 | pub fn from_config(config: &ConfigAst) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | pub fn add_agent(&mut self, species_name: &str, pos: Position) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn add_agents_pattern(&mut self, species_name: &str, pattern: &str, bounds: (usize, usize, usize, usize)) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | pub fn place_agents(&mut self, config: &ConfigAst) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 127 | fn parse_and_place_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 141 | fn parse_single_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 160 | fn parse_range_position(&mut self, species_pattern: &str, position_expr: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | fn parse_range_part(&self, range_str: &str) -> Result<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 201 | fn should_place_at_position(&self, species_pattern: &str, _pos: Position) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 213 | fn resolve_species_from_pattern(&self, species_pattern: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 230 | pub fn build(self) -> (World, Vec) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_color` is never used [INFO] [stderr] --> src/model/builder.rs:236:4 [INFO] [stderr] | [INFO] [stderr] 236 | fn parse_color(color_str: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `kind`, `color`, `num_vars`, `status_rules`, `birth_rules`, and `sensors` are never read [INFO] [stderr] --> src/engine/engine.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct SpeciesDef { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 10 | pub kind: SpeciesKind, [INFO] [stderr] | ^^^^ [INFO] [stderr] 11 | pub color: u32, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 12 | pub num_vars: usize, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 13 | pub status_rules: Vec, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 14 | pub birth_rules: Vec, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 15 | pub field_defs: Vec, // définitions des champs [INFO] [stderr] 16 | pub sensors: Vec, // capteurs liés aux agents de cette espèce [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SpeciesDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `species_defs` is never read [INFO] [stderr] --> src/engine/engine.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct Engine { [INFO] [stderr] | ------ field in this struct [INFO] [stderr] 21 | pub world: World, [INFO] [stderr] 22 | pub species_defs: Vec, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `step` is never read [INFO] [stderr] --> src/engine/field.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct FieldDef { [INFO] [stderr] | -------- field in this struct [INFO] [stderr] 6 | pub name: String, [INFO] [stderr] 7 | pub step: i32, // DistanceStepValue [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FieldDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `def`, `rows`, and `cols` are never read [INFO] [stderr] --> src/engine/field.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct Field { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] 13 | pub def: FieldDef, [INFO] [stderr] | ^^^ [INFO] [stderr] 14 | pub values: Vec, // taille = rows * cols [INFO] [stderr] 15 | pub rows: usize, [INFO] [stderr] | ^^^^ [INFO] [stderr] 16 | pub cols: usize, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Field` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `idx`, `add_source`, and `get` are never used [INFO] [stderr] --> src/engine/field.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 19 | impl Field { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 30 | fn idx(&self, pos: Position) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | pub fn add_source(&mut self, pos: Position, var_value: i32) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | pub fn get(&self, pos: Position) -> i32 { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `apply_status_rules` is never used [INFO] [stderr] --> src/engine/rules.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn apply_status_rules(agent: &mut Agent, rules: &[StatusRule], _world: &World) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `apply_birth_rules` is never used [INFO] [stderr] --> src/engine/rules.rs:41:8 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn apply_birth_rules(parent: &Agent, rules: &[BirthRule], world: &mut World) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name`, `target_var`, and `terms` are never read [INFO] [stderr] --> src/engine/sensor.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct SensorDef { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] 6 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 7 | pub target_var: usize, // index de la variable à mettre à jour [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 8 | pub terms: Vec, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SensorDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `field_name` and `weight` are never read [INFO] [stderr] --> src/engine/sensor.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct SensorTerm { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 13 | pub field_name: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 14 | pub weight: f32, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SensorTerm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `evaluate` is never used [INFO] [stderr] --> src/engine/sensor.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 17 | impl SensorDef { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn evaluate( [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `argb_to_rgb` is never used [INFO] [stderr] --> src/utils/color.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn argb_to_rgb(argb: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `hex_to_rgb` is never used [INFO] [stderr] --> src/utils/color.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn hex_to_rgb(hex: &str) -> u32 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `named_color_to_rgb` is never used [INFO] [stderr] --> src/utils/color.rs:23:8 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn named_color_to_rgb(name: &str) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `WHITE` is never used [INFO] [stderr] --> src/utils/color.rs:51:11 [INFO] [stderr] | [INFO] [stderr] 51 | pub const WHITE: u32 = 0xFFFFFF; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `BLACK` is never used [INFO] [stderr] --> src/utils/color.rs:52:11 [INFO] [stderr] | [INFO] [stderr] 52 | pub const BLACK: u32 = 0x000000; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RED` is never used [INFO] [stderr] --> src/utils/color.rs:53:11 [INFO] [stderr] | [INFO] [stderr] 53 | pub const RED: u32 = 0xFF0000; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GREEN` is never used [INFO] [stderr] --> src/utils/color.rs:54:11 [INFO] [stderr] | [INFO] [stderr] 54 | pub const GREEN: u32 = 0x00FF00; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `BLUE` is never used [INFO] [stderr] --> src/utils/color.rs:55:11 [INFO] [stderr] | [INFO] [stderr] 55 | pub const BLUE: u32 = 0x0000FF; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `YELLOW` is never used [INFO] [stderr] --> src/utils/color.rs:56:11 [INFO] [stderr] | [INFO] [stderr] 56 | pub const YELLOW: u32 = 0xFFFF00; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CYAN` is never used [INFO] [stderr] --> src/utils/color.rs:57:11 [INFO] [stderr] | [INFO] [stderr] 57 | pub const CYAN: u32 = 0x00FFFF; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAGENTA` is never used [INFO] [stderr] --> src/utils/color.rs:58:11 [INFO] [stderr] | [INFO] [stderr] 58 | pub const MAGENTA: u32 = 0xFF00FF; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRAY` is never used [INFO] [stderr] --> src/utils/color.rs:59:11 [INFO] [stderr] | [INFO] [stderr] 59 | pub const GRAY: u32 = 0x808080; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LIGHT_GRAY` is never used [INFO] [stderr] --> src/utils/color.rs:60:11 [INFO] [stderr] | [INFO] [stderr] 60 | pub const LIGHT_GRAY: u32 = 0xC0C0C0; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `DARK_GRAY` is never used [INFO] [stderr] --> src/utils/color.rs:61:11 [INFO] [stderr] | [INFO] [stderr] 61 | pub const DARK_GRAY: u32 = 0x404040; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ORANGE` is never used [INFO] [stderr] --> src/utils/color.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | pub const ORANGE: u32 = 0xFFA500; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `PINK` is never used [INFO] [stderr] --> src/utils/color.rs:63:11 [INFO] [stderr] | [INFO] [stderr] 63 | pub const PINK: u32 = 0xFFC0CB; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `PURPLE` is never used [INFO] [stderr] --> src/utils/color.rs:64:11 [INFO] [stderr] | [INFO] [stderr] 64 | pub const PURPLE: u32 = 0x800080; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `BROWN` is never used [INFO] [stderr] --> src/utils/color.rs:65:11 [INFO] [stderr] | [INFO] [stderr] 65 | pub const BROWN: u32 = 0x8B4513; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LIME` is never used [INFO] [stderr] --> src/utils/color.rs:66:11 [INFO] [stderr] | [INFO] [stderr] 66 | pub const LIME: u32 = 0x00FF00; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `NAVY` is never used [INFO] [stderr] --> src/utils/color.rs:67:11 [INFO] [stderr] | [INFO] [stderr] 67 | pub const NAVY: u32 = 0x000080; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `OLIVE` is never used [INFO] [stderr] --> src/utils/color.rs:68:11 [INFO] [stderr] | [INFO] [stderr] 68 | pub const OLIVE: u32 = 0x808000; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `TEAL` is never used [INFO] [stderr] --> src/utils/color.rs:69:11 [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] running 6 tests [INFO] [stderr] 69 | pub const TEAL: u32 = 0x008080; [INFO] [stdout] test utils::color::tests::test_argb_to_rgb ... ok [INFO] [stderr] | ^^^^ [INFO] [stdout] test utils::log::tests::test_format_message ... ok [INFO] [stderr] [INFO] [stdout] test utils::log::tests::test_log_levels ... ok [INFO] [stderr] warning: constant `SILVER` is never used [INFO] [stdout] test utils::color::tests::test_blend_colors ... ok [INFO] [stderr] --> src/utils/color.rs:70:11 [INFO] [stdout] test utils::color::tests::test_hex_to_rgb ... ok [INFO] [stderr] | [INFO] [stdout] test model::builder::tests::test_parse_color ... ok [INFO] [stderr] 70 | pub const SILVER: u32 = 0xC0C0C0; [INFO] [stdout] [INFO] [stderr] | ^^^^^^ [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stderr] [INFO] [stdout] [INFO] [stderr] warning: constant `MAROON` is never used [INFO] [stdout] [INFO] [stderr] --> src/utils/color.rs:71:11 [INFO] [stdout] running 6 tests [INFO] [stderr] | [INFO] [stdout] test utils::color::tests::test_argb_to_rgb ... ok [INFO] [stderr] 71 | pub const MAROON: u32 = 0x800000; [INFO] [stdout] test utils::color::tests::test_blend_colors ... ok [INFO] [stderr] | ^^^^^^ [INFO] [stdout] test model::builder::tests::test_parse_color ... ok [INFO] [stderr] [INFO] [stdout] test utils::log::tests::test_format_message ... ok [INFO] [stderr] warning: constant `TRACE_COLOR` is never used [INFO] [stdout] test utils::log::tests::test_log_levels ... ok [INFO] [stderr] --> src/utils/color.rs:74:11 [INFO] [stderr] | [INFO] [stderr] 74 | pub const TRACE_COLOR: u32 = RED; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `blend_colors` is never used [INFO] [stderr] --> src/utils/color.rs:77:8 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn blend_colors(color1: u32, color2: u32, ratio: f32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `darken_color` is never used [INFO] [stderr] --> src/utils/color.rs:97:8 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn darken_color(color: u32, factor: f32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `lighten_color` is never used [INFO] [stderr] --> src/utils/color.rs:102:8 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn lighten_color(color: u32, factor: f32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `random_color` is never used [INFO] [stderr] --> src/utils/color.rs:107:8 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn random_color() -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rgb_to_hsv` is never used [INFO] [stderr] --> src/utils/color.rs:117:8 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn rgb_to_hsv(rgb: u32) -> (f32, f32, f32) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `hsv_to_rgb` is never used [INFO] [stderr] --> src/utils/color.rs:147:8 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_harmony_palette` is never used [INFO] [stderr] --> src/utils/color.rs:170:8 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn generate_harmony_palette(base_color: u32, count: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `LogLevel` is never used [INFO] [stderr] --> src/utils/log.rs:14:10 [INFO] [stderr] | [INFO] [stderr] 14 | pub enum LogLevel { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `emoji` and `color_code` are never used [INFO] [stderr] --> src/utils/log.rs:35:12 [INFO] [stderr] | [INFO] [stderr] 33 | impl LogLevel { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] 34 | /// Retourne le symbole emoji associé au niveau [INFO] [stderr] 35 | pub fn emoji(&self) -> &'static str { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn color_code(&self) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Logger` is never constructed [INFO] [stderr] --> src/utils/log.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | pub struct Logger { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/utils/log.rs:76:12 [INFO] [stderr] | [INFO] [stderr] 74 | impl Logger { [INFO] [stderr] | ----------- associated items in this implementation [INFO] [stderr] 75 | /// Crée un nouveau logger avec configuration par défaut [INFO] [stderr] 76 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 81 | pub fn with_level(mut self, level: LogLevel) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 87 | pub fn with_colors(mut self, colors: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 93 | pub fn with_emojis(mut self, emojis: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub fn with_timestamp(mut self, timestamp: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn log(&self, level: LogLevel, message: &str) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | fn format_message(&self, level: LogLevel, message: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `GLOBAL_LOGGER` is never used [INFO] [stderr] --> src/utils/log.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 148 | static mut GLOBAL_LOGGER: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `init_logger` is never used [INFO] [stderr] --> src/utils/log.rs:151:8 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn init_logger(logger: Logger) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_logger` is never used [INFO] [stderr] --> src/utils/log.rs:158:4 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_logger() -> &'static Logger { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `debug` is never used [INFO] [stderr] --> src/utils/log.rs:165:8 [INFO] [stderr] | [INFO] [stderr] 165 | pub fn debug(message: &str) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `info` is never used [INFO] [stderr] --> src/utils/log.rs:169:8 [INFO] [stderr] | [INFO] [stderr] 169 | pub fn info(message: &str) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `warning` is never used [INFO] [stderr] --> src/utils/log.rs:173:8 [INFO] [stderr] | [INFO] [stderr] 173 | pub fn warning(message: &str) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `error` is never used [INFO] [stderr] --> src/utils/log.rs:177:8 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn error(message: &str) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `start` is never used [INFO] [stderr] --> src/utils/log.rs:186:12 [INFO] [stderr] | [INFO] [stderr] 186 | pub fn start(world_size: (usize, usize), agent_count: usize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `stats` is never used [INFO] [stderr] --> src/utils/log.rs:194:12 [INFO] [stderr] | [INFO] [stderr] 194 | pub fn stats(tick: u64, agents_alive: usize, fps: f32) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `end` is never used [INFO] [stderr] --> src/utils/log.rs:202:12 [INFO] [stderr] | [INFO] [stderr] 202 | pub fn end(total_ticks: u64, final_agent_count: usize) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_error` is never used [INFO] [stderr] --> src/utils/log.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn parse_error(file: &str, err_msg: &str) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `agent_state_change` is never used [INFO] [stderr] --> src/utils/log.rs:215:12 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn agent_state_change(agent_id: usize, old_state: &str, new_state: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `agent_interaction` is never used [INFO] [stderr] --> src/utils/log.rs:223:12 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn agent_interaction(agent1: usize, agent2: usize, interaction_type: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `time_function` is never used [INFO] [stderr] --> src/utils/log.rs:237:12 [INFO] [stderr] | [INFO] [stderr] 237 | pub fn time_function(name: &str, func: F) -> R [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `memory_usage` is never used [INFO] [stderr] --> src/utils/log.rs:254:12 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn memory_usage(description: &str, bytes: usize) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Token` [INFO] [stderr] --> tests/tokenizer_test.rs:2:27 [INFO] [stderr] | [INFO] [stderr] 2 | use OSCARv2::dsl::token::{Token, TokenKind}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> tests/error_handling_tests.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `OSCARv2` (bin "OSCARv2") generated 85 warnings (1 duplicate) (run `cargo fix --bin "OSCARv2" -p OSCARv2` to apply 1 suggestion) [INFO] [stderr] warning: `OSCARv2` (test "tokenizer_test") generated 1 warning (run `cargo fix --test "tokenizer_test" -p OSCARv2` to apply 1 suggestion) [INFO] [stderr] warning: `OSCARv2` (bin "OSCARv2" test) generated 55 warnings (55 duplicates) [INFO] [stderr] warning: `OSCARv2` (test "error_handling_tests") generated 1 warning (run `cargo fix --test "error_handling_tests" -p OSCARv2` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/OSCARv2-1decc486e2c82409) [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/OSCARv2-0203df4d44225906) [INFO] [stdout] test utils::color::tests::test_hex_to_rgb ... ok [INFO] [stderr] Running tests/error_handling_tests.rs (/opt/rustwide/target/debug/deps/error_handling_tests-3cf78d7724da28fd) [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test test_parse_empty_lines_and_whitespace ... ok [INFO] [stdout] test test_parse_invalid_world_syntax ... ok [INFO] [stdout] test test_parse_field_without_species ... ok [INFO] [stdout] test test_parse_numeric_color_as_string ... ok [INFO] [stdout] test test_parse_species_with_duplicate_names ... ok [INFO] [stdout] test test_parse_mixed_valid_invalid ... ok [INFO] [stdout] test test_parse_negative_numbers ... ok [INFO] [stdout] test test_parse_large_numbers ... ok [INFO] [stdout] test test_parse_unknown_species_type ... ok [INFO] [stdout] test test_parse_comments_only_file ... ok [INFO] [stdout] test test_parse_multiple_worlds ... FAILED [INFO] [stdout] test test_parse_status_without_species ... ok [INFO] [stdout] test test_parse_species_without_color ... ok [INFO] [stdout] test test_parse_var_without_species ... ok [INFO] [stdout] test test_parse_var_without_name ... ok [INFO] [stdout] test test_parse_species_without_name ... FAILED [INFO] [stdout] test test_parse_sensor_without_species ... ok [INFO] [stdout] test test_parse_world_with_non_numeric_dimensions ... ok [INFO] [stdout] test test_parse_status_without_name ... ok [INFO] [stderr] error: test failed, to rerun pass `--test error_handling_tests` [INFO] [stdout] test test_tokenizer_error_handling ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- test_parse_multiple_worlds stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_parse_multiple_worlds' (36) panicked at tests/error_handling_tests.rs:238:5: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: "0" [INFO] [stdout] right: "000" [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60fc65263a2a - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60fc65263a2a - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60fc65263a2a - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60fc65263a2a - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60fc652791aa - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60fc652791aa - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x60fc65268782 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x60fc65268782 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x60fc6524283f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60fc6524283f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60fc6525bf79 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60fc651dd14c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x60fc651dd14c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x60fc6525c132 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x60fc6525c132 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60fc652428f8 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x60fc652375a9 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60fc652436fd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60fc6527993c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60fc652797f3 - core[fa0eadad68403074]::panicking::assert_failed_inner [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:439:17 [INFO] [stdout] 20: 0x60fc651c9e2e - core[fa0eadad68403074]::panicking::assert_failed:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x60fc651caa5f - error_handling_tests[c790a821934fe1bc]::test_parse_multiple_worlds [INFO] [stdout] at /opt/rustwide/workdir/tests/error_handling_tests.rs:238:5 [INFO] [stdout] 22: 0x60fc651c9ec7 - error_handling_tests[c790a821934fe1bc]::test_parse_multiple_worlds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/error_handling_tests.rs:223:32 [INFO] [stdout] 23: 0x60fc651d0d06 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x60fc651d122b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x60fc651d122b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x60fc651ddc1b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x60fc651ddc1b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x60fc651ddc1b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x60fc651ddc1b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x60fc651d8074 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x60fc651d8074 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x60fc651e0822 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x60fc651e0822 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x60fc651e0822 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x60fc651e0822 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x60fc651e0822 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x60fc651e0822 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x60fc651e0822 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x60fc6526333f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x60fc6526333f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7b9d34061aa4 - [INFO] [stdout] 45: 0x7b9d340eea64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_parse_species_without_name stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_parse_species_without_name' (42) panicked at tests/error_handling_tests.rs:31:5: [INFO] [stdout] assertion failed: error_msg.contains("Expected name after species") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60fc65263a2a - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60fc65263a2a - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60fc65263a2a - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60fc65263a2a - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60fc652791aa - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60fc652791aa - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x60fc65268782 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x60fc65268782 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x60fc6524283f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60fc6524283f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60fc6525bf79 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60fc651dd14c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x60fc651dd14c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x60fc6525c132 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x60fc6525c132 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60fc6524292a - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x60fc652375a9 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60fc652436fd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60fc6527993c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60fc65279902 - core[fa0eadad68403074]::panicking::panic [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:150:5 [INFO] [stdout] 20: 0x60fc651cc704 - error_handling_tests[c790a821934fe1bc]::test_parse_species_without_name [INFO] [stdout] at /opt/rustwide/workdir/tests/error_handling_tests.rs:31:5 [INFO] [stdout] 21: 0x60fc651ca077 - error_handling_tests[c790a821934fe1bc]::test_parse_species_without_name::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/error_handling_tests.rs:25:37 [INFO] [stdout] 22: 0x60fc651d0f46 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x60fc651d122b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x60fc651d122b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 25: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 26: 0x60fc651ddc1b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 27: 0x60fc651ddc1b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 28: 0x60fc651ddc1b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 29: 0x60fc651ddc1b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 30: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 31: 0x60fc651ddc1b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 32: 0x60fc651d8074 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 33: 0x60fc651d8074 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 34: 0x60fc651e0822 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 35: 0x60fc651e0822 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 36: 0x60fc651e0822 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 37: 0x60fc651e0822 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 38: 0x60fc651e0822 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 39: 0x60fc651e0822 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 40: 0x60fc651e0822 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 41: 0x60fc6526333f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 42: 0x60fc6526333f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 43: 0x7b9d34061aa4 - [INFO] [stdout] 44: 0x7b9d340eea64 - clone [INFO] [stdout] 45: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] test_parse_multiple_worlds [INFO] [stdout] test_parse_species_without_name [INFO] [stdout] [INFO] [stdout] test result: FAILED. 18 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "95fc8fb0f18bec886ba202741d62dd6738c0e7c71a0eebaac489bd3da8938ce8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "95fc8fb0f18bec886ba202741d62dd6738c0e7c71a0eebaac489bd3da8938ce8", kill_on_drop: false }` [INFO] [stdout] 95fc8fb0f18bec886ba202741d62dd6738c0e7c71a0eebaac489bd3da8938ce8