bevy/crates/bevy_ecs/src
Alice Cecile 89c02ef296 Fix system param validation for piped systems (#18785)
# Objective

- Piped systems are an edge case that we missed when reworking system
parameter validation.
- Fixes #18755.

## Solution

- Validate the parameters for both systems, ~~combining the errors if
both failed validation~~ by simply using an early out.
- ~~Also fix the same bug for combinator systems while we're here.~~

## Testing

I've added a large number of tests checking the behavior under various
permutations. These are separate tests, rather than one mega test
because a) it's easier to track down bugs that way and b) many of these
are `should_panic` tests, which will halt the evaluation of the rest of
the test!

I've also added a test for exclusive systems being pipeable because we
don't have one and I was very surprised that that works!

---------

Co-authored-by: Chris Russell <8494645+chescock@users.noreply.github.com>
2025-04-11 08:59:57 +02:00
..
entity Add #[deprecated(since = "0.16.0", ...)] to items missing it (#18702) 2025-04-03 21:46:46 +02:00
error Use Display instead of Debug in the default error handler (#18629) 2025-03-31 22:33:28 +02:00
event Improve error message for missing events (#18683) 2025-04-03 21:45:43 +02:00
identifier bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
observer Change with_related to work with a Bundle and added with_relationships method (#18699) 2025-04-10 01:19:33 +02:00
query use entity set collections type aliases instead of defaults (#18695) 2025-04-03 21:45:44 +02:00
reflect Replace VisitEntities with MapEntities (#18432) 2025-03-24 00:09:29 +01:00
relationship Change with_related to work with a Bundle and added with_relationships method (#18699) 2025-04-10 01:19:33 +02:00
schedule Fix system param validation for piped systems (#18785) 2025-04-11 08:59:57 +02:00
storage Queued component registration (#18173) 2025-03-10 21:46:27 +00:00
system Fix system param validation for piped systems (#18785) 2025-04-11 08:59:57 +02:00
world Add #[deprecated(since = "0.16.0", ...)] to items missing it (#18702) 2025-04-03 21:46:46 +02:00
archetype.rs Fix clippy::let_and_return in bevy_ecs (#18481) 2025-03-24 00:09:30 +01:00
batching.rs Fix *most* clippy lints (#15906) 2024-10-14 20:52:35 +00:00
bundle.rs Fix clippy::let_and_return in bevy_ecs (#18481) 2025-03-24 00:09:30 +01:00
change_detection.rs Expose the added tick for change detection, both getting and setting. (#18746) 2025-04-09 00:21:42 +02:00
component.rs Get names of queued components (#18451) 2025-04-03 21:45:42 +02:00
entity_disabling.rs bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
hierarchy.rs Change with_related to work with a Bundle and added with_relationships method (#18699) 2025-04-10 01:19:33 +02:00
intern.rs Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
label.rs do_not_recommend interned Labels (#17950) 2025-02-25 23:46:21 +00:00
lib.rs Rename EntityBorrow/TrustedEntityBorrow to ContainsEntity/EntityEquivalent (#18470) 2025-03-30 10:24:00 +02:00
name.rs bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
removal_detection.rs bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
resource.rs Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
spawn.rs Change with_related to work with a Bundle and added with_relationships method (#18699) 2025-04-10 01:19:33 +02:00
traversal.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00