Hi,<div><br></div><div>Time for some Sunday nitpicking. While reading TDPL, one thing that stuck out to me was the special behavior of assert(false). Consider the following program compiled with &quot;-release&quot;.</div>
<div><br></div><div>void main()</div><div>{</div><div>    int a = 0;</div><div>    assert(a);</div><div>}</div><div><br></div><div>That program will run without errors. Changing the type of variable a from &quot;int&quot; to &quot;enum&quot; results in the program segfaulting thanks to the compiler being able to know the value of the expression &quot;a&quot; at compile time and inserting a HLT/&quot;halt&quot; instruction. Having the ability to change something subtle in a more complex expression or series of expressions without realizing you made a compile time assert(false) which crashes your program feels ugly.</div>
<div><br></div><div>I would prefer it if assert() didn&#39;t have this special type of behavior, and that a &quot;halt&quot; keyword or equivalent was introduced. What do you think?</div><div><br></div><div>/ Chris</div>