bevy/crates/bevy_ecs/macros/src
SpecificProtagonist 5f1e114209
Descriptive error message for circular required components recursion (#16648)
# Objective

Fixes #16645

## Solution

Keep track of components in callstack when registering required
components.

## Testing

Added a test checking that the error fires.

---

## Showcase

```rust
#[derive(Component, Default)]
#[require(B)]
struct A;

#[derive(Component, Default)]
#[require(A)]
struct B;
World::new().spawn(A);
```

```
thread 'main' panicked at /home/vj/workspace/rust/bevy/crates/bevy_ecs/src/component.rs:415:13:
Recursive required components detected: A → B → A
```

---------

Co-authored-by: Chris Russell <8494645+chescock@users.noreply.github.com>
2024-12-11 01:26:35 +00:00
..
component.rs Descriptive error message for circular required components recursion (#16648) 2024-12-11 01:26:35 +00:00
lib.rs Move required components doc to type doc (#16575) 2024-12-03 19:45:20 +00:00
query_data.rs bevy_ecs: Replace panics in QueryData derive compile errors (#15691) 2024-10-07 16:30:34 +00:00
query_filter.rs Make QueryFilter an unsafe trait (#14790) 2024-09-09 15:23:12 +00:00
states.rs Computed State & Sub States (#11426) 2024-05-02 19:36:23 +00:00
world_query.rs Allow to expect (adopted) (#15301) 2024-09-20 19:16:42 +00:00