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.