https://issues.dlang.org/show_bug.cgi?id=19084
--- Comment #3 from Jonathan Marler <johnnymar...@gmail.com> --- struct Bar(T) { mixin("T foo;"); } T in this case is not a "symbol name string", it is an alias to a symbol. But don't be confused, you can't actually create T with an alias, meaning `alias T = Foo` won't work. You have to use the fully qualified name of `Foo` but because `Foo` is inside a unittest, it's prvate and you cannot access it. The only way to access the type is if the code inside unittest "passes" the type alias to you through a template type parameter: unittest { struct Foo { } Bar!Foo bar; // passing Foo to Bar so it can access it } // out here we cannot access Foo because it is private to the unittest // the only way we can access it is if code inside of unittest passes it // us through a template type parameter --