Bug 7793 – static assert( void_function() ) gives misleading error message

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-03-29T00:38:00Z
Last change time
2015-06-09T05:11:53Z
Keywords
diagnostic
Assigned to
nobody
Creator
clugdbug

Comments

Comment #0 by clugdbug — 2012-03-29T00:38:57Z
void f(){} static assert(f()); ---- bug.d(10): Error: cannot evaluate f() at compile time bug.d(10): while evaluating: static assert(f()) But actually f() was successfully evaluated at compile time!
Comment #1 by clugdbug — 2012-03-29T00:49:46Z
And it also applies to static if.
Comment #2 by github-bugzilla — 2012-06-22T00:22:47Z
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/8a1f31f4b2307fc4dc3c068d928ab9e26ea0ae11 fix Issue 7793 - static assert( void_function() ) gives misleading error message
Comment #3 by github-bugzilla — 2012-06-22T00:22:47Z
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/3bfac1394e3d123aa487fd6a1ccf62b06ca8c9b1 fix Issue 7793 - static assert( void_function() ) gives misleading error message
Comment #4 by github-bugzilla — 2012-06-22T10:50:59Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/6610acf74883822609e165a470fbe6c812e03692 Fix regression introduced by issue 7793 fix. In 3bfac13, inc is set to 2 instead of 0, which causes errors to go by unnoticed in some circumstances. An alternative fix for 7793 would be to only skip invoking e->ctfeInterpret() if the type is not bool – I'm not sure why/if returning early is preferrable here. https://github.com/D-Programming-Language/dmd/commit/7e501522c15ff03e4460e25cdba5c1ce2e85f445 Merge pull request #1024 from klickverbot/7793-fix Fix regression introduced by issue 7793 fix.