=== tests/cases/compiler/declFileGenericType.ts === export module C { >C : typeof C export class A{ } >A : A >T : T export class B { } >B : B export function F(x: T): A { return null; } >F : (x: T) => A >T : T >x : T >T : T >A : A >B : B export function F2(x: T): C.A { return null; } >F2 : (x: T) => A >T : T >x : T >T : T >C : unknown >A : A >C : unknown >B : B export function F3(x: T): C.A[] { return null; } >F3 : (x: T) => A[] >T : T >x : T >T : T >C : unknown >A : A >C : unknown >B : B export function F4>(x: T): Array> { return null; } >F4 : >(x: T) => A[] >T : T >A : A >B : B >x : T >T : T >Array : T[] >C : unknown >A : A >C : unknown >B : B export function F5(): T { return null; } >F5 : () => T >T : T >T : T export function F6>(x: T): T { return null; } >F6 : >(x: T) => T >T : T >A : A >B : B >x : T >T : T >T : T export class D{ >D : D >T : T constructor(public val: T) { } >val : T >T : T } } export var a: C.A; >a : C.A >C : unknown >A : C.A >C : unknown >B : C.B export var b = C.F; >b : (x: T) => C.A >C.F : (x: T) => C.A >C : typeof C >F : (x: T) => C.A export var c = C.F2; >c : (x: T) => C.A >C.F2 : (x: T) => C.A >C : typeof C >F2 : (x: T) => C.A export var d = C.F3; >d : (x: T) => C.A[] >C.F3 : (x: T) => C.A[] >C : typeof C >F3 : (x: T) => C.A[] export var e = C.F4; >e : >(x: T) => C.A[] >C.F4 : >(x: T) => C.A[] >C : typeof C >F4 : >(x: T) => C.A[] export var x = (new C.D>(new C.A())).val; >x : C.A >(new C.D>(new C.A())).val : C.A >(new C.D>(new C.A())) : C.D> >new C.D>(new C.A()) : C.D> >C.D : typeof C.D >C : typeof C >D : typeof C.D >C : unknown >A : C.A >C : unknown >B : C.B >new C.A() : C.A >C.A : typeof C.A >C : typeof C >A : typeof C.A >C : unknown >B : C.B >val : C.A export function f>() { } >f : >() => void >T : T >C : unknown >A : C.A >C : unknown >B : C.B export var g = C.F5>(); >g : C.A >C.F5>() : C.A >C.F5 : () => T >C : typeof C >F5 : () => T >C : unknown >A : C.A >C : unknown >B : C.B export class h extends C.A{ } >h : h >C : unknown >A : C.A >C : unknown >B : C.B export interface i extends C.A { } >i : i >C : unknown >A : C.A >C : unknown >B : C.B export var j = C.F6; >j : >(x: T) => T >C.F6 : >(x: T) => T >C : typeof C >F6 : >(x: T) => T