==== tests/cases/compiler/typesWithPrivateConstructor.ts (6 errors) ====
    // private constructors are not allowed
    
    class C {
        private constructor() { }
        ~~~~~~~
!!! typesWithPrivateConstructor.ts(4,5): error TS1089: 'private' modifier cannot appear on a constructor declaration.
    }
    
    var c = new C();
    var r: () => void = c.constructor;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! typesWithPrivateConstructor.ts(8,5): error TS2012: Cannot convert 'Function' to '() => void':
!!! 	Type '() => void' requires a call signature, but type 'Function' lacks one.
    
    class C2 {
        private constructor(x: number);
        ~~~~~~~
!!! typesWithPrivateConstructor.ts(11,5): error TS1089: 'private' modifier cannot appear on a constructor declaration.
        private constructor(x: any) { }
        ~~~~~~~
!!! typesWithPrivateConstructor.ts(12,5): error TS1089: 'private' modifier cannot appear on a constructor declaration.
    }
    
    var c2 = new C2();
                 ~~
!!! typesWithPrivateConstructor.ts(15,14): error TS2081: Supplied parameters do not match any signature of call target.
                 ~~
!!! typesWithPrivateConstructor.ts(15,14): error TS2085: Could not select overload for 'new' expression.
    var r2: (x: number) => void = c2.constructor;