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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts ===
class A {
>A : Symbol(A, Decl(classStaticBlockUseBeforeDef3.ts, 0, 0))
static {
A.doSomething(); // should not error
>A.doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5))
>A : Symbol(A, Decl(classStaticBlockUseBeforeDef3.ts, 0, 0))
>doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5))
}
static doSomething() {
>doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5))
console.log("gotcha!");
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
}
}
class Baz {
>Baz : Symbol(Baz, Decl(classStaticBlockUseBeforeDef3.ts, 8, 1))
static {
console.log(FOO); // should error
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5))
}
}
const FOO = "FOO";
>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5))
class Bar {
>Bar : Symbol(Bar, Decl(classStaticBlockUseBeforeDef3.ts, 17, 18))
static {
console.log(FOO); // should not error
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5))
}
}
let u = "FOO" as "FOO" | "BAR";
>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3))
class CFA {
>CFA : Symbol(CFA, Decl(classStaticBlockUseBeforeDef3.ts, 24, 31))
static {
u = "BAR";
>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3))
u; // should be "BAR"
>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3))
}
static t = 1;
>t : Symbol(CFA.t, Decl(classStaticBlockUseBeforeDef3.ts, 30, 5))
static doSomething() {}
>doSomething : Symbol(CFA.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 32, 17))
static {
u; // should be "BAR"
>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3))
}
}
u; // should be "BAR"
>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3))
|