On Saturday, 8 July 2017 at 12:18:38 UTC, Andrei Alexandrescu wrote:
On 7/8/17 7:07 AM, bachmeier wrote:
On Saturday, 8 July 2017 at 10:15:39 UTC, Walter Bright wrote:

Having an @noreturn attribute will take care of that:

   @noreturn void ThisFunctionExits();

Why should this be an attribute rather than a pragma?

So it's part of the summary of the function. -- Andrei

If it feels like a pragma, should be part of the function and reflectable, then how about:

void assertFalse(bool cond) @pragma(noreturn)

or

void assertFalse(bool cond) @pragma("noreturn")

The compiler could probably give an error if the "" (inside @pragma) wasn't a known string. Also @pragma would be useful as standard way of saying "special compiler attribute". No need to consume global attribute namespace.

I'm expecting to see @myproject_safe and @myproject_noreturn type of attributes someday in some project :|

Reply via email to