On Friday, 13 February 2026 at 14:46:14 UTC, user1234 wrote:
On Friday, 13 February 2026 at 14:19:20 UTC, monkyyy wrote:
Behavior looks correct to me, auto flattening and
specialization are both written down in the spec somewhere.
[...]
Yes but both `f` match !
Unliquely situation (more interested with the semantics here)
but what could happen is: in a library such an overload set
exists and leads to bugs, because the compiler does not inform
you.
```d
void f(T...)(){}
void f(T:int)(){ static assert(0);}
alias foo=f!int;
```
Template specialization rules can apply. I think its only a bug
if the order of the declarations effect behavior(which they do
often)