Previously, calling type validation twice for the same type could
result in spurious errors in default arguments of tuple types. Guard
against this by recording within the ExprHandle whether the default
argument has been type-checked or not, so that it will only be done
once.
Similarly, extend the type-validation caching within TypeBase to
specify the result of type validation (succeed or fail), so that
repeated calls to validateType() will produce predictable results for
failed types.
Swift SVN r5485
analysis for patterns.
Major changes:
1. We no longer try to compute the types of functions in the parser.
2. The type of a function always matches the type of the argument patterns.
3. Every FuncDecl now has a corresponding FuncExpr; that FuncExpr might not
have a body, though.
4. We now use a new class "ExprHandle" so that both a pattern and a type
can hold a reference to the same expression.
Hopefully this will be a more reasonable foundation for further changes to
how we compute the types of FuncDecls in generics and for the implementation
of type location information.
Swift SVN r2370