3 ms·
That's just not true. If the user has defined on the struct and a trait also has the method name, the struct's impl is used. Multiple traits can have methods na
by sophacles 2y ago
That's just not true. If the user has defined on the struct and a trait also has the method name, the struct's impl is used. Multiple traits can have methods named the same too.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ff49076bd187d56c6980d2d0881906f8 https://play.rust-lang.org/?version=stable&mode=debug&editio...
- School-Cotton 2y agoMy 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.
- sophacles 2y agoLook at the linked code - it literally shows what happens in that case. What happens is not what you're saying.
- School-Cotton 2y agoThis code compiles on 1.81 and fails to compile on 1.82: https://godbolt.org/z/9GbbMKjcf https://godbolt.org/z/9GbbMKjcf
- estebank 2y agoYou 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).