This snippet compiles. Even if `dsds` and `sadsad` are defined nowhere, this code compiles.

```d
import std.typecons : Tuple;

sadsad executeFunction(Mtypes...)(dstring func, Tuple!(Mtypes) args)
{
    static foreach(type; typel.keys)
    {
        mixin(typel[type] ~ " ret"d ~ type ~ ";");
    }

    dstring returnType = "Number"d;

    Switch: final switch(returnType)
    {
        static foreach(type; typel.keys)
        {
            case type:
                mixin("alias ret = ret"d ~ type ~ ";");
                break Switch;
        }
    }
    dsds ret;
    return ret;
}
```

The reason why this compiles is because of the varidic template parameter, `Mtypes`.

Either there is something I'm missing, or the compiler completely breaks when it sees varidic template arguments.

Reply via email to