[INFO] cloning repository https://github.com/jandan138/rust_distance_joint_simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jandan138/rust_distance_joint_simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjandan138%2Frust_distance_joint_simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjandan138%2Frust_distance_joint_simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4d89cef07f848dacdd584e9343210323a48bcd44
[INFO] building jandan138/rust_distance_joint_simulator against try#58b1b3c5342a414c161338871f8004258ccef2a7 for pr-149937
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjandan138%2Frust_distance_joint_simulator" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jandan138/rust_distance_joint_simulator
[INFO] finished tweaking git repo https://github.com/jandan138/rust_distance_joint_simulator
[INFO] tweaked toml for git repo https://github.com/jandan138/rust_distance_joint_simulator written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jandan138/rust_distance_joint_simulator on toolchain 58b1b3c5342a414c161338871f8004258ccef2a7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jandan138/rust_distance_joint_simulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1f026b7452891ef9a32427af682f1f45fb563fd2da875c046b31fffab1dd367a
[INFO] running `Command { std: "docker" "start" "-a" "1f026b7452891ef9a32427af682f1f45fb563fd2da875c046b31fffab1dd367a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f026b7452891ef9a32427af682f1f45fb563fd2da875c046b31fffab1dd367a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f026b7452891ef9a32427af682f1f45fb563fd2da875c046b31fffab1dd367a", kill_on_drop: false }`
[INFO] [stdout] 1f026b7452891ef9a32427af682f1f45fb563fd2da875c046b31fffab1dd367a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 90853975c9a4d050bd832acf7c01400c5ceb7ef0a6ce50e8495c6c77a1d86140
[INFO] running `Command { std: "docker" "start" "-a" "90853975c9a4d050bd832acf7c01400c5ceb7ef0a6ce50e8495c6c77a1d86140", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling libc v0.2.161
[INFO] [stderr]    Compiling hashbrown v0.15.0
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling futures-lite v2.3.0
[INFO] [stderr]    Compiling waker-fn v1.2.0
[INFO] [stderr]    Compiling fastrand v1.9.0
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling bevy_ptr v0.10.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.88
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling tracing-log v0.1.4
[INFO] [stderr]    Compiling raw-window-handle v0.5.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling libloading v0.7.4
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling anyhow v1.0.90
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling codespan-reporting v0.11.1
[INFO] [stderr]    Compiling async-executor v1.13.1
[INFO] [stderr]    Compiling pp-rs v0.2.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling hexf-parse v0.2.1
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling gpu-alloc v0.5.4
[INFO] [stderr]    Compiling syn v2.0.82
[INFO] [stderr]    Compiling indexmap v2.6.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling wgpu-types v0.15.2
[INFO] [stderr]    Compiling renderdoc-sys v0.7.1
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling glow v0.12.3
[INFO] [stderr]    Compiling uuid v1.11.0
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling fdeflate v0.3.5
[INFO] [stderr]    Compiling bevy_tasks v0.10.1
[INFO] [stderr]    Compiling spirv v0.2.0+1.5.4
[INFO] [stderr]    Compiling flate2 v1.0.34
[INFO] [stderr]    Compiling twox-hash v1.6.3
[INFO] [stderr]    Compiling const_panic v0.2.10
[INFO] [stderr]    Compiling ktx2 v0.3.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling radsort v0.1.1
[INFO] [stderr]    Compiling ruzstd v0.2.4
[INFO] [stderr]    Compiling xml-rs v0.8.22
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling png v0.17.14
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling ttf-parser v0.25.0
[INFO] [stderr]    Compiling serde_json v1.0.132
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling accesskit v0.10.1
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling regex v1.11.0
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling sysinfo v0.28.4
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]    Compiling svg_fmt v0.4.3
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling notify v5.2.0
[INFO] [stderr]    Compiling encase_derive_impl v0.5.0
[INFO] [stderr]    Compiling guillotiere v0.6.2
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]    Compiling rectangle-pack v0.4.2
[INFO] [stderr]    Compiling xi-unicode v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling bytemuck_derive v1.8.0
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling bevy_macro_utils v0.10.1
[INFO] [stderr]    Compiling taffy v0.3.19
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling ab_glyph v0.2.29
[INFO] [stderr]    Compiling glyph_brush_layout v0.2.4
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.10.1
[INFO] [stderr]    Compiling encase_derive v0.5.0
[INFO] [stderr]    Compiling bevy_reflect_derive v0.10.1
[INFO] [stderr]    Compiling bevy_ecs_macros v0.10.1
[INFO] [stderr]    Compiling bevy_derive v0.10.1
[INFO] [stderr]    Compiling bevy_render_macros v0.10.1
[INFO] [stderr]    Compiling bevy_encase_derive v0.10.1
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling bytemuck v1.19.0
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling accesskit_winit v0.12.4
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling glam v0.23.0
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling gpu-descriptor-types v0.1.2
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling gpu-descriptor v0.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling bevy_utils v0.10.1
[INFO] [stderr]    Compiling gilrs-core v0.5.15
[INFO] [stderr]    Compiling gltf-json v1.4.1
[INFO] [stderr]    Compiling naga v0.11.1
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling rodio v0.17.3
[INFO] [stderr]    Compiling bevy_math v0.10.1
[INFO] [stderr]    Compiling bevy_mikktspace v0.10.1
[INFO] [stderr]    Compiling encase v0.5.0
[INFO] [stderr]    Compiling hexasphere v8.1.0
[INFO] [stderr]    Compiling bevy_reflect v0.10.1
[INFO] [stderr]    Compiling gltf v1.4.1
[INFO] [stderr]    Compiling bevy_ecs v0.10.1
[INFO] [stderr]    Compiling wgpu-hal v0.15.4
[INFO] [stderr]    Compiling wgpu-core v0.15.1
[INFO] [stderr]    Compiling bevy_app v0.10.1
[INFO] [stderr]    Compiling bevy_core v0.10.1
[INFO] [stderr]    Compiling bevy_log v0.10.1
[INFO] [stderr]    Compiling bevy_time v0.10.1
[INFO] [stderr]    Compiling bevy_input v0.10.1
[INFO] [stderr]    Compiling bevy_a11y v0.10.1
[INFO] [stderr]    Compiling bevy_hierarchy v0.10.1
[INFO] [stderr]    Compiling bevy_diagnostic v0.10.1
[INFO] [stderr]    Compiling bevy_transform v0.10.1
[INFO] [stderr]    Compiling bevy_asset v0.10.1
[INFO] [stderr]    Compiling bevy_window v0.10.1
[INFO] [stderr]    Compiling bevy_gilrs v0.10.1
[INFO] [stderr]    Compiling wgpu v0.15.1
[INFO] [stderr]    Compiling bevy_animation v0.10.1
[INFO] [stderr]    Compiling bevy_audio v0.10.1
[INFO] [stderr]    Compiling bevy_winit v0.10.1
[INFO] [stderr]    Compiling bevy_render v0.10.1
[INFO] [stderr]    Compiling bevy_core_pipeline v0.10.1
[INFO] [stderr]    Compiling bevy_scene v0.10.1
[INFO] [stderr]    Compiling bevy_sprite v0.10.1
[INFO] [stderr]    Compiling bevy_pbr v0.10.1
[INFO] [stderr]    Compiling bevy_text v0.10.1
[INFO] [stderr]    Compiling bevy_ui v0.10.1
[INFO] [stderr]    Compiling bevy_gltf v0.10.1
[INFO] [stderr]    Compiling bevy_internal v0.10.1
[INFO] [stderr]    Compiling bevy v0.10.1
[INFO] [stderr]    Compiling rust_distance_joint_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/distance_joint.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cuboid::Cuboid;
[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: `CuboidBundle`
[INFO] [stdout]  --> src/rendering.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_rope_constraints`
[INFO] [stdout]  --> src/rendering.rs:6:63
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints, add_constraint};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/simulation.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |         else if (physics.is_fixed) {
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -         else if (physics.is_fixed) {
[INFO] [stdout] 21 +         else if physics.is_fixed  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/rope_constraint.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::cuboid::Cuboid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CuboidBundle` and `Cuboid`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_distance_joints`
[INFO] [stdout]   --> src/main.rs:17:44
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::distance_joint::{DistanceJoint, maintain_distance_joints};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PhysicsBody`
[INFO] [stdout]   --> src/main.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::physics::{physics_step_system, PhysicsBody};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `update_rendering`
[INFO] [stdout]   --> src/main.rs:20:53
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::rendering::{setup_rendering_environment, update_rendering};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RopeConstraint`
[INFO] [stdout]   --> src/main.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     mut query: Query<(Entity, &DistanceJoint, &Transform, &PhysicsBody)>,
[INFO] [stdout]    |     ----^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                  ----^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                                        ----^^^^^^^
[INFO] [stdout]    |                                        |
[INFO] [stdout]    |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics_query`
[INFO] [stdout]   --> src/distance_joint.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     physics_query: Query<&PhysicsBody>
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics_query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/distance_joint.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]   --> src/distance_joint.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/physics.rs:87:18
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for (entity, mut transform, mut physics) in query.iter_mut() {
[INFO] [stdout]    |                  ----^^^^^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ----^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:42
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                          ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics`
[INFO] [stdout]    --> src/rendering.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuboid`
[INFO] [stdout]    --> src/rendering.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuboid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/rendering.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let material = materials.get_mut(&material_handle).unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]   --> src/simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mass = physics.mass;  // 先复制质量到局部变量
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rope_constraint.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     mut constraints: ResMut<RopeConstraints>,
[INFO] [stdout]    |     ----^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cuboid` is never constructed
[INFO] [stdout]  --> src/cuboid.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Cuboid {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Cuboid {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     // 添加构造函数
[INFO] [stdout] 16 |     pub fn new(size: Vec3, position: Vec3, mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CuboidBundle` is never constructed
[INFO] [stdout]   --> src/cuboid.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CuboidBundle {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CuboidBundle {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(cuboid: Cuboid, mesh: Handle<Mesh>, material: Handle<StandardMaterial>, transform: Transform) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `body_a`, `body_b`, `min_distance`, and `max_distance` are never read
[INFO] [stdout]   --> src/distance_joint.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DistanceJoint {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout]  9 |     pub body_a: Entity, // 连接的第一个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub body_b: Entity, // 连接的第二个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub min_distance: f32, // 最小距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub max_distance: f32, // 最大距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/distance_joint.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl DistanceJoint {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(body_a: Entity, body_b: Entity, min_distance: f32, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maintain_distance_joints` is never used
[INFO] [stdout]   --> src/distance_joint.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn maintain_distance_joints(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_with_velocity` are never used
[INFO] [stdout]   --> src/physics.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl PhysicsBody {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn new(mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new_with_velocity(mass: f32, initial_velocity: Vec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_rendering` is never used
[INFO] [stdout]    --> src/rendering.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn update_rendering(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rope_constraint.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl RopeConstraint {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(body_a: Entity, body_b: Entity, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_PhysicsBody` should have a snake case name
[INFO] [stdout]   --> src/physics.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new_PhysicsBody(mass: f32, initial_velocity: Vec3, initial_force: Vec3, initial_predicted_position: Vec3, while_fixed: bo...
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_physics_body`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 56s
[INFO] running `Command { std: "docker" "inspect" "90853975c9a4d050bd832acf7c01400c5ceb7ef0a6ce50e8495c6c77a1d86140", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90853975c9a4d050bd832acf7c01400c5ceb7ef0a6ce50e8495c6c77a1d86140", kill_on_drop: false }`
[INFO] [stdout] 90853975c9a4d050bd832acf7c01400c5ceb7ef0a6ce50e8495c6c77a1d86140
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ecf84be86b9b1cbc55832be957562c4c2ad4234972f3ad84d973948ae755f403
[INFO] running `Command { std: "docker" "start" "-a" "ecf84be86b9b1cbc55832be957562c4c2ad4234972f3ad84d973948ae755f403", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust_distance_joint_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/distance_joint.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cuboid::Cuboid;
[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: `CuboidBundle`
[INFO] [stdout]  --> src/rendering.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_rope_constraints`
[INFO] [stdout]  --> src/rendering.rs:6:63
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints, add_constraint};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/simulation.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |         else if (physics.is_fixed) {
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -         else if (physics.is_fixed) {
[INFO] [stdout] 21 +         else if physics.is_fixed  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/rope_constraint.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::cuboid::Cuboid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CuboidBundle` and `Cuboid`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_distance_joints`
[INFO] [stdout]   --> src/main.rs:17:44
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::distance_joint::{DistanceJoint, maintain_distance_joints};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PhysicsBody`
[INFO] [stdout]   --> src/main.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::physics::{physics_step_system, PhysicsBody};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `update_rendering`
[INFO] [stdout]   --> src/main.rs:20:53
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::rendering::{setup_rendering_environment, update_rendering};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RopeConstraint`
[INFO] [stdout]   --> src/main.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     mut query: Query<(Entity, &DistanceJoint, &Transform, &PhysicsBody)>,
[INFO] [stdout]    |     ----^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                  ----^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                                        ----^^^^^^^
[INFO] [stdout]    |                                        |
[INFO] [stdout]    |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics_query`
[INFO] [stdout]   --> src/distance_joint.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     physics_query: Query<&PhysicsBody>
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics_query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/distance_joint.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]   --> src/distance_joint.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/physics.rs:87:18
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for (entity, mut transform, mut physics) in query.iter_mut() {
[INFO] [stdout]    |                  ----^^^^^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ----^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:42
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                          ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics`
[INFO] [stdout]    --> src/rendering.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuboid`
[INFO] [stdout]    --> src/rendering.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuboid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/rendering.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let material = materials.get_mut(&material_handle).unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]   --> src/simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mass = physics.mass;  // 先复制质量到局部变量
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rope_constraint.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     mut constraints: ResMut<RopeConstraints>,
[INFO] [stdout]    |     ----^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cuboid` is never constructed
[INFO] [stdout]  --> src/cuboid.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Cuboid {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Cuboid {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     // 添加构造函数
[INFO] [stdout] 16 |     pub fn new(size: Vec3, position: Vec3, mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CuboidBundle` is never constructed
[INFO] [stdout]   --> src/cuboid.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CuboidBundle {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CuboidBundle {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(cuboid: Cuboid, mesh: Handle<Mesh>, material: Handle<StandardMaterial>, transform: Transform) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `body_a`, `body_b`, `min_distance`, and `max_distance` are never read
[INFO] [stdout]   --> src/distance_joint.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DistanceJoint {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout]  9 |     pub body_a: Entity, // 连接的第一个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub body_b: Entity, // 连接的第二个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub min_distance: f32, // 最小距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub max_distance: f32, // 最大距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/distance_joint.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl DistanceJoint {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(body_a: Entity, body_b: Entity, min_distance: f32, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maintain_distance_joints` is never used
[INFO] [stdout]   --> src/distance_joint.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn maintain_distance_joints(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_with_velocity` are never used
[INFO] [stdout]   --> src/physics.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl PhysicsBody {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn new(mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new_with_velocity(mass: f32, initial_velocity: Vec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_rendering` is never used
[INFO] [stdout]    --> src/rendering.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn update_rendering(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rope_constraint.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl RopeConstraint {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(body_a: Entity, body_b: Entity, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_PhysicsBody` should have a snake case name
[INFO] [stdout]   --> src/physics.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new_PhysicsBody(mass: f32, initial_velocity: Vec3, initial_force: Vec3, initial_predicted_position: Vec3, while_fixed: bo...
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_physics_body`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/distance_joint.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cuboid::Cuboid;
[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: `CuboidBundle`
[INFO] [stdout]  --> src/rendering.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_rope_constraints`
[INFO] [stdout]  --> src/rendering.rs:6:63
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints, add_constraint};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/simulation.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |         else if (physics.is_fixed) {
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -         else if (physics.is_fixed) {
[INFO] [stdout] 21 +         else if physics.is_fixed  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stdout]  --> src/rope_constraint.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::cuboid::Cuboid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CuboidBundle` and `Cuboid`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `maintain_distance_joints`
[INFO] [stdout]   --> src/main.rs:17:44
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::distance_joint::{DistanceJoint, maintain_distance_joints};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PhysicsBody`
[INFO] [stdout]   --> src/main.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::physics::{physics_step_system, PhysicsBody};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `update_rendering`
[INFO] [stdout]   --> src/main.rs:20:53
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::rendering::{setup_rendering_environment, update_rendering};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RopeConstraint`
[INFO] [stdout]   --> src/main.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     mut query: Query<(Entity, &DistanceJoint, &Transform, &PhysicsBody)>,
[INFO] [stdout]    |     ----^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                  ----^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/distance_joint.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                                        ----^^^^^^^
[INFO] [stdout]    |                                        |
[INFO] [stdout]    |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics_query`
[INFO] [stdout]   --> src/distance_joint.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     physics_query: Query<&PhysicsBody>
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics_query`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/distance_joint.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]   --> src/distance_joint.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/physics.rs:87:18
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for (entity, mut transform, mut physics) in query.iter_mut() {
[INFO] [stdout]    |                  ----^^^^^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ----^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering.rs:122:42
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                          ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]    --> src/rendering.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `physics`
[INFO] [stdout]    --> src/rendering.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuboid`
[INFO] [stdout]    --> src/rendering.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuboid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/rendering.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let material = materials.get_mut(&material_handle).unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]   --> src/simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mass = physics.mass;  // 先复制质量到局部变量
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rope_constraint.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     mut constraints: ResMut<RopeConstraints>,
[INFO] [stdout]    |     ----^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cuboid` is never constructed
[INFO] [stdout]  --> src/cuboid.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Cuboid {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Cuboid {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     // 添加构造函数
[INFO] [stdout] 16 |     pub fn new(size: Vec3, position: Vec3, mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CuboidBundle` is never constructed
[INFO] [stdout]   --> src/cuboid.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CuboidBundle {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuboid.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CuboidBundle {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(cuboid: Cuboid, mesh: Handle<Mesh>, material: Handle<StandardMaterial>, transform: Transform) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `body_a`, `body_b`, `min_distance`, and `max_distance` are never read
[INFO] [stdout]   --> src/distance_joint.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DistanceJoint {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout]  9 |     pub body_a: Entity, // 连接的第一个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub body_b: Entity, // 连接的第二个实体
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub min_distance: f32, // 最小距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub max_distance: f32, // 最大距离
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/distance_joint.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl DistanceJoint {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(body_a: Entity, body_b: Entity, min_distance: f32, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maintain_distance_joints` is never used
[INFO] [stdout]   --> src/distance_joint.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn maintain_distance_joints(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_with_velocity` are never used
[INFO] [stdout]   --> src/physics.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl PhysicsBody {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn new(mass: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new_with_velocity(mass: f32, initial_velocity: Vec3) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_rendering` is never used
[INFO] [stdout]    --> src/rendering.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn update_rendering(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/rope_constraint.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl RopeConstraint {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(body_a: Entity, body_b: Entity, max_distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_PhysicsBody` should have a snake case name
[INFO] [stdout]   --> src/physics.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new_PhysicsBody(mass: f32, initial_velocity: Vec3, initial_force: Vec3, initial_predicted_position: Vec3, while_fixed: bo...
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_physics_body`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.07s
[INFO] running `Command { std: "docker" "inspect" "ecf84be86b9b1cbc55832be957562c4c2ad4234972f3ad84d973948ae755f403", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ecf84be86b9b1cbc55832be957562c4c2ad4234972f3ad84d973948ae755f403", kill_on_drop: false }`
[INFO] [stdout] ecf84be86b9b1cbc55832be957562c4c2ad4234972f3ad84d973948ae755f403
