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