Skip to content

Make reflect_partial_eq return more accurate results #5204

@MrGVSV

Description

@MrGVSV

What problem does this solve or what need does it fill?

Currently, all ***_partial_eq helper methods do something like:

if let Some(false) | None = field_value.reflect_partial_eq(value) {
return Some(false);
}

If field_value.reflect_partial_eq(value) returned None, it makes more sense for the entire function to return None as this would suggest to the user that the comparison didn't just fail, but couldn't even be performed.

However, this is not currently done and instead the functions just return Some(false).

What solution would you like?

  • Update the following code to return None on a matched None:
  • Additionally, doc comments may need to be updated to reflect this change (or at least indicate why a None value might be returned)

What alternative(s) have you considered?

Not doing this. Most usages of these functions and reflect_partial_eq itself use unwrap_or_default() anyways, so they would not be affected by such a change. However, adding this in allows us to give a bit more info to the users who want it.

Additional context

Originally brought to attention by @nicopap in #4761 (comment).

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-ReflectionRuntime information about typesC-UsabilityA targeted quality-of-life change that makes Bevy easier to useD-TrivialNice and easy! A great choice to get started with Bevy

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions