why is this flagged as poor style?

Steven Schveighoffer schveiguy at gmail.com
Tue Sep 22 21:50:11 UTC 2020

On 9/22/20 5:35 PM, Andrei Alexandrescu wrote:
> The style checker for phobos flags this code:
> static if (!is(typeof(unaryFun!fun(r.front)) == Flag!"each"))
>      cast(void) unaryFun!fun(r.front);
> else
>      if (unaryFun!fun(r.front) == No.each) return No.each;
> with "Mismatched static if. Use 'else static if' here."
> But in fact the intention is to execute a run-time `if` on the `else` 
> branch of the `static if`.
> Is this worth fixing?

I think it needs braces (I'd do them for both blocks).

When you are mixing static if and if (or version etc.), make it very 
clear the difference.


More information about the Digitalmars-d mailing list