On Friday, 11 July 2014 at 02:32:00 UTC, Manu via Digitalmars-d wrote:
So, we allow assert() in nothrow functions, the argument is that
assert is non-recoverable, so it's distinct from user exceptions.

I have this in my 'nothrow @nogc' function:
  assert(false, "Message " ~ details);

It complains "Error: cannot use operator ~ in @nogc function"

I think it should be allowed to invoke the GC for formatting error messages inside of assert statements, just the same as assert() is
allowed inside of nothrow functions.

Thoughts?

More generally, I'm somewhat surprised that @nogc does not still allow allocating Errors (including with assert), as who cares if your program may slightly pause when it's about to crash in a theoretically unrecoverable way.

Reply via email to