I think that Swift is the exception that proves the rule. The fact that it is notorious for giving up on certain type checks indicates that it isn't a problem for most languages.

It's the other way around, I think: it's not a problem for most languages because bidirectional type inference with overloading is NP-hard. It'd be nice to have, but it's impossible to implement in a way that's reliably fast, so it's not even considered as an option.

Got examples for non-Swift programmers?

Most expressions with overloads are a disaster in swift: https://www.cocoawithlove.com/blog/2016/07/12/type-checker-i...

Why are they writing their own constraint solver? There are so many great off-the-shelf constraint solvers that are probably going to be way faster than whatever Swift engineers can cook up.