Use union types instead of join in binder by ilevkivskyi · Pull Request #18538 · python/mypy
This would be more consistent with what we already do for ternary expressions. Note the change in match test results from match logic not handling well the situation when initial type is a union. A possible workaround would be to force "collapsing" union of tuples back into a tuple with union, but it is not easy and was planning to do some cleanup in the match handling as well (in particular it uses joins instead of unions in a way that will be inconsistent with new binder behavior). I want to put the switch from join to union for match statement in a separate PR. Note I also simplify a bunch of special-casing around `Any` in the binder that existed mostly because `join(Any, X) == Any`. Fixes python#3724