Commits

Joe Groff committed 88da4626b8f
SILGen: Clean up 'self' before entering the failure block of a failing initializer. A couple reasons for this: - How 'self' gets cleaned up is dependent on where the failure occurs. If we propagate failure from a class initializer, the failed 'super.init' or 'self.init' has already cleaned up the object, so we only need to deallocate the box. In cases where we fail explicit, we release 'self', which works out because we're only supporting failure with a fully-initialized object for now. - This lets us set the location info for the cleanup to the AST node that instigated failure, giving better QoI for DI failures (such as failing with a partially-initialized object). Swift SVN r21505