On Friday, 25 July 2014 at 21:34:22 UTC, Walter Bright wrote:
On 7/25/2014 2:53 AM, Jakob Ovrum wrote:
On Friday, 25 July 2014 at 09:39:23 UTC, Walter Bright wrote:
That can be special cased, too.
Seriously? Where does it end?
catch(MyTemplatedException!true) {
}
That one can't be special cased in the parser.
Parsing this as a proper type without a trailing identifier is
a nice feature
that a lot of people use, unlike the ghastly catch {} feature
that nobody uses
and should be considered harmful. Whether we constrain the
former or kill the
latter, they're both breaking changes. So why are we favouring
the *bad* one?
Because it breaks the least amount of code.
I hope you are running head first into a usability disaster here.
From a user's perspective, MyTemplatedException!true is a type
just like MyException is and there is no reason why it should
work differently. Remember built-in types and alias parameters?
Let's just get rid of "catch {}" which encourages unsafe code and
be done with it.
David