--------foo.d---------- private int X; --------bar.d---------- import foo; int bar(int X)() // error: foo.X is private { return 0; } int main() { return bar!(0)(); } ---------------------- It happens for template type parameters as well, but you don't notice it due to bug 2830.
Tested on git HEAD, Linux/64. Can't reproduce problem anymore. I guess it has been fixed since?