When a property is not initialized, the Swift compiler points to the end of a initializer and complains. This can be confusing when the initializer has early returns. For example:
Note the error is caused by the early return, but it's not immediately clear given that `b` appears to have been initialized near the end.
Solution: issue the diagnostic message at the early return statement.