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) {}