On Wednesday, 16 March 2016 at 11:18:36 UTC, Johan Engelen wrote:
Hi all,
I've found discussions, but not an actual "recommended" solution for the problem of "statement is not reachable" warnings in templates with early returns...

"statement is not reachable" is fundamentally broken in D for generic code:
    https://issues.dlang.org/show_bug.cgi?id=14835

It's mostly not too big of a deal right now, only because the D front end's value range propagation capabilities are very weak.

Lionello Lunesu made a pull request a while back that majorly improves VRP in D as a part of his efforts to fix DMD issue 259. I decided to port it to DDMD a few months ago, and in the process discovered that with decent VRP, issue 14835 becomes 10-100x worse.

There was a forum discussion a while back as to what should be done about this, but unfortunately the conclusion was that it probably cannot really be fixed with any reasonable effort: http://forum.dlang.org/thread/bnzfuekewfguvnwdz...@forum.dlang.org

As far as I can tell, the only reasonable way forward is to simply remove the warning entirely (or ban meaningful upgrades to VRP).

Reply via email to