tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(8,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(8,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(14,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(14,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(20,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts(26,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.


==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts (6 errors) ====
    class Base {
        x: string;
        constructor(a) { }
    }
    
    class Derived extends Base {
        constructor() {
            super(this); // ok
            ~~~~~~~~~~~
!!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
                  ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
        }
    }
    
    class Derived2 extends Base {
        constructor(public a: string) {
            super(this); // error
            ~~~~~~~~~~~
!!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
                  ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
        }
    }
    
    class Derived3 extends Base {
        constructor(public a: string) {
            super(() => this); // error
            ~~~~~~~~~~~~~~~~~
!!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
        }
    }
    
    class Derived4 extends Base {
        constructor(public a: string) {
            super(function () { return this; }); // ok
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Base'.
        }
    }