tests/cases/compiler/returnInConstructor1.ts(11,9): error TS2322: Type '1' is not assignable to type 'B'.
tests/cases/compiler/returnInConstructor1.ts(11,9): error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
tests/cases/compiler/returnInConstructor1.ts(25,9): error TS2322: Type '"test"' is not assignable to type 'D'.
tests/cases/compiler/returnInConstructor1.ts(25,9): error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
tests/cases/compiler/returnInConstructor1.ts(39,9): error TS2322: Type '{ foo: number; }' is not assignable to type 'F'.
  Types of property 'foo' are incompatible.
    Type 'number' is not assignable to type 'string'.
tests/cases/compiler/returnInConstructor1.ts(39,9): error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
tests/cases/compiler/returnInConstructor1.ts(55,9): error TS2322: Type 'G' is not assignable to type 'H'.
  Types of property 'foo' are incompatible.
    Type '() => void' is not assignable to type 'string'.
tests/cases/compiler/returnInConstructor1.ts(55,9): error TS2409: Return type of constructor signature must be assignable to the instance type of the class.


==== tests/cases/compiler/returnInConstructor1.ts (8 errors) ====
    class A {
        foo() { }
        constructor() {
            return;
        }
    }
    
    class B {
        foo() { }
        constructor() {
            return 1; // error
            ~~~~~~~~~
!!! error TS2322: Type '1' is not assignable to type 'B'.
            ~~~~~~~~~
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class C {
        foo() { }
        constructor() {
            return this;
        }
    }
    
    class D {
        foo() { }
        constructor() {
            return "test"; // error
            ~~~~~~~~~~~~~~
!!! error TS2322: Type '"test"' is not assignable to type 'D'.
            ~~~~~~~~~~~~~~
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class E {
        public foo: number;
        constructor() {
            return { foo: 1 };
        }
    }
    
    class F {
        public foo: string;
        constructor() {
            return { foo: 1 }; //error
            ~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'F'.
!!! error TS2322:   Types of property 'foo' are incompatible.
!!! error TS2322:     Type 'number' is not assignable to type 'string'.
            ~~~~~~~~~~~~~~~~~~
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class G {
        private test: number;
        public test1() { }
        foo() { }
        constructor() {
            this.test = 2;
        }
    }
    
    class H extends F {
        constructor() {
            super();
            return new G(); //error
            ~~~~~~~~~~~~~~~
!!! error TS2322: Type 'G' is not assignable to type 'H'.
!!! error TS2322:   Types of property 'foo' are incompatible.
!!! error TS2322:     Type '() => void' is not assignable to type 'string'.
            ~~~~~~~~~~~~~~~
!!! error TS2409: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class I extends G {
        constructor() {
            super();
            return new G();
        }
    }
    
    