newtests/lsp/documentSymbol/stuff.js (101 lines of code) (raw):

// @flow const x = { C: class {}, foo: 123, bar: function() {}, obj: { nested: "foo" }, }; class Y { #foo() {} foo() {} bar = 123; #baz = "foo"; get abc() {} set abc(x: string) {} Z = class { zmeth() {} } } const z = (class { foo() {} }); const Z1 = class { foo() {} }; const Z2 = (class Z2 { foo() {} }); const Z3 = class Z3 { foo() {} }; // z4 <> Z4 const z4 = class Z4 { foo() {} }; declare class Z5 { foo(): void } declare export class Z6 { foo(): void } export class Z7 { foo() {} } function f1() { const f1_x = 123; } const f2 = function() { const f2_x = 123; }; const f3 = function f3_expr() { const f3_x = 123; }; declare function f4(): void; declare export function f5(): void; export function f6() { const f6_x = 123; } (function() { const iife_x = 123; }); type T1 = { foo(): void; bar: { baz: string }; [key: string]: string; [[call]]: void; } interface I1 { foo(): void; bar: { baz: string }; [key: string]: string; } declare interface I2 { foo(): void; } type I3 = interface { foo(): void; } opaque type I4 = { foo: string; } declare opaque type I5: { foo: string; } declare var decl1: { foo: string }; declare export var decl2: { foo: string }; declare export default { foo: string }; export default { foo: 123, }; declare module M1 { declare class C {} } declare module "M2" { declare class C {} } enum E1 { X = 1, } function loops() { for (let i = 0; i < 12; i++) {} for (let j in { x: 123 }) {} for (let k of [1, 2, 3]) {} }