Commits

Doug Gregor committed 1b1d29b15da
[Constraint solver] Introduce a *trivial* 'meet' operation for types. Stub out a simplistic 'meet' operation for types that currently only handles finding the meet of two class types. Use it to optimize the constraint solver ever so slightly: when we see a type variable whose constraints state that it is a supertype of two different concrete types, we attempt to compute their meet and, if we find it, only produce one potential binding that is the meet itself. Note that this is an extremely poor implementation of this concept that is meant to address a specific regression being introduced by the defaulting of collection literal element types. A real implementation would, at the very least: * Implement a proper 'meet' that covers all subtyping in the language. * Distinguish between "I don't know if there is a meet" and "I am absolutely certain that there is no meet". * Collapse the constraints themselves to reduce the number of constraints in the system, rather than just the number of type variable bindings we attempt. (cherry picked from commit 2bcf5558969890fed26db1f10ddf2efe5262901c)