One more fix for `super`
Summary: Since `Tmixed` is always a solution for a `super`-constrained
type, we want to make sure that the `super` constraint always results in
the type growing, and never raises a type error in and of itself (it
needs to encounter a mismatching type hint). Thus we ensure that the
constrained type is always a Tunresolved; if not, we wrap it in one.
We *do* instantiate generic types to Tvars of Tunresolved, but if we
unify with (as opposed to subtype against) a not-Tunresolved type, we
end up with a Tvar of not-Tunresolved. This will happen when e.g.
unifying Foo<T> with Foo<int>, where T is invariant w.r.t. Foo.
Reviewed By: @elgenie
Differential Revision:
D2015378