Yeah, that probably would've worked with type inference. Like most features that other languages have and Rust doesn't, it was discussed before:
According to the triage report, it was uneventfully postponed.
I suppose the main reason it never happened, at least based on searching the old ML archives for mentions of the word "overload", is just lack of demand. I can't find anyone beyond this RFC that's asking for arity-based overloading, compared to the way there's always someone expressing a desire for full-blown function overloading every couple years.
- [rust-dev] Functions overloading 2012
- [rust-dev] std::num::pow() is inadequate / language concepts 2014
- Better C++ interoperability - #28 by Riateche - internals - Rust Internals 2016
- Justification for Rust not Supporting Function Overloading (directly) - Rust Internals 2018
- Overloadable - Function overloading in rust 2019
- What is the reason for not having overloaded versions of fn? 2021
- And now, again, in 2022
Sure, arity-based overload would be easier to add than arbitrary type overloading, but it still requires some design work, and it doesn't solve as many problems as arbitrary type overloading.
The main language I know of that has arity-based overloading is Erlang, and it has pattern matching in function signatures to simulate type-driven overloading.