tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I1'.
  Property 'iObj' is private in type 'C1' but not in type 'I1'.
tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I2'.
  Property 'iFn' is private in type 'C1' but not in type 'I2'.
tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignable to type 'I4'.
  Type '() => C2' provides no match for the signature 'new (): I3'.


==== tests/cases/compiler/interfaceImplementation1.ts (3 errors) ====
    interface I1 {
        iObj:{ };
        iNum:number;
        iAny:any;
        iFn():void;
    }
    
    interface I2 {
    	iFn(n:number, s:string):void;
    }
    
    class C1 implements I1,I2 {
          ~~
!!! error TS2420: Class 'C1' incorrectly implements interface 'I1'.
!!! error TS2420:   Property 'iObj' is private in type 'C1' but not in type 'I1'.
          ~~
!!! error TS2420: Class 'C1' incorrectly implements interface 'I2'.
!!! error TS2420:   Property 'iFn' is private in type 'C1' but not in type 'I2'.
        private iFn();
    	private iFn(n?:number, s?:string) { }
        private iAny:any;
        private iNum:number;
        private iObj:{ };
    }
    
    interface I3 {
        x: number;
    }
    
    interface I4 {
        ():I3;
        new ():I3;
        [call:number]:string;
    }
    
    class C2 implements I3 {
        public x = 1;
    }
    
    var a:I4 = function(){ 
        ~
!!! error TS2322: Type '() => C2' is not assignable to type 'I4'.
!!! error TS2322:   Type '() => C2' provides no match for the signature 'new (): I3'.
        return new C2();
    }
    new a();
    
    /*var b:I4 = C2;
    new b();
    */
    
    var c:I4;
    c[5];
    c["foo"];
    