[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] testing jandan138/rust_distance_joint_simulator against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjandan138%2Frust_distance_joint_simulator" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jandan138/rust_distance_joint_simulator on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.88
[INFO] [stderr]   Downloaded bevy_winit v0.10.1
[INFO] [stderr]   Downloaded bevy_internal v0.10.1
[INFO] [stderr]   Downloaded bevy_macro_utils v0.10.1
[INFO] [stderr]   Downloaded bevy_utils_proc_macros v0.10.1
[INFO] [stderr]   Downloaded bevy_utils v0.10.1
[INFO] [stderr]   Downloaded bevy_math v0.10.1
[INFO] [stderr]   Downloaded erased-serde v0.3.31
[INFO] [stderr]   Downloaded bevy_derive v0.10.1
[INFO] [stderr]   Downloaded bevy_hierarchy v0.10.1
[INFO] [stderr]   Downloaded bevy_window v0.10.1
[INFO] [stderr]   Downloaded bytemuck_derive v1.8.0
[INFO] [stderr]   Downloaded bevy_ptr v0.10.1
[INFO] [stderr]   Downloaded bevy_reflect_derive v0.10.1
[INFO] [stderr]   Downloaded bevy_input v0.10.1
[INFO] [stderr]   Downloaded bevy_ecs_macros v0.10.1
[INFO] [stderr]   Downloaded bevy_log v0.10.1
[INFO] [stderr]   Downloaded async-executor v1.13.1
[INFO] [stderr]   Downloaded bevy_tasks v0.10.1
[INFO] [stderr]   Downloaded bevy_app v0.10.1
[INFO] [stderr]   Downloaded xml-rs v0.8.22
[INFO] [stderr]   Downloaded bytemuck v1.19.0
[INFO] [stderr]   Downloaded futures-lite v2.3.0
[INFO] [stderr]   Downloaded bevy_reflect v0.10.1
[INFO] [stderr]   Downloaded bevy_core v0.10.1
[INFO] [stderr]   Downloaded accesskit_macos v0.6.2
[INFO] [stderr]   Downloaded grid v0.10.0
[INFO] [stderr]   Downloaded accesskit_winit v0.12.4
[INFO] [stderr]   Downloaded accesskit_windows v0.13.2
[INFO] [stderr]   Downloaded accesskit_consumer v0.14.1
[INFO] [stderr]   Downloaded bevy_text v0.10.1
[INFO] [stderr]   Downloaded bevy_a11y v0.10.1
[INFO] [stderr]   Downloaded syn v2.0.82
[INFO] [stderr]   Downloaded accesskit v0.10.1
[INFO] [stderr]   Downloaded bevy_ui v0.10.1
[INFO] [stderr]   Downloaded xi-unicode v0.3.0
[INFO] [stderr]   Downloaded bevy v0.10.1
[INFO] [stderr]   Downloaded bevy_ecs v0.10.1
[INFO] [stderr]   Downloaded glam v0.23.0
[INFO] [stderr]   Downloaded bevy_transform v0.10.1
[INFO] [stderr]   Downloaded bevy_sprite v0.10.1
[INFO] [stderr]   Downloaded owned_ttf_parser v0.25.0
[INFO] [stderr]   Downloaded taffy v0.3.19
[INFO] [stderr]   Downloaded glyph_brush_layout v0.2.4
[INFO] [stderr]   Downloaded ab_glyph v0.2.29
[INFO] [stderr]   Downloaded svg_fmt v0.4.3
[INFO] [stderr]   Downloaded ttf-parser v0.25.0
[INFO] [stderr]   Downloaded renderdoc-sys v0.7.1
[INFO] [stderr]   Downloaded profiling v1.0.16
[INFO] [stderr]   Downloaded bevy_render v0.10.1
[INFO] [stderr]   Downloaded wgpu-types v0.15.2
[INFO] [stderr]   Downloaded orbclient v0.3.48
[INFO] [stderr]   Downloaded wgpu-hal v0.15.4
[INFO] [stderr]   Downloaded naga v0.11.1
[INFO] [stderr]   Downloaded hassle-rs v0.9.0
[INFO] [stderr]   Downloaded widestring v0.5.1
[INFO] [stderr]   Downloaded wgpu-core v0.15.1
[INFO] [stderr]   Downloaded wgpu v0.15.1
[INFO] [stderr]   Downloaded encase v0.5.0
[INFO] [stderr]   Downloaded ruzstd v0.2.4
[INFO] [stderr]   Downloaded fdeflate v0.3.5
[INFO] [stderr]   Downloaded bevy_render_macros v0.10.1
[INFO] [stderr]   Downloaded ktx2 v0.3.0
[INFO] [stderr]   Downloaded encase_derive v0.5.0
[INFO] [stderr]   Downloaded encase_derive_impl v0.5.0
[INFO] [stderr]   Downloaded bevy_time v0.10.1
[INFO] [stderr]   Downloaded bevy_encase_derive v0.10.1
[INFO] [stderr]   Downloaded png v0.17.14
[INFO] [stderr]   Downloaded flate2 v1.0.34
[INFO] [stderr]   Downloaded hexasphere v8.1.0
[INFO] [stderr]   Downloaded const_panic v0.2.10
[INFO] [stderr]   Downloaded bevy_mikktspace v0.10.1
[INFO] [stderr]   Downloaded notify v5.2.0
[INFO] [stderr]   Downloaded bevy_asset v0.10.1
[INFO] [stderr]   Downloaded bevy_gltf v0.10.1
[INFO] [stderr]   Downloaded bevy_gilrs v0.10.1
[INFO] [stderr]   Downloaded radsort v0.1.1
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded anyhow v1.0.90
[INFO] [stderr]   Downloaded gltf-json v1.4.1
[INFO] [stderr]   Downloaded bevy_diagnostic v0.10.1
[INFO] [stderr]   Downloaded bevy_pbr v0.10.1
[INFO] [stderr]   Downloaded bevy_scene v0.10.1
[INFO] [stderr]   Downloaded gltf-derive v1.4.1
[INFO] [stderr]   Downloaded sysinfo v0.28.4
[INFO] [stderr]   Downloaded bevy_animation v0.10.1
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded gltf v1.4.1
[INFO] [stderr]   Downloaded ogg v0.8.0
[INFO] [stderr]   Downloaded bevy_core_pipeline v0.10.1
[INFO] [stderr]   Downloaded bevy_audio v0.10.1
[INFO] [stderr]   Downloaded lewton v0.10.2
[INFO] [stderr]   Downloaded rodio v0.17.3
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.16
[INFO] [stderr]   Downloaded num_enum v0.7.3
[INFO] [stderr]   Downloaded num_enum_derive v0.7.3
[INFO] [stderr]   Downloaded oboe v0.5.0
[INFO] [stderr]   Downloaded oboe-sys v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8
[INFO] running `Command { std: "docker" "start" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", 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" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling proc-macro2 v1.0.88
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling libc v0.2.161
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling hashbrown v0.15.0
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling futures-lite v2.3.0
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling waker-fn v1.2.0
[INFO] [stderr]    Compiling fastrand v1.9.0
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling bevy_ptr v0.10.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling raw-window-handle v0.5.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling indexmap v2.6.0
[INFO] [stderr]    Compiling tracing-log v0.1.4
[INFO] [stderr]    Compiling crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling libloading v0.7.4
[INFO] [stderr]    Compiling syn v2.0.82
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling async-executor v1.13.1
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling uuid v1.11.0
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling anyhow v1.0.90
[INFO] [stderr]    Compiling allocator-api2 v0.2.18
[INFO] [stderr]    Compiling bevy_tasks v0.10.1
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling pp-rs v0.2.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling codespan-reporting v0.11.1
[INFO] [stderr]    Compiling hexf-parse v0.2.1
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling gpu-alloc v0.5.4
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling spirv v0.2.0+1.5.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]    Compiling sysinfo v0.28.4
[INFO] [stderr]    Compiling wgpu-types v0.15.2
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling notify v5.2.0
[INFO] [stderr]    Compiling glow v0.12.3
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling renderdoc-sys v0.7.1
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling flate2 v1.0.34
[INFO] [stderr]    Compiling fdeflate v0.3.5
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling twox-hash v1.6.3
[INFO] [stderr]    Compiling const_panic v0.2.10
[INFO] [stderr]    Compiling regex v1.11.0
[INFO] [stderr]    Compiling encase_derive_impl v0.5.0
[INFO] [stderr]    Compiling png v0.17.14
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling ruzstd v0.2.4
[INFO] [stderr]    Compiling ktx2 v0.3.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling xml-rs v0.8.22
[INFO] [stderr]    Compiling radsort v0.1.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling serde_json v1.0.132
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling ttf-parser v0.25.0
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling bytemuck_derive v1.8.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling accesskit v0.10.1
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling bevy_macro_utils v0.10.1
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling svg_fmt v0.4.3
[INFO] [stderr]    Compiling tinyvec v1.8.0
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling ogg v0.8.0
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]    Compiling guillotiere v0.6.2
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling rectangle-pack v0.4.2
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling bytemuck v1.19.0
[INFO] [stderr]    Compiling xi-unicode v0.3.0
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.10.1
[INFO] [stderr]    Compiling encase_derive v0.5.0
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling image v0.24.9
[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_encase_derive v0.10.1
[INFO] [stderr]    Compiling bevy_render_macros v0.10.1
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling taffy v0.3.19
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling ab_glyph v0.2.29
[INFO] [stderr]    Compiling glyph_brush_layout v0.2.4
[INFO] [stderr]    Compiling accesskit_winit v0.12.4
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling smallvec v1.13.2
[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 tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling gpu-descriptor v0.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling gilrs-core v0.5.15
[INFO] [stderr]    Compiling bevy_utils v0.10.1
[INFO] [stderr]    Compiling gltf-json v1.4.1
[INFO] [stderr]    Compiling naga v0.11.1
[INFO] [stderr]    Compiling rodio v0.17.3
[INFO] [stderr]    Compiling bevy_math v0.10.1
[INFO] [stderr]    Compiling hexasphere v8.1.0
[INFO] [stderr]    Compiling encase v0.5.0
[INFO] [stderr]    Compiling bevy_mikktspace v0.10.1
[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_log v0.10.1
[INFO] [stderr]    Compiling bevy_core 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 wgpu v0.15.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 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: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 resolution: (800.0, 600.0).into(),
[INFO] [stdout]    |                              ^^^^^ help: explicitly specify the type as `f32`: `800.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[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 2m 17s
[INFO] running `Command { std: "docker" "inspect" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", 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: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 resolution: (800.0, 600.0).into(),
[INFO] [stdout]    |                              ^^^^^ help: explicitly specify the type as `f32`: `800.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[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: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 resolution: (800.0, 600.0).into(),
[INFO] [stdout]    |                              ^^^^^ help: explicitly specify the type as `f32`: `800.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[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 2.43s
[INFO] running `Command { std: "docker" "inspect" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stderr]  --> src/distance_joint.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::cuboid::Cuboid;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CuboidBundle`
[INFO] [stderr]  --> src/rendering.rs:3:29
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stderr]   |                             ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `maintain_rope_constraints`
[INFO] [stderr]  --> src/rendering.rs:6:63
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints, add_constraint};
[INFO] [stderr]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/simulation.rs:21:17
[INFO] [stderr]    |
[INFO] [stderr] 21 |         else if (physics.is_fixed) {
[INFO] [stderr]    |                 ^                ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 21 -         else if (physics.is_fixed) {
[INFO] [stderr] 21 +         else if physics.is_fixed {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cuboid::Cuboid`
[INFO] [stderr]  --> src/rope_constraint.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::cuboid::Cuboid;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CuboidBundle` and `Cuboid`
[INFO] [stderr]   --> src/main.rs:16:21
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::cuboid::{Cuboid, CuboidBundle};
[INFO] [stderr]    |                     ^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `maintain_distance_joints`
[INFO] [stderr]   --> src/main.rs:17:44
[INFO] [stderr]    |
[INFO] [stderr] 17 | use crate::distance_joint::{DistanceJoint, maintain_distance_joints};
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PhysicsBody`
[INFO] [stderr]   --> src/main.rs:18:43
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::physics::{physics_step_system, PhysicsBody};
[INFO] [stderr]    |                                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `update_rendering`
[INFO] [stderr]   --> src/main.rs:20:53
[INFO] [stderr]    |
[INFO] [stderr] 20 | use crate::rendering::{setup_rendering_environment, update_rendering};
[INFO] [stderr]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RopeConstraint`
[INFO] [stderr]   --> src/main.rs:21:30
[INFO] [stderr]    |
[INFO] [stderr] 21 | use crate::rope_constraint::{RopeConstraint, RopeConstraints, maintain_rope_constraints};
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]   --> src/main.rs:34:30
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 resolution: (800.0, 600.0).into(),
[INFO] [stderr]    |                              ^^^^^ help: explicitly specify the type as `f32`: `800.0_f32`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/distance_joint.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     mut query: Query<(Entity, &DistanceJoint, &Transform, &PhysicsBody)>,
[INFO] [stderr]    |     ----^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/distance_joint.rs:36:18
[INFO] [stderr]    |
[INFO] [stderr] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stderr]    |                  ----^^^^^
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/distance_joint.rs:36:40
[INFO] [stderr]    |
[INFO] [stderr] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stderr]    |                                        ----^^^^^^^
[INFO] [stderr]    |                                        |
[INFO] [stderr]    |                                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `physics_query`
[INFO] [stderr]   --> src/distance_joint.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     physics_query: Query<&PhysicsBody>
[INFO] [stderr]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics_query`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entity`
[INFO] [stderr]   --> src/distance_joint.rs:36:10
[INFO] [stderr]    |
[INFO] [stderr] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stderr]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transform`
[INFO] [stderr]   --> src/distance_joint.rs:36:29
[INFO] [stderr]    |
[INFO] [stderr] 36 |     for (entity, mut joint, transform, mut physics) in query.iter() {
[INFO] [stderr]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/physics.rs:87:18
[INFO] [stderr]    |
[INFO] [stderr] 87 |     for (entity, mut transform, mut physics) in query.iter_mut() {
[INFO] [stderr]    |                  ----^^^^^^^^^
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering.rs:122:10
[INFO] [stderr]     |
[INFO] [stderr] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stderr]     |          ----^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering.rs:122:42
[INFO] [stderr]     |
[INFO] [stderr] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stderr]     |                                          ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                          |
[INFO] [stderr]     |                                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transform`
[INFO] [stderr]    --> src/rendering.rs:122:10
[INFO] [stderr]     |
[INFO] [stderr] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stderr]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `physics`
[INFO] [stderr]    --> src/rendering.rs:122:25
[INFO] [stderr]     |
[INFO] [stderr] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stderr]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_physics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cuboid`
[INFO] [stderr]    --> src/rendering.rs:122:34
[INFO] [stderr]     |
[INFO] [stderr] 122 |     for (mut transform, physics, cuboid, mut material_handle) in query.iter_mut() {
[INFO] [stderr]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuboid`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `material`
[INFO] [stderr]    --> src/rendering.rs:127:13
[INFO] [stderr]     |
[INFO] [stderr] 127 |         let material = materials.get_mut(&material_handle).unwrap();
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mass`
[INFO] [stderr]   --> src/simulation.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |         let mass = physics.mass;  // 先复制质量到局部变量
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/rope_constraint.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     mut constraints: ResMut<RopeConstraints>,
[INFO] [stderr]    |     ----^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Cuboid` is never constructed
[INFO] [stderr]  --> src/cuboid.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Cuboid {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cuboid.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Cuboid {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 15 |     // 添加构造函数
[INFO] [stderr] 16 |     pub fn new(size: Vec3, position: Vec3, mass: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CuboidBundle` is never constructed
[INFO] [stderr]   --> src/cuboid.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct CuboidBundle {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cuboid.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl CuboidBundle {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 30 |     pub fn new(cuboid: Cuboid, mesh: Handle<Mesh>, material: Handle<StandardMaterial>, transform: Transform) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `body_a`, `body_b`, `min_distance`, and `max_distance` are never read
[INFO] [stderr]   --> src/distance_joint.rs:9:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct DistanceJoint {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr]  9 |     pub body_a: Entity, // 连接的第一个实体
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 10 |     pub body_b: Entity, // 连接的第二个实体
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 11 |     pub min_distance: f32, // 最小距离
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 12 |     pub max_distance: f32, // 最大距离
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/distance_joint.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl DistanceJoint {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 16 |     pub fn new(body_a: Entity, body_b: Entity, min_distance: f32, max_distance: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `maintain_distance_joints` is never used
[INFO] [stderr]   --> src/distance_joint.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn maintain_distance_joints(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `new_with_velocity` are never used
[INFO] [stderr]   --> src/physics.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl PhysicsBody {
[INFO] [stderr]    | ---------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn new(mass: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn new_with_velocity(mass: f32, initial_velocity: Vec3) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_rendering` is never used
[INFO] [stderr]    --> src/rendering.rs:118:8
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub fn update_rendering(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/rope_constraint.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl RopeConstraint {
[INFO] [stderr]    | ------------------- associated function in this implementation
[INFO] [stderr] 18 |     pub fn new(body_a: Entity, body_b: Entity, max_distance: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `new_PhysicsBody` should have a snake case name
[INFO] [stderr]   --> src/physics.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn new_PhysicsBody(mass: f32, initial_velocity: Vec3, initial_force: Vec3, initial_predicted_position: Vec3, while_fixed: bo...
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_physics_body`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust_distance_joint_simulator` (bin "rust_distance_joint_simulator") generated 37 warnings (run `cargo fix --bin "rust_distance_joint_simulator" -p rust_distance_joint_simulator` to apply 26 suggestions)
[INFO] [stderr] warning: `rust_distance_joint_simulator` (bin "rust_distance_joint_simulator" test) generated 37 warnings (37 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_distance_joint_simulator-efb63794b92e2935)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-4ddd6b722ffc97da)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/unit_tests.rs (/opt/rustwide/target/debug/deps/unit_tests-eecb74f297bd0f9e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8", kill_on_drop: false }`
[INFO] [stdout] a2e9cc4723b5ce9375ee74d2b1b52b4c4b2b54e053001e8daa55abd4fde041f8
