Comment by umanwizard
10 months ago
My comment might have been technically wrong as originally stated; I’ve since edited to try to correct/clarify.
What I really meant is the case where a method is added to a standard struct impl that conflicts with a user-defined trait.
For example, you might have implemented some trait OptionExt on Option with a method called foo. If now a method called foo is added to the standard option struct, it will conflict.
Look at the linked code - it literally shows what happens in that case. What happens is not what you're saying.
This code compiles on 1.81 and fails to compile on 1.82: https://godbolt.org/z/9GbbMKjcf
You are always free to use fully-qualified paths to protect yourself from any change in your dependencies (including std) that would break inference (by making more than one method resolve).