On Friday, 18 October 2019 at 16:46:36 UTC, Adam D. Ruppe wrote:
> On Friday, 18 October 2019 at 16:43:54 UTC, FeepingCreature
> wrote:
>> This does **not** spark joy. But it works.
>
> Yes, I just put in a runtime condition to trick the compiler:
>
> bool isScriptable(attributes...)() {
> bool
> nonConstConditionForWorkingAroundASpuriousDmdWarning = true;
> foreach(attribute; attributes) {
> static if(is(typeof(attribute) == string)) {
> static if(attribute == scriptable) {
>
> if(nonConstConditionForWorkingAroundASpuriousDmdWarning)
> return true;
> }
> }
> }
> return false;
> }
>
>
> the optimizer can prolly remove that condition anyway but it is
> good enough to silence the warning. still just all the work
> arounds are kinda gross.
You can define a bool enum in the body of static if (inside
foreach) and then wrap default return statement with static if
that checks if that enum was defined. If it wasn't then return
"default".