Commits

Jordan Rose committed 772a124b637
Compute captures after all bodies have been type-checked, as a separate pass. We already have the restriction that captures can't be computed until everything is type-checked, but previously we tried to compute captures /immediately/ after a closure was type-checked. Unfortunately, we either type-checked too early (before @noescape was propagated onto multi-statement closures) or too late (trying to compute autoclosure captures at the point the autoclosure was introduced). Now, all closure captures are computed after type-checking, and local function captures as well. They also more consistently reuse the capture list of nested closures/functions. Because captures can be computed on demand, there is now a flag on CaptureInfo for whether we've computed captures yet. Note that some functions will never have captures computed, namely those that are not in a local context. rdar://problem/19956242 Swift SVN r25776