diff --git a/crates/bevy_ecs/src/query/fetch.rs b/crates/bevy_ecs/src/query/fetch.rs index f44efcbd0b55a..843b209ce1e2f 100644 --- a/crates/bevy_ecs/src/query/fetch.rs +++ b/crates/bevy_ecs/src/query/fetch.rs @@ -1811,6 +1811,7 @@ unsafe impl<'__w, T: Component> QueryData for Mut<'__w, T> { /// # use bevy_ecs::prelude::*; /// # use bevy_ecs::query::QueryData; /// # use bevy_ecs::query::DataSet; +/// # use bevy_ecs::query::QueryItem; /// # /// # #[derive(Component)] /// # struct Transform; @@ -1825,7 +1826,7 @@ unsafe impl<'__w, T: Component> QueryData for Mut<'__w, T> { /// impl Behavior for Run { /// type Data = &'static mut Transform; /// -/// fn update(&mut self, data: &mut Transform) { +/// fn update(&mut self, data: &mut QueryItem<'_, Self::Data>) { /// // Do something... /// } /// } @@ -1835,7 +1836,7 @@ unsafe impl<'__w, T: Component> QueryData for Mut<'__w, T> { /// impl Behavior for Jump { /// type Data = &'static mut Transform; /// -/// fn update(&mut self, data: &mut Transform) { +/// fn update(&mut self, data: &mut QueryItem<'_, Self::Data>) { /// // Do something different... /// } /// } diff --git a/crates/bevy_ecs/src/system/mod.rs b/crates/bevy_ecs/src/system/mod.rs index dd6a950f72a8e..ca6a59f058b02 100644 --- a/crates/bevy_ecs/src/system/mod.rs +++ b/crates/bevy_ecs/src/system/mod.rs @@ -320,7 +320,7 @@ mod tests { component::{Component, Components, Tick}, entity::{Entities, Entity}, prelude::{AnyOf, EntityRef}, - query::{Added, Changed, Or, With, Without}, + query::{Added, Changed, Or, With, Without, DataSet}, removal_detection::RemovedComponents, schedule::{ apply_deferred, common_conditions::resource_exists, Condition, IntoSystemConfigs, @@ -810,6 +810,32 @@ mod tests { run_system(&mut world, sys); } + + #[test] + fn data_set_system() { + fn sys(mut _query: Query>) {} + let mut world = World::default(); + run_system(&mut world, sys); + } + + #[test] + #[should_panic] + fn conflicting_query_with_data_set_system() { + fn sys(_query_1: Query<&mut A>, _query_2: Query>) {} + + let mut world = World::default(); + run_system(&mut world, sys); + } + + #[test] + #[should_panic] + fn conflicting_data_sets_system() { + fn sys(_query_1: Query>, _query_2: Query>) {} + + let mut world = World::default(); + run_system(&mut world, sys); + } + #[derive(Default, Resource)] struct BufferRes { _buffer: Vec,