//// [baseCheck.ts] class C { constructor(x: number, y: number) { } } class ELoc extends C { constructor(x: number) { super(0, x); } } class ELocVar extends C { constructor(x: number) { super(0, loc); } m() { var loc=10; } } class D extends C { constructor(public z: number) { super(this.z) } } // too few params class E extends C { constructor(public z: number) { super(0, this.z) } } class F extends C { constructor(public z: number) { super("hello", this.z) } } // first param type function f() { if (x<10) { x=11; } else { x=12; } } //// [baseCheck.js] var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var C = /** @class */ (function () { function C(x, y) { } return C; }()); var ELoc = /** @class */ (function (_super) { __extends(ELoc, _super); function ELoc(x) { return _super.call(this, 0, x) || this; } return ELoc; }(C)); var ELocVar = /** @class */ (function (_super) { __extends(ELocVar, _super); function ELocVar(x) { return _super.call(this, 0, loc) || this; } ELocVar.prototype.m = function () { var loc = 10; }; return ELocVar; }(C)); var D = /** @class */ (function (_super) { __extends(D, _super); function D(z) { var _this = _super.call(this, _this.z) || this; _this.z = z; return _this; } return D; }(C)); // too few params var E = /** @class */ (function (_super) { __extends(E, _super); function E(z) { var _this = _super.call(this, 0, _this.z) || this; _this.z = z; return _this; } return E; }(C)); var F = /** @class */ (function (_super) { __extends(F, _super); function F(z) { var _this = _super.call(this, "hello", _this.z) || this; _this.z = z; return _this; } return F; }(C)); // first param type function f() { if (x < 10) { x = 11; } else { x = 12; } }