This commit adds a bunch of missing tests for init sequences. The specific
places we stick throws are:
1. Before Delegating.
2. During Delegation Argument Emission.
3. During Delegation Call.
4. After Delegation.
The tests ensure that we are properly treating self as a move only type until
delegation is complete and that we do not crash during such initializations.
rdar://32539006
I missed this problem due to a missing test case in initializers.swift. In a
subsequent commit, I am going to add the rest of the missing cases with some
FileCheck tests for some of them. This is to ensure that the commit is easy to
review.
rdar://32539006
I put in a simple fixup pass (MarkUninitializedFixup) for staging purposes. I
don't expect it to be in tree long. I just did not feel comfortable fixing up in
1 commit all of the passes up to DI.
rdar://31521023
What is happening here is that we are performing a select_enum check and then
not emitting the cleanup on the path where we know that our optional value is
null. To express such an operation in semantic sil, one should use a switch_enum
instead. Thus we must insert the destroy_value so that we know that the optional
value is balanced along all paths.
rdar://31145255