---- struct S(T) {} /* This should work, but fails: */ enum fails(alias Tmpl, alias Inst : Tmpl!A, A) = true; enum fails(alias Tmpl, alias Inst) = false; static assert(fails!(S, S!int)); /* Error: template test.fails matches more than one template declaration */ /* These variations work: */ enum works1(alias Inst : S!A, A) = true; enum works1(alias Inst) = false; static assert(works1!(S!int)); /* passes */ enum works2(alias Tmpl, Inst : Tmpl!A, A) = true; enum works2(alias Tmpl, Inst) = false; static assert(works2!(S, S!int)); /* passes */ ----
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19171 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB