==== tests/cases/compiler/constructorWithAssignableReturnExpression.ts (2 errors) ====
    // a class constructor may return an expression, it must be assignable to the class instance type to be valid
    
    class C {
        constructor() {
            return 1;
        }
    }
    
    class D {
        x: number;
        constructor() {
            return 1; // error
                   ~
!!! constructorWithAssignableReturnExpression.ts(12,16): error TS2194: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class E {
        x: number;
        constructor() {
            return { x: 1 };
        }
    }
    
    class F<T> {
        x: T;
        constructor() {
            return { x: 1 }; // error
                   ~~~~~~~~
!!! constructorWithAssignableReturnExpression.ts(26,16): error TS2194: Return type of constructor signature must be assignable to the instance type of the class.
        }
    }
    
    class G<T> {
        x: T;
        constructor() {
            return { x: <T>null };
        }
    }