1 interface IBar(T) 2 { 3 IFoo!T ownerDocument(); 4 } 5 6 interface IFoo(T): IBar!T 7 { 8 // un-commenting the following line solves the issue 9 //IList!T getList(); 10 } 11 12 interface IList(T) {} 13 14 class DOMImplementation(T) 15 { 16 class BarImpl: IBar!T 17 { 18 FooImpl ownerDocument() { return null; } 19 } 20 class FooImpl: BarImpl, IFoo!T 21 { 22 IList!T getList() { return null; } 23 } 24 } 25 26 void main() 27 { 28 auto impl = new DOMImplementation!string(); 29 } 30