On Friday, 11 March 2016 at 12:10:53 UTC, Artur Skawina wrote:
On 03/11/16 09:21, Ali Çehreli via Digitalmars-d-learn wrote:
You've been bitten by a common usability issue. :)

On 03/11/2016 12:02 AM, Fynn Schröder wrote:
     static if (is(U == ubyte)) {

     } else if (is(U == ushort)) {

You mean 'else static if'. (Not your fault: I (and others) wish the compiler warned about this problem.)

It can not warn about this "problem" - because it's a perfectly
fine and relatively common construct (a RT check guarded by a CT
check).

It can first deprecate and later disallow

    static if(...) ... else if(...) ...

It's always possible (and IMO preferable) to write the clearer

    static if(...) { ... } else { if(...) ... }

It already does this for similar error-prone cases, e.g.

    if(...) ;
    while(...) ;
    // Error: use '{ }' for an empty statement, not a ';'

Reply via email to