Description
Bevy version
Operating system & version
Windows 10
What you did
I wanted to remove a QuerySet that seemed unneeded, but then Bevy Panicked: https://github.com/bevyengine/bevy/blob/main/crates/bevy_render/src/camera/camera.rs#L70-L73
I then reduced it to this minimal example:
use bevy::prelude::*;
fn main() {
App::build().add_system(test_system.system()).run();
}
struct TestStruct;
fn test_system(
mut query1: Query<(Entity, &mut TestStruct)>,
query2: Query<Entity, Added<TestStruct>>,
) {
}
What you expected to happen
The minimum example should not Panic.
What actually happened
It Panicked, while claiming the system would break Rust's mutability rules, which it cant:
thread 'main' panicked at 'Query<bevy_ecs::entity::Entity, bevy_ecs::query::filter::Added<hello_world::TestStruct>> in system &hello_world::test_system accesses component(s) hello_world::TestStruct in a way that conflicts with a previous system parameter. Allowing this would break Rust's mutability rules. Consider merging conflicting Queries into a QuerySet.', crates\bevy_ecs\src\system\system_param.rs:144:5
Additional information
Bisecting the Repo, the example Panics after #1525 was merged.