Commits

Chris Lattner committed ce8b218abae
Reapply r23982, which moves mandatory inlining after DI and inout deshadowing. This fixes some serious DI problems where it would be broken with transparent functions like ++. Previously, this had to be reverted because we were relying on mandatory inlining to inline closure-taking stdlib functions (like &&/||) before inout deshadowing happened. With mandatory inlining moved after inout deshadowing, we were getting a lot of inout shadow temporaries around, which notably defeated important COW optimizations by increasing refcounts in unpredictable ways. The new @__noescape attribute handles this for us now, because @__noescape closures (like the autoclosure arguments to ||/&&) no longer block inout deshadowing. Swift SVN r24142