1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
=== tests/cases/compiler/typeValueConflict2.ts ===
module M1 {
>M1 : Symbol(M1, Decl(typeValueConflict2.ts, 0, 0))
export class A<T> {
>A : Symbol(A, Decl(typeValueConflict2.ts, 0, 11))
>T : Symbol(T, Decl(typeValueConflict2.ts, 1, 19))
constructor(a: T) {
>a : Symbol(a, Decl(typeValueConflict2.ts, 2, 20))
>T : Symbol(T, Decl(typeValueConflict2.ts, 1, 19))
}
}
}
module M2 {
>M2 : Symbol(M2, Decl(typeValueConflict2.ts, 5, 1))
var M1 = 0;
>M1 : Symbol(M1, Decl(typeValueConflict2.ts, 7, 7))
// Should error. M1 should bind to the variable, not to the module.
class B extends M1.A<string> {
>B : Symbol(B, Decl(typeValueConflict2.ts, 7, 15))
>M1.A : Symbol(M1.A, Decl(typeValueConflict2.ts, 0, 11))
>M1 : Symbol(M1, Decl(typeValueConflict2.ts, 0, 0))
>A : Symbol(M1.A, Decl(typeValueConflict2.ts, 0, 11))
}
}
module M3 {
>M3 : Symbol(M3, Decl(typeValueConflict2.ts, 11, 1))
// Shouldn't error
class B extends M1.A<string> {
>B : Symbol(B, Decl(typeValueConflict2.ts, 12, 11))
>M1.A : Symbol(M1.A, Decl(typeValueConflict2.ts, 0, 11))
>M1 : Symbol(M1, Decl(typeValueConflict2.ts, 0, 0))
>A : Symbol(M1.A, Decl(typeValueConflict2.ts, 0, 11))
}
}
|