TypeScript/tests/baselines/reference/genericClasses3.types

48 lines
1.6 KiB
Text

=== tests/cases/compiler/genericClasses3.ts ===
class B<T> {
>B : B<T>, Symbol(B,Decl(genericClasses3.ts,0,0))
>T : T, Symbol(T,Decl(genericClasses3.ts,0,8))
a: T;
>a : T, Symbol(a,Decl(genericClasses3.ts,0,12))
>T : T, Symbol(T,Decl(genericClasses3.ts,0,8))
b: T;
>b : T, Symbol(b,Decl(genericClasses3.ts,1,9))
>T : T, Symbol(T,Decl(genericClasses3.ts,0,8))
}
class C<T> extends B<T> {
>C : C<T>, Symbol(C,Decl(genericClasses3.ts,3,1))
>T : T, Symbol(T,Decl(genericClasses3.ts,5,8))
>B : B<T>, Symbol(B,Decl(genericClasses3.ts,0,0))
>T : T, Symbol(T,Decl(genericClasses3.ts,5,8))
public x: T;
>x : T, Symbol(x,Decl(genericClasses3.ts,5,25))
>T : T, Symbol(T,Decl(genericClasses3.ts,5,8))
}
var v2: C <string>;
>v2 : C<string>, Symbol(v2,Decl(genericClasses3.ts,9,3))
>C : C<T>, Symbol(C,Decl(genericClasses3.ts,3,1))
var y = v2.x; // should be 'string'
>y : string, Symbol(y,Decl(genericClasses3.ts,11,3))
>v2.x : string, Symbol(C.x,Decl(genericClasses3.ts,5,25))
>v2 : C<string>, Symbol(v2,Decl(genericClasses3.ts,9,3))
>x : string, Symbol(C.x,Decl(genericClasses3.ts,5,25))
var u = v2.a; // should be 'string'
>u : string, Symbol(u,Decl(genericClasses3.ts,12,3))
>v2.a : string, Symbol(B.a,Decl(genericClasses3.ts,0,12))
>v2 : C<string>, Symbol(v2,Decl(genericClasses3.ts,9,3))
>a : string, Symbol(B.a,Decl(genericClasses3.ts,0,12))
var z = v2.b;
>z : string, Symbol(z,Decl(genericClasses3.ts,14,3))
>v2.b : string, Symbol(B.b,Decl(genericClasses3.ts,1,9))
>v2 : C<string>, Symbol(v2,Decl(genericClasses3.ts,9,3))
>b : string, Symbol(B.b,Decl(genericClasses3.ts,1,9))