=== tests/cases/compiler/genericClasses2.ts === interface Foo { >Foo : Foo >T : T a: T; >a : T >T : T } class C { >C : C >T : T public x: T; >x : T >T : T public y: Foo; >y : Foo >Foo : Foo >T : T public z: Foo; >z : Foo >Foo : Foo } var v1 : C; >v1 : C >C : C var y = v1.x; // should be 'string' >y : string >v1.x : string >v1 : C >x : string var w = v1.y.a; // should be 'string' >w : string >v1.y.a : string >v1.y : Foo >v1 : C >y : Foo >a : string var z = v1.z.a; // should be 'number' >z : number >v1.z.a : number >v1.z : Foo >v1 : C >z : Foo >a : number