bevy_reflect: Update internal docs regarding anonymous function type names #14666
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
As pointed out by @SkiFire13 on Discord, I was incorrect in #14641 regarding the type name of anonymous functions. I had stated that they will return something like
fn(i32, i32) -> i32, but this is wrong. They actually behave like closures (despite not technically being closures) and return something more likefoo::bar::{{closure}}.This isn't a major issue because the reasoning behind #14641 still stands. However, the internal documentation should probably be updated so future contributors don't believe the lies I left behind.
Solution
Updated the internal documentation for
create_infoto reflect the actual type name of an anonymous function.In that same module, I also added a test for function pointers and updated all tests to include sanity checks for the
std::any::type_nameof each category of callable.Testing
You can test locally by running: