subtype: distribute a ∀ var over the arms of its union upper bound (#62074)
The strategy I proposed in
https://github.com/JuliaLang/julia/pull/62071#issuecomment-4678546548
would create lots of types of the form `Tuple{T, T} where T<:Stuff`.
Unfortunately, those currently have known subtyping bugs on the LHS of a
query, so try to fix that up quickly before anyone notices. Rough
suggestion by me, plan and code by Claude Fable 5 with cross-check by
GPT 5.5 Pro. The headline fix is the following equality:
```
(Tuple{T,T} where T<:Union{A,B}) ==
Union{Tuple{T,T} where T<:A, Tuple{T,T} where T<:B}
```
That said, I'm not sure the condition for splitting implemented here is
100% correct yet, but I wanted to see if anything breaks.
Co-authored-by: Keno Fischer <Keno@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>