Remove upcasting methods + Cleanup interned label code#18984
Remove upcasting methods + Cleanup interned label code#18984alice-i-cecile merged 7 commits intobevyengine:mainfrom
Conversation
|
Oops, I definitely did break something :P |
|
It looks like your PR is a breaking change, but you didn't provide a migration guide. Please review the instructions for writing migration guides, then expand or revise the content in the migration guides directory to reflect your changes. |
| } | ||
|
|
||
| fn dyn_hash(&self, mut state: &mut dyn Hasher) { | ||
| TypeId::of::<Self>().hash(&mut state); |
There was a problem hiding this comment.
Huh, SystemSet::dyn_hash hashed the type id followed by the value, while DynHash::dyn_hash hashes the value followed by the type id. It's good that this is only implemented once now!
There was a problem hiding this comment.
I had completely overlooked the different ordering! Different hash implementations could produce some really cursed bugs. Hopefully no one hits that in the meantime 🙏
NthTensor
left a comment
There was a problem hiding this comment.
Migration guide looks good.
Hiya!
Objective
Notes
bevy_reflect, as there appears to be some complexity related to remote type reflection.Testing
I ran the
breakoutexample to check that the hashing/eq implementations of the labels are still correct.