Skip to content

0.16 fails to build breakout example due to bevy_mikktspace not compiling on Rust 1.89 #20475

@Blanen

Description

@Blanen

Bevy version

0.16.1

[Optional] Relevant system information

Linux ubuntu 24.04
If you cannot get Bevy to build or run on your machine, please include:
Lastest stable 1.89 rust and also tried nightly

What you did

Tried the example on latest bevy version

What went wrong

error: implicit autoref creates a reference to the dereference of a raw pointer
   --> crates/bevy_mikktspace/src/generated.rs:759:25
    |
759 |         bStillSame = if (*pg1).pTriMembers[i] == (*pg2).pTriMembers[i] {
    |                         ^^---^^^^^^^^^^^^^^^^
    |                           |
    |                           this raw pointer has type `*const SSubGroup`
    |
    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
note: autoref is being applied to this expression, resulting in: `&Vec<i32>`
   --> crates/bevy_mikktspace/src/generated.rs:759:25
    |
759 |         bStillSame = if (*pg1).pTriMembers[i] == (*pg2).pTriMembers[i] {
    |                         ^^^^^^^^^^^^^^^^^^
    = note: `#[deny(dangerous_implicit_autorefs)]` on by default
help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
    |
759 |         bStillSame = if (&(*pg1).pTriMembers)[i] == (*pg2).pTriMembers[i] {
    |                         ++                  +

error: implicit autoref creates a reference to the dereference of a raw pointer
   --> crates/bevy_mikktspace/src/generated.rs:759:50
    |
759 |         bStillSame = if (*pg1).pTriMembers[i] == (*pg2).pTriMembers[i] {
    |                                                  ^^---^^^^^^^^^^^^^^^^
    |                                                    |
    |                                                    this raw pointer has type `*const SSubGroup`
    |
    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
note: autoref is being applied to this expression, resulting in: `&Vec<i32>`
   --> crates/bevy_mikktspace/src/generated.rs:759:50
    |
759 |         bStillSame = if (*pg1).pTriMembers[i] == (*pg2).pTriMembers[i] {
    |                                                  ^^^^^^^^^^^^^^^^^^
help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
    |
759 |         bStillSame = if (*pg1).pTriMembers[i] == (&(*pg2).pTriMembers)[i] {
    |                                                  ++                  +

error: could not compile `bevy_mikktspace` (lib) due to 2 previous errors

Additional information

Issue is resolved on main branch

Metadata

Metadata

Assignees

Labels

A-MathFundamental domain-agnostic mathematical operationsC-BugAn unexpected or incorrect behaviorP-HighThis is particularly urgent, and deserves immediate attentionS-Needs-DesignThis issue requires design work to think about how it would best be accomplished

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions