//// [genericRecursiveImplicitConstructorErrors2.ts] module TypeScript2 { export interface DeclKind { }; export interface PullTypesymbol { }; export interface SymbolLinkKind { }; export enum PullSymbolVisibility { Private, Public }   export class PullSymbol { constructor (name: string, declKind: DeclKind) { } // link methods public addOutgoingLink(linkTo: PullSymbol, kind: SymbolLinkKind) { } public getType(): PullTypeSymbol { return undefined; } } export class PullTypeSymbol extends PullSymbol { } } //// [genericRecursiveImplicitConstructorErrors2.js] var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } __.prototype = b.prototype; d.prototype = new __(); }; var TypeScript2; (function (TypeScript2) { ; ; ; (function (PullSymbolVisibility) { PullSymbolVisibility[PullSymbolVisibility["Private"] = 0] = "Private"; PullSymbolVisibility[PullSymbolVisibility["Public"] = 1] = "Public"; })(TypeScript2.PullSymbolVisibility || (TypeScript2.PullSymbolVisibility = {})); var PullSymbolVisibility = TypeScript2.PullSymbolVisibility; var PullSymbol = (function () { function PullSymbol(name, declKind) { } // link methods PullSymbol.prototype.addOutgoingLink = function (linkTo, kind) { }; PullSymbol.prototype.getType = function () { return undefined; }; return PullSymbol; })(); TypeScript2.PullSymbol = PullSymbol; var PullTypeSymbol = (function (_super) { __extends(PullTypeSymbol, _super); function PullTypeSymbol() { _super.apply(this, arguments); } return PullTypeSymbol; })(PullSymbol); TypeScript2.PullTypeSymbol = PullTypeSymbol; })(TypeScript2 || (TypeScript2 = {}));