tests/cases/compiler/classImplementsClass5.ts(7,5): error TS2416: Property 'foo' in type 'C' is not assignable to the same property in base type 'A'.
  Type '() => number' is not assignable to type '() => number'. Two different types with this name exist, but they are unrelated.
    The 'this' types of each signature are incompatible.
      Type 'A' is not assignable to type 'C'.
        Types have separate declarations of a private property 'x'.
tests/cases/compiler/classImplementsClass5.ts(16,1): error TS2322: Type 'C2' is not assignable to type 'C'.
tests/cases/compiler/classImplementsClass5.ts(17,1): error TS2322: Type 'C' is not assignable to type 'C2'.
  Types have separate declarations of a private property 'x'.


==== tests/cases/compiler/classImplementsClass5.ts (3 errors) ====
    class A {
        private x = 1;
        foo(): number { return 1; }
    }
    class C implements A {
        private x = 1;
        foo() {
        ~~~
!!! error TS2416: Property 'foo' in type 'C' is not assignable to the same property in base type 'A'.
!!! error TS2416:   Type '() => number' is not assignable to type '() => number'. Two different types with this name exist, but they are unrelated.
!!! error TS2416:     The 'this' types of each signature are incompatible.
!!! error TS2416:       Type 'A' is not assignable to type 'C'.
!!! error TS2416:         Types have separate declarations of a private property 'x'.
            return 1;
        }
    }
    
    class C2 extends A {}
    
    var c: C;
    var c2: C2;
    c = c2;
    ~
!!! error TS2322: Type 'C2' is not assignable to type 'C'.
    c2 = c;
    ~~
!!! error TS2322: Type 'C' is not assignable to type 'C2'.
!!! error TS2322:   Types have separate declarations of a private property 'x'.