While playing around with the latest instalment of ArcadeRS I made an error in specifying the dependency versions, which led to multiple versions of
sdl2 being pulled in by the
sdl2_mixer dependencies (0.15 and 0.16 I think).
Now sdl2_image defines a trait called
LoadTexture and implements it on sdl2’s
Renderer, so that you can say
renderer.load_texture(...). The code is using this method, and after the dependency update stopped working with (other errors appeared, but were real API changes and fixable)
error: the trait `sdl2_image::LoadTexture` is not implemented for the type `sdl2::render::Renderer<'_>` [E0277]
which is very confusing until you find out that there are two
Renderers in your build. (
cargo list --tree helps enormously once you know what to look for.)
rustc have any way of recognizing this situation, and displaying some hint to the user about the same type coming from multiple crate versions?