Commits
Chris Lattner committed 7aaf0c5e0ca
rework the canonical type system a bit to make it so that all Types can access their ASTContext without bloating everything. Basically, now instead of having a canonical type point to itself when canonical, it points to the ASTContext when canonical. This means that Canonical types always have direct access to their context and non-canonical ones just indirect through the canonical type pointer to get to it (so it's two jumps away) by using a PointerUnion. This should make type manipulation more straight-forward. While we're at it, we actually memoize type canonicalization. Before we forgot to remember the result in the canonical type pointer in Type. Swift SVN r755