We ran into some source breaking changes to do with the attribute reordering changes that recently landed. The problem is that the order that objc_designated_initializer and objc_method_family are processed matters, because objc_method_family can make a method an init method, which is a prerequisite for objc_designated_initializer. When the attribute order flipped, the arrangement of these attributes that lead to an error and the arrangement that worked fine also flipped. This patch fixes this by delaying the check until both attributes have been processed.
rdar://47829358
Thanks!
Erik
Please don't use auto here.