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 "-release".</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 "int" to "enum" results in the program segfaulting thanks to the compiler being able to know the value of the expression "a" at compile time and inserting a HLT/"halt" 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't have this special type of behavior, and that a "halt" keyword or equivalent was introduced. What do you think?</div><div><br></div><div>/ Chris</div>