The intention is now that AppendError/SetError/AppendRawError only
be called with some message to show. This enforces that.
For SetError with a Status and a fallback string first assert
that the Status is a failure Status. Then it calls SetError(StringRef)
which checks the message is valid. (which could be the fallback
or the Status')
I'd prefer to write that as !in_string.empty() - it's a somewhat more direct statement of the intent (& good habit to use empty on containers rather than size != 0 - some containers can have more expensive size operations).
Similarly above.