dimforge / rapier

2D and 3D physics engines focused on performance.
https://rapier.rs
Apache License 2.0
3.77k stars 235 forks source link

Build error after 0.24.0 update #585

Closed V1ammer closed 5 months ago

V1ammer commented 5 months ago

After updating bevy_rapier3d to version 0.24.0 (and especially after this PR #579), a project written in bevy stopped building on one of my computers

Error log:

  Compiling bevy v0.12.1  
  Compiling bevy_egui v0.24.0  
  Compiling rapier3d v0.18.0  
  Compiling bevy-inspector-egui v0.22.1  
error[E0446]: crate-private type `SolverConstraintsSet<contact_constraints_set::ContactConstraintTypes>` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/contact_constraint/contact_constraints_set.rs:87:1  
  |  
87 | pub type ContactConstraintsSet = SolverConstraintsSet<ContactConstraintTypes>;  
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type  
  |  
 ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:39:1  
  |  
39 | pub(crate) struct SolverConstraintsSet<Constraints: ConstraintTypes> {  
  | -------------------------------------------------------------------- `SolverConstraintsSet<contact_constraints_set::ContactConstraintTypes>` declared as crate-private  

error[E0446]: crate-private type `contact_constraints_set::ContactConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/contact_constraint/contact_constraints_set.rs:87:1  
  |  
65 | pub(crate) struct ContactConstraintTypes;  
  | ---------------------------------------- `contact_constraints_set::ContactConstraintTypes` declared as crate-private  
...  
87 | pub type ContactConstraintsSet = SolverConstraintsSet<ContactConstraintTypes>;  
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type  

error[E0446]: crate-private type `SolverBody` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_constraint_builder.rs:51:5  
  |  
51 | /     pub fn update(  
52 | |         &self,  
53 | |         params: &IntegrationParameters,  
54 | |         bodies: &[SolverBody],  
55 | |         out: &mut [JointTwoBodyConstraint<Real, 1>],  
56 | |     ) {  
  | |_____^ can't leak crate-private type  
  |  
 ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
  |  
9  |   pub(crate) struct SolverBody {  
  |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_constraint_builder.rs:148:5  
   |  
148 | /     pub fn update(  
149 | |         &mut self,  
150 | |         params: &IntegrationParameters,  
151 | |         bodies: &[SolverBody],  
152 | |         out: &mut [JointTwoBodyConstraint<SimdReal, SIMD_WIDTH>],  
153 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_constraint_builder.rs:227:5  
   |  
227 | /     pub fn update(  
228 | |         &self,  
229 | |         params: &IntegrationParameters,  
230 | |         bodies: &[SolverBody],  
231 | |         out: &mut [JointOneBodyConstraint<Real, 1>],  
232 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_constraint_builder.rs:313:5  
   |  
313 | /     pub fn update(  
314 | |         &self,  
315 | |         params: &IntegrationParameters,  
316 | |         bodies: &[SolverBody],  
317 | |         out: &mut [JointOneBodyConstraint<SimdReal, SIMD_WIDTH>],  
318 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverConstraintsSet<any_joint_constraint::JointConstraintTypes>` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_constraints_set.rs:28:1  
  |  
28 | pub type JointConstraintsSet = SolverConstraintsSet<JointConstraintTypes>;  
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type  
  |  
 ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:39:1  
  |  
39 | pub(crate) struct SolverConstraintsSet<Constraints: ConstraintTypes> {  
  | -------------------------------------------------------------------- `SolverConstraintsSet<any_joint_constraint::JointConstraintTypes>` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_generic_constraint_builder.rs:147:5  
   |  
147 | /     pub fn update(  
148 | |         &self,  
149 | |         params: &IntegrationParameters,  
150 | |         multibodies: &MultibodyJointSet,  
...   |  
153 | |         out: &mut [JointGenericTwoBodyConstraint],  
154 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_generic_constraint_builder.rs:240:5  
   |  
240 | /     pub fn update(  
241 | |         &self,  
242 | |         params: &IntegrationParameters,  
243 | |         multibodies: &MultibodyJointSet,  
...   |  
246 | |         out: &mut [JointGenericOneBodyConstraint],  
247 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0446]: crate-private type `SolverBody` in public interface  
  --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/joint_constraint/joint_generic_constraint_builder.rs:407:5  
   |  
407 | /     pub fn update(  
408 | |         &self,  
409 | |         params: &IntegrationParameters,  
410 | |         multibodies: &MultibodyJointSet,  
...   |  
413 | |         out: &mut [JointGenericOneBodyConstraint],  
414 | |     ) {  
   | |_____^ can't leak crate-private type  
   |  
  ::: /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_body.rs:9:1  
   |  
9   |   pub(crate) struct SolverBody {  
   |   ---------------------------- `SolverBody` declared as crate-private  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:28:1  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
28 | pub enum AnyConstraintMut<'a, Constraints: ConstraintTypes> {  
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:29:13  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
29 |     OneBody(&'a mut Constraints::OneBody),  
  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:30:15  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
30 |     TwoBodies(&'a mut Constraints::TwoBodies),  
  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:31:20  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
31 |     GenericOneBody(&'a mut Constraints::GenericOneBody),  
  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:32:22  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
32 |     GenericTwoBodies(&'a mut Constraints::GenericTwoBodies),  
  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:34:17  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
34 |     SimdOneBody(&'a mut Constraints::SimdOneBody),  
  |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

error[E0445]: crate-private trait `ConstraintTypes` in public interface  
 --> /home/killua/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:36:19  
  |  
5  | pub(crate) trait ConstraintTypes {  
  | -------------------------------- `ConstraintTypes` declared as crate-private  
...  
36 |     SimdTwoBodies(&'a mut Constraints::SimdTwoBodies),  
  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private trait  

Some errors have detailed explanations: E0445, E0446.  
For more information about an error, try `rustc --explain E0445`.  
error: could not compile `rapier3d` (lib) due to 17 previous errors  
warning: build failed, waiting for other jobs to finish...

PC: OS: Kubuntu 23.10 x86_64 Kernel: 6.5.0-15-generic

V1ammer commented 5 months ago

Sorry, I just forgot to update the rust from 1.73 to 1.75