[Constraint solver] Initial work on a less horrible solver.

This solver handles most of what the old solver does (enabling it by
default only causes 9 test failures), but is radically simpler and
already significantly faster (~50% slower than the old-old type
checker on swift.swift). There are some egregious hacks here to still
be eliminated (see FIXMEs), but it's a start.


Swift SVN r5272
This commit is contained in:
Doug Gregor
2013-05-22 20:01:32 +00:00
parent 55fe34063f
commit 00c8099fe6
5 changed files with 600 additions and 26 deletions

View File

@@ -29,6 +29,10 @@ namespace swift {
/// solver is the only type checker.
bool UseConstraintSolver = true;
/// \brief Use the new constraint solver, as opposed to the old constraint
/// solver.
bool UseNewConstraintSolver = false;
/// \brief Whether we are debugging the constraint solver.
///
/// This option enables verbose debugging output from the constraint
@@ -37,6 +41,7 @@ namespace swift {
/// \brief Map NSString -> String in function parameters and results.
bool NSStringIsString = false;
};
}