DMD rejects nothrow functions which use compile-time constant dynamic array for violating nothrow.
--------------------
immutable TABLE = [ 1, 2, 3 ];
pragma(msg, typeof(TABLE)); // immutable(int[])
void foo() nothrow
// Error: function test.foo 'foo' is nothrow yet may throw
{
const(int)[] tab;
tab = TABLE;
}
--------------------
The error does not occur if TABLE is declared with auto or immutable int[3] (instead of mere "immutable").