-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - ParamSet
for conflicting SystemParam
:s
#2765
Conversation
will have to fix this bug first... |
This looks great! Thanks a ton for getting this working. I'm pretty firmly of the opinion that we should merge this ASAP for 0.6 (ping @cart), and fully remove |
One last thought: if and when this is merged, we should make an issue to include an example for event reading and writing in the same system using this. I wouldn't bother adding it to this PR; it's an excellent |
I removed QuerySet in the latest commit, yay or nay? |
I'd like to say that I'm looking forward to this pr being merged more than anything. If I may, I'd like to ping @cart just this once, as I truly need this. And fixing query set seems very important. |
I think this might not be sound when used with multiple Queries. QuerySet<
Query<&Transform>,
Query<&mut Transform>,
> But the changes in #2605 made it necessary to now write it as: QuerySet<
QueryState<&Transform>,
QueryState<&mtu Transform>,
> The changes of this PR would then reopen that soundness hole: ParamSet<
Query<&Transform>,
Query<&mut Transform>,
> |
@MinerSebas It looks like the tests added in #2605 have been converted and pass successfully (i.e. fail to compile). Was there some other concern that wasn't covered by the tests? |
I was just going by PR descriptions and didn't check for Tests. |
I've just merged this PR into my fork so I could try it out. I'm in the process of deriving I haven't looked over the PR yet, but this works on my codebase so far, so that's something. Maybe this is obvious, but it also allows So I'm also depending on this feature, thanks. |
@bilsen, I'd like to prioritize getting this PR merged. Do you have time to merge in Cart's changes, or would you like me to help in some way? |
@alice-i-cecile I will be able to merge it in tomorrow, exams are done now. |
I did a merge, It was difficult to get the better error reporting without knowledge of the access of specific parameters, so I left it as it were in Cart's branch |
ah it fails because there is no ParamSet in docs.rs. Should I add that link when a new release is made? |
Yes please. For now, we could link to the new dev-docs site though; check #dev-announcements for the link. |
But it still won't work until this is merged into main right? |
Ugh right. Okay, don't worry about it for now then. |
bors try |
tryMerge conflict. |
Seems to work |
bors r+ |
# Objective Add a system parameter `ParamSet` to be used as container for conflicting parameters. ## Solution Added two methods to the SystemParamState trait, which gives the access used by the parameter. Did the implementation. Added some convenience methods to FilteredAccessSet. Changed `get_conflicts` to return every conflicting component instead of breaking on the first conflicting `FilteredAccess`. Co-authored-by: bilsen <40690317+bilsen@users.noreply.github.com>
ParamSet
for conflicting SystemParam
:sParamSet
for conflicting SystemParam
:s
# Objective Add a system parameter `ParamSet` to be used as container for conflicting parameters. ## Solution Added two methods to the SystemParamState trait, which gives the access used by the parameter. Did the implementation. Added some convenience methods to FilteredAccessSet. Changed `get_conflicts` to return every conflicting component instead of breaking on the first conflicting `FilteredAccess`. Co-authored-by: bilsen <40690317+bilsen@users.noreply.github.com>
# Objective Add a system parameter `ParamSet` to be used as container for conflicting parameters. ## Solution Added two methods to the SystemParamState trait, which gives the access used by the parameter. Did the implementation. Added some convenience methods to FilteredAccessSet. Changed `get_conflicts` to return every conflicting component instead of breaking on the first conflicting `FilteredAccess`. Co-authored-by: bilsen <40690317+bilsen@users.noreply.github.com>
Objective
Add a system parameter
ParamSet
to be used as container for conflicting parameters.Solution
Added two methods to the SystemParamState trait, which gives the access used by the parameter. Did the implementation. Added some convenience methods to FilteredAccessSet. Changed
get_conflicts
to return every conflicting component instead of breaking on the first conflictingFilteredAccess
.