On Wednesday, 16 March 2016 at 11:22:02 UTC, rikki cattermole wrote:
Change those static if's to just plain old ifs.

This only works (sometimes) because D's value range propagation doesn't understand comparisons or normal if statements very well. This will hopefully be fixed sooner or later:
    https://github.com/D-Programming-Language/dmd/pull/1913
    https://github.com/D-Programming-Language/dmd/pull/5229

The only future-proof way to fix the "statement is not reachable" warning, is to guard the potentially unreachable code with a `static if` whose predicate precisely describes the circumstances in which it becomes unreachable...

...Which itself is a terrible solution that doesn't scale well at all to complex generic code and violates the "DRY" principle.

We really ought to just remove the warning. It just doesn't mesh well with D's super-powered meta-programming features.

Reply via email to