Here is a reduced test case. Before filing a bug report, just wanted to make sure if I am doing something obviously wrong here.
import std.stdio; struct Foo(IF, size_t N) { } interface Bar { } void main() { void printFoo(T: Foo!(IF, N), IF, size_t N)(T foo) if(is(IF == interface)) { writeln("Type: ", T.stringof); } Foo!(Bar, 1) foo; printFoo(foo); }