//// [collisionThisExpressionAndPropertyNameAsConstuctorParameter.ts]
class Foo2 {
    constructor(_this: number) { //Error
        var lambda = () => {
            return x => this;   // New scope.  So should inject new _this capture
        }
    }
}

class Foo3 {
    constructor(private _this: number) { // Error
        var lambda = () => {
            return x => this;   // New scope.  So should inject new _this capture
        }
    }
}   

class Foo4 {
    constructor(_this: number); // No code gen - no error
    constructor(_this: string); // No code gen - no error
    constructor(_this: any) { // Error
        var lambda = () => {
            return x => this;   // New scope.  So should inject new _this capture
        }
    }
}  

class Foo5 {
    constructor(_this: number); // No code gen - no error
    constructor(_this: string); // No code gen - no error
    constructor(private _this: any) { // Error
        var lambda = () => {
            return x => this;   // New scope.  So should inject new _this capture
        }
    }
}  

//// [collisionThisExpressionAndPropertyNameAsConstuctorParameter.js]
var Foo2 = (function () {
    function Foo2(_this) {
        var _this = this;
        var lambda = function () {
            return function (x) { return _this; }; // New scope.  So should inject new _this capture
        };
    }
    return Foo2;
})();
var Foo3 = (function () {
    function Foo3(_this) {
        var _this = this;
        this._this = _this;
        var lambda = function () {
            return function (x) { return _this; }; // New scope.  So should inject new _this capture
        };
    }
    return Foo3;
})();
var Foo4 = (function () {
    function Foo4(_this) {
        var _this = this;
        var lambda = function () {
            return function (x) { return _this; }; // New scope.  So should inject new _this capture
        };
    }
    return Foo4;
})();
var Foo5 = (function () {
    function Foo5(_this) {
        var _this = this;
        this._this = _this;
        var lambda = function () {
            return function (x) { return _this; }; // New scope.  So should inject new _this capture
        };
    }
    return Foo5;
})();
