Improving assert-printing in DMD
John Colvin via Digitalmars-d
digitalmars-d at puremagic.com
Tue Sep 29 14:25:59 PDT 2015
On Tuesday, 29 September 2015 at 21:22:43 UTC, H. S. Teoh wrote:
> On Tue, Sep 29, 2015 at 09:13:55PM +0000, John Colvin via
> Digitalmars-d wrote:
>> On Tuesday, 29 September 2015 at 21:02:42 UTC, Nordlöw wrote:
> [...]
>> >2. Is it possible to from within DMD generate expressions
>> >that do
>> >
>> >`import std.stdio : write`
>> >
>> >and then calls write on the `lhs` and `rsh`...or this a
>> >completely wrong approach to solving this problem?
>>
>> Someone will write something like this:
>>
>> assert(plainPassword == plainPassword.toLower());
>>
>> and plaintext passwords will end up in stderr.
>
> That's an instance of assert abuse, and we probably don't have
> to be responsible for it. Such checking belongs in enforce, or
> an explicit check with an exception throw, NOT an assert.
>
>
> T
Not necessarily. It could just be a defensive assert for
something that should already have been verified/cleaned/caught
earlier.
auto pass = getPassword();
pass.clean();
assert(pass == pass.toLower());
//and on we go ...
More information about the Digitalmars-d
mailing list