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 :|