Commits
Doug Gregor committed 30a34e5a56a
Lower the rebinding of 'self' in a super.init call to a cast when it can't fail. Swift-rooted class hierarchies don't permit the replacement of "self", so it's guaranteed that the 'self' returned from a 'super.init' invocation is identical to the previous self. Elide the unconditional checked downcast (that manifests as a call to swift_dynamicCastClassUnconditional in the runtime) by putting in the moral equivalent of a bitcast. For Objective-C-rooted hierarchies, 'self' can be replaced, so memory safety dictates that we use the unconditional checked downcast. Note that this path is still unsafe against nil returns. Swift SVN r12401