bevy/crates
arunke 7dd56862a4
Fix duplicate asset loader registration warning (#17105)
# Objective

The original fix (bevyengine/bevy#11870) did not actually implement the
described logic. It checked if there were independently multiple loaders
for a given asset type and multiple loaders for a given extension.
However, this did not handle the case where those loaders were not the
same. For example, there could be a loader for type `Foo` and extension
`.foo`. Anther loader could exist for type `Bar` but extension `.bar`.
If a third loader was added for type `Foo` but extension `.bar`, the
warning would have been incorrectly logged.

## Solution

Instead of independently checking to see if there are preexisting
loaders for both the extension and type, look up the indices of the
loaders for the type in question. Then check to see if the loaders
registered for the extensions has any overlap. Only log if there are
loaders that fit this criteria.

## Testing

Ran CI tests. Locally tested the situation describe in the objective
section for the normal `App::init_asset_loader` flow. I think testing
could be done on the pre-registration flow for loaders still. I tested
on Windows, but the changes should not be affected by platform.
2025-01-06 18:56:05 +00:00
..
bevy_a11y Update all previously-merged #![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] attributes to include a reason field pointing to the tracking issue (#17136) 2025-01-06 05:40:08 +00:00
bevy_animation Update all previously-merged #![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] attributes to include a reason field pointing to the tracking issue (#17136) 2025-01-06 05:40:08 +00:00
bevy_app Fix depth_bias and build errors on less capable platforms (#17079) 2025-01-06 18:39:08 +00:00
bevy_asset Fix duplicate asset loader registration warning (#17105) 2025-01-06 18:56:05 +00:00
bevy_audio Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_color Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_core_pipeline Anamorphic Bloom (#17096) 2025-01-06 18:43:21 +00:00
bevy_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_dev_tools Fix depth_bias and build errors on less capable platforms (#17079) 2025-01-06 18:39:08 +00:00
bevy_diagnostic Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_dylib Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_ecs Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_encase_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gilrs Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gizmos Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gltf Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_hierarchy Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_image Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_input Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_input_focus Add basic directional (gamepad) navigation for UI (and non-UI) (#17102) 2025-01-06 18:51:44 +00:00
bevy_internal Fix depth_bias and build errors on less capable platforms (#17079) 2025-01-06 18:39:08 +00:00
bevy_log Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_macro_utils Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_math Add basic directional (gamepad) navigation for UI (and non-UI) (#17102) 2025-01-06 18:51:44 +00:00
bevy_mesh Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_mikktspace Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_pbr Fix depth_bias and build errors on less capable platforms (#17079) 2025-01-06 18:39:08 +00:00
bevy_picking Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_ptr Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_reflect Fix depth_bias and build errors on less capable platforms (#17079) 2025-01-06 18:39:08 +00:00
bevy_remote Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_render Introduce two-level bins for multidrawable meshes. (#16898) 2025-01-06 18:34:40 +00:00
bevy_scene Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_sprite Introduce two-level bins for multidrawable meshes. (#16898) 2025-01-06 18:34:40 +00:00
bevy_state Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_tasks Update all previously-merged #![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)] attributes to include a reason field pointing to the tracking issue (#17136) 2025-01-06 05:40:08 +00:00
bevy_text Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_time Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_transform Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_ui default UI camera extraction fix (#17100) 2025-01-06 18:49:18 +00:00
bevy_utils Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_window Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_winit Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00