[INFO] cloning repository https://github.com/zzzz200508-hash/dapgame
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zzzz200508-hash/dapgame" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzzzz200508-hash%2Fdapgame", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzzzz200508-hash%2Fdapgame'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ddc1edc3eac345d14be003c4a67e64b2bdf8a8aa
[INFO] checking zzzz200508-hash/dapgame against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzzzz200508-hash%2Fdapgame" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zzzz200508-hash/dapgame
[INFO] finished tweaking git repo https://github.com/zzzz200508-hash/dapgame
[INFO] tweaked toml for git repo https://github.com/zzzz200508-hash/dapgame written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zzzz200508-hash/dapgame on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zzzz200508-hash/dapgame 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded objc-rs v0.2.8
[INFO] [stderr]   Downloaded quad-rand v0.2.3
[INFO] [stderr]   Downloaded macroquad_macro v0.1.8
[INFO] [stderr]   Downloaded miniquad v0.4.8
[INFO] [stderr]   Downloaded glam v0.27.0
[INFO] [stderr]   Downloaded macroquad v0.4.14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a
[INFO] running `Command { std: "docker" "start" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking macroquad v0.4.14
[INFO] [stderr]     Checking dapgame v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::physics::simulation::StoneInfo`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::physics::simulation::StoneInfo;
[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: `crate::physics::simulation::StoneInfo`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::physics::simulation::StoneInfo;
[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 variable: `vertical_force`
[INFO] [stdout]   --> src/physics/simulation.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let vertical_force = self.compute_vertical_force(stone);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertical_force`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `velocity_mag`
[INFO] [stdout]   --> src/physics/simulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 let velocity_mag = stone.velocity.length(); // 你需要在 Vector2D/3D 里实现 length()
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_velocity_mag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `restart_requested` is never read
[INFO] [stdout]    --> src/main.rs:73:41
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut restart_requested = false;
[INFO] [stdout]     |                                         ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 137 |                     restart_requested = true;
[INFO] [stdout]     |                     ------------------------ `restart_requested` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `f64` to itself
[INFO] [stdout]   --> src/stone_phy.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |             else{d_max = d_max}
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `control_points`, and `order` are never read
[INFO] [stdout]   --> src/bezier.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BezierInfo{
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout]  9 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     control_points: Vec<Vector2D>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     order: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector3D` is never constructed
[INFO] [stdout]  --> src/basic_structs.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Vector3D {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/basic_structs.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Vector3D {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(x: f64, y: f64, z: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `length_squared` and `length` are never used
[INFO] [stdout]   --> src/basic_structs.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Vector3D {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 21 |     fn length_squared(self) -> f64 { self.x * self.x + self.y * self.y + self.z * self.z}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     fn length(self) -> f64 { self.length_squared().sqrt() }
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot` and `times` are never used
[INFO] [stdout]   --> src/basic_structs.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Vector3D {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 51 |     fn dot(self, rhs: Vector3D) -> f64 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn times(self, rhs: Vector3D) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]   --> src/basic_structs.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Quaternion {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `identity`, `from_vector`, and `normalize` are never used
[INFO] [stdout]   --> src/basic_structs.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Quaternion {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 72 |     pub fn identity() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn from_vector(v: Vector3D) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn normalize(self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tensor3d` is never constructed
[INFO] [stdout]    --> src/basic_structs.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct Tensor3d {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/basic_structs.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl Tensor3d{
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 130 |     fn new(x: Vector3D, y: Vector3D, z: Vector3D) -> Self{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dot` is never used
[INFO] [stdout]    --> src/basic_structs.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl Vector2D {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 170 |     fn dot(self, other: Self) -> f64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `trajectory_len` and `has_trajectory` are never used
[INFO] [stdout]    --> src/print.rs:408:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl SimulationRenderer {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn trajectory_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn has_trajectory(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `n`, `inertia_tensor_y`, and `collision_mesh_com` are never read
[INFO] [stdout]   --> src/stone_phy.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct StoneProperties {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 13 |     pub n: usize,// 碰撞点云总点数
[INFO] [stdout]    |         ^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub inertia_tensor_y: f64,// 自转转动惯量
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub collision_mesh_com: Vec<Vector2D>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoneProperties` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stamp` is never constructed
[INFO] [stdout]   --> src/physics/simulation.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Stamp {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate` is never used
[INFO] [stdout]   --> src/physics/simulation.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn simulate(system: &mut CustomSettings,
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cl` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub Cl: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `cl`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cf` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub Cf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `cf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Sim` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub Sim: f64,
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `sim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `M` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub M: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertical_force`
[INFO] [stdout]   --> src/physics/simulation.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let vertical_force = self.compute_vertical_force(stone);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertical_force`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `velocity_mag`
[INFO] [stdout]   --> src/physics/simulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 let velocity_mag = stone.velocity.length(); // 你需要在 Vector2D/3D 里实现 length()
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_velocity_mag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `restart_requested` is never read
[INFO] [stdout]    --> src/main.rs:73:41
[INFO] [stdout]     |
[INFO] [stdout]  73 |             let mut restart_requested = false;
[INFO] [stdout]     |                                         ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 137 |                     restart_requested = true;
[INFO] [stdout]     |                     ------------------------ `restart_requested` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `f64` to itself
[INFO] [stdout]   --> src/stone_phy.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |             else{d_max = d_max}
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `control_points`, and `order` are never read
[INFO] [stdout]   --> src/bezier.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BezierInfo{
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout]  9 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     control_points: Vec<Vector2D>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     order: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector3D` is never constructed
[INFO] [stdout]  --> src/basic_structs.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Vector3D {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/basic_structs.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Vector3D {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(x: f64, y: f64, z: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `length_squared` and `length` are never used
[INFO] [stdout]   --> src/basic_structs.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Vector3D {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 21 |     fn length_squared(self) -> f64 { self.x * self.x + self.y * self.y + self.z * self.z}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     fn length(self) -> f64 { self.length_squared().sqrt() }
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dot` and `times` are never used
[INFO] [stdout]   --> src/basic_structs.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Vector3D {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 51 |     fn dot(self, rhs: Vector3D) -> f64 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn times(self, rhs: Vector3D) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]   --> src/basic_structs.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Quaternion {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `identity`, `from_vector`, and `normalize` are never used
[INFO] [stdout]   --> src/basic_structs.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Quaternion {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 72 |     pub fn identity() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn from_vector(v: Vector3D) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn normalize(self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tensor3d` is never constructed
[INFO] [stdout]    --> src/basic_structs.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct Tensor3d {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/basic_structs.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl Tensor3d{
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 130 |     fn new(x: Vector3D, y: Vector3D, z: Vector3D) -> Self{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dot` is never used
[INFO] [stdout]    --> src/basic_structs.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl Vector2D {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 170 |     fn dot(self, other: Self) -> f64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `trajectory_len` and `has_trajectory` are never used
[INFO] [stdout]    --> src/print.rs:408:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl SimulationRenderer {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn trajectory_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn has_trajectory(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `n`, `inertia_tensor_y`, and `collision_mesh_com` are never read
[INFO] [stdout]   --> src/stone_phy.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct StoneProperties {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 13 |     pub n: usize,// 碰撞点云总点数
[INFO] [stdout]    |         ^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub inertia_tensor_y: f64,// 自转转动惯量
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub collision_mesh_com: Vec<Vector2D>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoneProperties` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stamp` is never constructed
[INFO] [stdout]   --> src/physics/simulation.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Stamp {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate` is never used
[INFO] [stdout]   --> src/physics/simulation.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn simulate(system: &mut CustomSettings,
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cl` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub Cl: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `cl`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cf` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub Cf: f64,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `cf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Sim` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub Sim: f64,
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `sim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `M` should have a snake case name
[INFO] [stdout]   --> src/physics/parameters.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub M: f64,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.03s
[INFO] running `Command { std: "docker" "inspect" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a", kill_on_drop: false }`
[INFO] [stdout] 93cb2b09db329e6b0003c13196397468ab8e1acf4a29335ee6a67d395afc700a
