tests/cases/compiler/returnInConstructor1.ts(11,16): error TS2322: Type 'number' is not assignable to type 'B'.
tests/cases/compiler/returnInConstructor1.ts(11,16): error TS2409: Return type of constructor signature must be assignable to the instance type of the class
tests/cases/compiler/returnInConstructor1.ts(25,16): error TS2322: Type 'string' is not assignable to type 'D'.
tests/cases/compiler/returnInConstructor1.ts(25,16): error TS2409: Return type of constructor signature must be assignable to the instance type of the class
tests/cases/compiler/returnInConstructor1.ts(39,16): 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,16): error TS2409: Return type of constructor signature must be assignable to the instance type of the class
tests/cases/compiler/returnInConstructor1.ts(55,16): 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,16): 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 'number' 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 'string' 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();
        }
    }
    
    