==== tests/cases/conformance/types/typeRelationships/recursiveTypes/infiniteExpansionThroughInstantiation.ts (2 errors) ==== // instantiating a derived type can cause an infinitely expanding type reference to be generated interface List { data: T; next: List; owner: OwnerList; } // will have an owner property that is an infinitely expanding type reference interface OwnerList extends List> { name: string; } var list: List; var ownerList: OwnerList; list = ownerList; ~~~~ !!! Type 'OwnerList' is not assignable to type 'List': !!! Types of property 'data' are incompatible: !!! Type 'List' is not assignable to type 'string'. function other(x: T) { var list: List; var ownerList: OwnerList; list = ownerList; ~~~~ !!! Type 'OwnerList' is not assignable to type 'List': !!! Types of property 'data' are incompatible: !!! Type 'List' is not assignable to type 'T'. }