• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/// <reference path="fourslash.ts" />
2
3// @Filename: f.ts
4
5////class A {
6////    [|[|{| "contextRangeIndex": 0, "isDefinition": true |}constructor|](s: string) {}|]
7////}
8////class B extends A { }
9////[|export { [|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 2 |}A|], [|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 2 |}B|] };|]
10
11// @Filename: a.ts
12
13////[|import { [|{| "contextRangeIndex": 5 |}A|] as A1 } from "./f";|]
14////const a1 = new [|A1|]("a1");
15////export default class extends A1 { }
16////[|export { [|{| "contextRangeIndex": 8 |}B|] as [|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 8 |}B1|] } from "./f";|]
17
18// @Filename: b.ts
19
20////[|import [|{| "contextRangeIndex": 11 |}B|], { B1 } from "./a";|]
21////const d = new [|B|]("b");
22////const d1 = new [|B1|]("b1");
23
24verify.noErrors();
25const [aCtrDef, aCtr, exportDef, aExport, bExport, aImportDef, aImport, a1New, reExportDef, bReExport, b1Export, bDefaultDef, bDefault, bNew, b1New ] = test.ranges();
26verify.referenceGroups(aCtr, [
27    { definition: "class A", ranges: [aCtr, aExport] },
28    { definition: "class B", ranges: [bExport]},
29    { definition: "(alias) class B\nexport B", ranges: [bReExport]},
30    { definition: "(alias) class B1\nexport B1", ranges: [b1Export]},
31    { definition: "(alias) class B1\nimport B1", ranges: [b1New]},
32    { definition: "(alias) class A\nexport A", ranges: [aImport]},
33    { definition: "(alias) class A1\nimport A1", ranges: [a1New]},
34    { definition: "class default", ranges: []},
35    { definition: { text: "import B", range: bDefault }, ranges: [bNew]}]);
36