[Issue 16340] New: case where version(unittest) results in an invalid warning about a dangling else
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sat Jul 30 12:09:53 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=16340
Issue ID: 16340
Summary: case where version(unittest) results in an invalid
warning about a dangling else
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: issues.dlang at jmdavisProg.com
This is a reduced version of some code that I've been working on:
void main()
{
}
version(unittest) template symsToStrs(fields...)
{
static if(fields.length == 0)
enum symsToStrs = ["hello"];
else
enum symsToStrs = ["world"];
}
Note that if you compile it with warnings enabled, you get something like
q.d(9): Warning: else is dangling, add { } after condition at q.d(5)
However, if you remove the version(unittest) from in front of the template,
then the warning goes away. Whether the code is compiled with -unittest doesn't
matter. But regardless, there is no dangling else here. So, the warning is
incorrect.
This issue looks similar to issue# 15326, but the code in that one doesn't have
this problem anymore, so it doesn't look like this is a regression of that bug,
though its cause may be similar.
--
More information about the Digitalmars-d-bugs
mailing list