On 7/8/2017 1:20 PM, H. S. Teoh via Digitalmars-d wrote:
Hmmm. Just to clarify, what exactly does @noreturn include? If I have a
function that calls exit(), that's @noreturn? What about a function that
always throws? Or a function that calls exec()? A function that always
ends in assert(0)? A function that context-switches to a different
thread / fibre and terminates this one?

There's no subtlety to it. It's a function that never returns. I.e. it doesn't execute a 'RET' instruction.


As for Andrei's idea, it's pretty clever but we would need to
standardize the None type, otherwise we risk hard-to-read code when
everyone rolls their own None type with different names. An attribute
has the advantage that it will be universally understood.

It would be like `size_t`.

Reply via email to