=== tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts ===
export declare module TypeScript {
>TypeScript : Symbol(TypeScript, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 0))

  class PullSymbol { }
>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 34))

  class PullSignatureSymbol <A,B,C> extends PullSymbol {
>PullSignatureSymbol : Symbol(PullSignatureSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 1, 22))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 29))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 31))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 33))
>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 34))

  public addSpecialization<A,B,C>(signature: PullSignatureSymbol<A,B,C>, typeArguments: PullTypeSymbol<any,any,any>[]): void;
>addSpecialization : Symbol(PullSignatureSymbol.addSpecialization, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 56))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 27))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 29))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 31))
>signature : Symbol(signature, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 34))
>PullSignatureSymbol : Symbol(PullSignatureSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 1, 22))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 27))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 29))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 31))
>typeArguments : Symbol(typeArguments, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 72))
>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3))
  }
  class PullTypeSymbol <A,B,C> extends PullSymbol {
>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 24))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 26))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 28))
>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 34))

    public findTypeParameter<A,B,C>(name: string): PullTypeParameterSymbol<A,B,C>;
>findTypeParameter : Symbol(PullTypeSymbol.findTypeParameter, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 51))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 29))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 31))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 33))
>name : Symbol(name, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 36))
>PullTypeParameterSymbol : Symbol(PullTypeParameterSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 7, 3))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 29))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 31))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 33))
  }
  class PullTypeParameterSymbol <A,B,C> extends PullTypeSymbol {
>PullTypeParameterSymbol : Symbol(PullTypeParameterSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 7, 3))
>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 33))
>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 35))
>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 37))
>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3))
  }
}
 

