debug = x overrides command line
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Tue Oct 21 10:25:37 PDT 2014
On 10/21/14 12:02 PM, Gary Willoughby wrote:
> On Tuesday, 21 October 2014 at 15:45:55 UTC, Steven Schveighoffer wrote:
>> Currently, if you write something like this:
>>
>> debug = x;
>
> In code? Like this:
>
> void main()
> {
> debug = x;
>
> // now in debug mode even though not specified on the CLI?
> }
>
Yes, but only for debug(x) statements. debug statements without a symbol
aren't enabled. But for those statements, purity is jettisoned. e.g.:
import std.stdio;
int a;
void foonotpure() { a = 5; writeln("yep, not pure");}
debug = x; // note this is only allowed at module scope.
void main() pure
{
debug(x) foonotpure();
}
dmd -run foonotpure.d
yep, not pure
> If that's true, that's pretty scary. What if it's hidden in a module
> somewhere?
Yep, you can just turn off purity when it gets in the way.
-Steve
More information about the Digitalmars-d
mailing list