Commits
Chris Lattner committed db236941d0d
Check in a massive rewrite of how sema works for expressions in an effort to make way for separate parsing, name binding, type checking phases. Highlights of this include: 1) most of SemaExpr is gone now, when parsing, all expressions are assigned null types. 2) the introduction of a new TypeChecking pass, which assigns types to expressions, and checks their constraints. 3) ElementRefDecl now properly stores an access path for what it is accessing, and ElementRefDecl's get added to the AST. 4) The parser is much much simpler for expressions now, it just collects lists of primary exprs into SequenceExprs unconditionally. 5) This means that formation of binary expressions, function application etc is now done by TypeChecking. This is actually simpler, though admittedly surprising. 6) This introduces a new -parse-dump mode which just parses but does not perform name binding or type checking. I've been working on this for a while and it is still quite broken: it still doesn't handle anondecls at all, doesn't perform conversion checking for default tuple elements, has missing pieces of varname name binding etc. However, there is no reason to not crash land it now, it's not like I'm going to break anyone else. Swift SVN r262