On 2013-11-11 14:32, Rikki Cattermole wrote:

I am only suggesting one :)

What about warnings? And no, the current pragma(msg) isn't the same.

We only need one that'll output any text we want it to and make the
compiler consider it an error.
On the macro side of things we can build a string which then can be
given to the pragma.

All of the wrapping giving the goodness would go into the context.

Current what I have enables this:

void main() {
     U u;
}

alias T!("hi", "bye") U;

struct T(string a, string b) {
     pragma(error, a ~ "\n" ~ b);
}

test.d(8): Error: hi
bye

test.d(5): Error: template instance test.T!("hi", "bye") error
instantiating

Not really in pull state but thats the best I can do. Really that final
error should be omitted.

I wouldn't say no to this if macros are completely off the table. Perhaps it's a good addition regardless.

--
/Jacob Carlborg

Reply via email to