template Bar(T) { alias typeof(T.ini) Bar; // an error hidden deep in a nested template; } template Foo(T) { alias Bar!(T) Foo; } void foo(T)(Foo!(T) x) { } void main() { foo!(int)(2); } ---- test.d(19): template test.foo(T) does not match any function template declaration test.d(19): template test.foo(T) cannot deduce template function from argument types !(int)(int) D 1.0 reports the error in Bar as expected: test.d(5): Error: no property 'ini' for type 'int' test.d(10): template instance test.Bar!(int) error instantiating
Raising the severity because this issue considerably complicates the debugging of templates
Fixed DMD 2.038.