On 12/27/18 1:49 PM, Tom Honermann wrote:
As requested by Jason in the review of the P0482 (char8_t) core language
changes, this patch includes updates to the error messages emitted for
ill-formed cases of array initialization with a string literal. With
these changes, error messages that previously looked something like these:
- "char-array initialized from wide string"
- "wide character array initialized from non-wide string"
- "wide character array initialized from incompatible wide string"
now look like:
- "cannot initialize array of type 'char' from a string literal with
type array of 'short unsigned int'"
The first word "type" doesn't quite work here. The type of every
array is "array of T" where T is the type of the element, so for
instance, "array of char." Saying "array of type X" makes it sound
like X is the type of the whole array, which is of course not
the case when X is char. I think you want to use the same wording
as for the second type:
"cannot initialize array of 'char' from a string literal with
type array of 'short unsigned int'"
or perhaps even better
"cannot initialize array of 'char' from a string literal with
type 'char16_t[N]'"
(i.e., show the actual type of the string, including its bound).
Martin