==== tests/cases/compiler/typeIdentityConsidersBrands.ts (2 errors) ==== class X{ name: string; } class Y{ name: string; } class X_1 { private name: string; } class Y_1 { private name: string; } function foo(arg: X){} var a = new Y(); var b = new X(); a = b; // ok foo(a); // ok var a2 = new Y_1(); var b2 = new X_1(); function foo2(arg: X_1) { } a2 = b2; // should error ~~ !!! Type 'X_1' is not assignable to type 'Y_1': !!! Private property 'name' cannot be reimplemented. foo2(a2); // should error ~~ !!! Argument of type 'Y_1' is not assignable to parameter of type 'X_1'.