=== tests/cases/compiler/genericRecursiveImplicitConstructorErrors2.ts === module TypeScript2 { >TypeScript2 : typeof TypeScript2 export interface DeclKind { }; >DeclKind : DeclKind export interface PullTypesymbol { }; >PullTypesymbol : PullTypesymbol export interface SymbolLinkKind { }; >SymbolLinkKind : SymbolLinkKind export enum PullSymbolVisibility { >PullSymbolVisibility : PullSymbolVisibility Private, >Private : PullSymbolVisibility Public >Public : PullSymbolVisibility }   export class PullSymbol { >PullSymbol : PullSymbol constructor (name: string, declKind: DeclKind) { >name : string >declKind : DeclKind >DeclKind : DeclKind } // link methods public addOutgoingLink(linkTo: PullSymbol, kind: SymbolLinkKind) { >addOutgoingLink : (linkTo: PullSymbol, kind: SymbolLinkKind) => void >A : A >B : B >C : C >linkTo : PullSymbol >PullSymbol : PullSymbol >kind : SymbolLinkKind >SymbolLinkKind : SymbolLinkKind } public getType(): PullTypeSymbol { >getType : () => PullTypeSymbol >A : A >B : B >C : C >PullTypeSymbol : PullTypeSymbol >A : A >B : B >C : C return undefined; >undefined : undefined } } export class PullTypeSymbol extends PullSymbol { >PullTypeSymbol : PullTypeSymbol >A : A >B : B >C : C >PullSymbol : PullSymbol } }