On Wednesday, 28 September 2016 at 23:44:19 UTC, Andrei Alexandrescu wrote:
On 9/28/16 7:40 PM, Andrei Alexandrescu wrote:

// With scope
void assertNot(string s)
{
try { scope(success) assert(0, s); decode(s,DecodeMode.STRICT); }
    catch (DecodeException e) {}
}

Sorry, this is not semantically equivalent. Replace with:

// With scope
void assertNot(string s)
{
    try { decode(s,DecodeMode.STRICT); }
    catch (DecodeException e) { return; }
    assert(0, s);
}


Andrei

Aren't those the same, as assert won't ever throw a DecodeException?

Simplest implementation:

try {
    decode(s,DecodeMode.STRICT);
    assert(0, s);
} catch (DecodeException e) {}

Reply via email to