First change tries to fix the carret in the error diagnostic that points to leading brace of the initializer list. Kind (InitializationKind) variable is used to diagnose only initializer list elements that weren't specified, and as such it seems to make more sense to use the closing brace when pointing to where the error occurred. I'm not seeing any regression so I'm not sure if this is the right approach. We could pass both leading and trailing brace to Kind and Diagnose method could then choose which one to use for each failure type?
Second change is the note that explains where this default constructor comes from. It really feels like this code belongs inside Diagnose method but that method seems to deal only with the inner initializer list element and information about the whole initializer list (number of elements) doesn't seem to be available.