@zzzen/pyright-internal 1.2.0-dev.20231001 → 1.2.0-dev.20231015

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/analyzer/checker.d.ts +3 -1
  2. package/dist/analyzer/checker.js +82 -41
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/codeFlowEngine.js +11 -4
  5. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  6. package/dist/analyzer/constraintSolver.js +208 -151
  7. package/dist/analyzer/constraintSolver.js.map +1 -1
  8. package/dist/analyzer/decorators.d.ts +6 -1
  9. package/dist/analyzer/decorators.js +34 -25
  10. package/dist/analyzer/decorators.js.map +1 -1
  11. package/dist/analyzer/parseTreeUtils.d.ts +2 -1
  12. package/dist/analyzer/parseTreeUtils.js +21 -2
  13. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  14. package/dist/analyzer/program.js +7 -1
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/properties.d.ts +2 -2
  17. package/dist/analyzer/properties.js +8 -2
  18. package/dist/analyzer/properties.js.map +1 -1
  19. package/dist/analyzer/protocols.js +102 -149
  20. package/dist/analyzer/protocols.js.map +1 -1
  21. package/dist/analyzer/scopeUtils.js +3 -2
  22. package/dist/analyzer/scopeUtils.js.map +1 -1
  23. package/dist/analyzer/service.js +13 -13
  24. package/dist/analyzer/service.js.map +1 -1
  25. package/dist/analyzer/sourceFile.d.ts +3 -2
  26. package/dist/analyzer/sourceFile.js +21 -7
  27. package/dist/analyzer/sourceFile.js.map +1 -1
  28. package/dist/analyzer/sourceFileInfo.d.ts +4 -4
  29. package/dist/analyzer/sourceFileInfo.js +2 -0
  30. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  31. package/dist/analyzer/staticExpressions.js +2 -1
  32. package/dist/analyzer/staticExpressions.js.map +1 -1
  33. package/dist/analyzer/typeEvaluator.d.ts +2 -1
  34. package/dist/analyzer/typeEvaluator.js +171 -244
  35. package/dist/analyzer/typeEvaluator.js.map +1 -1
  36. package/dist/analyzer/typeEvaluatorTypes.d.ts +10 -2
  37. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  38. package/dist/analyzer/typeGuards.d.ts +1 -1
  39. package/dist/analyzer/typeGuards.js +127 -55
  40. package/dist/analyzer/typeGuards.js.map +1 -1
  41. package/dist/analyzer/typeUtils.d.ts +4 -1
  42. package/dist/analyzer/typeUtils.js +82 -8
  43. package/dist/analyzer/typeUtils.js.map +1 -1
  44. package/dist/analyzer/typeVarContext.d.ts +4 -1
  45. package/dist/analyzer/typeVarContext.js +7 -2
  46. package/dist/analyzer/typeVarContext.js.map +1 -1
  47. package/dist/analyzer/types.d.ts +5 -2
  48. package/dist/analyzer/types.js +25 -14
  49. package/dist/analyzer/types.js.map +1 -1
  50. package/dist/backgroundThreadBase.js +5 -1
  51. package/dist/backgroundThreadBase.js.map +1 -1
  52. package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
  53. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  54. package/dist/common/configOptions.d.ts +2 -1
  55. package/dist/common/configOptions.js +9 -5
  56. package/dist/common/configOptions.js.map +1 -1
  57. package/dist/common/extensibility.d.ts +19 -8
  58. package/dist/common/extensibility.js +6 -7
  59. package/dist/common/extensibility.js.map +1 -1
  60. package/dist/common/fileSystem.d.ts +9 -4
  61. package/dist/common/fileSystem.js +8 -1
  62. package/dist/common/fileSystem.js.map +1 -1
  63. package/dist/common/pathUtils.d.ts +5 -4
  64. package/dist/common/pathUtils.js +13 -7
  65. package/dist/common/pathUtils.js.map +1 -1
  66. package/dist/common/pythonVersion.d.ts +1 -1
  67. package/dist/common/pythonVersion.js +1 -1
  68. package/dist/common/realFileSystem.d.ts +7 -1
  69. package/dist/common/realFileSystem.js +33 -37
  70. package/dist/common/realFileSystem.js.map +1 -1
  71. package/dist/common/serviceProvider.d.ts +1 -1
  72. package/dist/common/serviceProvider.js.map +1 -1
  73. package/dist/common/serviceProviderExtensions.d.ts +5 -3
  74. package/dist/common/serviceProviderExtensions.js +6 -1
  75. package/dist/common/serviceProviderExtensions.js.map +1 -1
  76. package/dist/languageServerBase.d.ts +6 -2
  77. package/dist/languageServerBase.js +31 -4
  78. package/dist/languageServerBase.js.map +1 -1
  79. package/dist/languageService/autoImporter.d.ts +1 -1
  80. package/dist/languageService/callHierarchyProvider.d.ts +0 -1
  81. package/dist/languageService/callHierarchyProvider.js +33 -16
  82. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  83. package/dist/languageService/completionProvider.d.ts +2 -2
  84. package/dist/languageService/completionProvider.js +20 -23
  85. package/dist/languageService/completionProvider.js.map +1 -1
  86. package/dist/languageService/definitionProvider.js +4 -5
  87. package/dist/languageService/definitionProvider.js.map +1 -1
  88. package/dist/languageService/documentHighlightProvider.js +5 -2
  89. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  90. package/dist/languageService/documentSymbolCollector.d.ts +32 -23
  91. package/dist/languageService/documentSymbolCollector.js +170 -267
  92. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  93. package/dist/languageService/hoverProvider.js +1 -5
  94. package/dist/languageService/hoverProvider.js.map +1 -1
  95. package/dist/languageService/navigationUtils.d.ts +1 -1
  96. package/dist/languageService/navigationUtils.js +2 -2
  97. package/dist/languageService/navigationUtils.js.map +1 -1
  98. package/dist/languageService/referencesProvider.d.ts +15 -8
  99. package/dist/languageService/referencesProvider.js +41 -20
  100. package/dist/languageService/referencesProvider.js.map +1 -1
  101. package/dist/languageService/renameProvider.js +3 -3
  102. package/dist/languageService/renameProvider.js.map +1 -1
  103. package/dist/localization/localize.d.ts +21 -0
  104. package/dist/localization/localize.js +7 -0
  105. package/dist/localization/localize.js.map +1 -1
  106. package/dist/localization/package.nls.cs.json +5 -0
  107. package/dist/localization/package.nls.de.json +5 -0
  108. package/dist/localization/package.nls.en-us.json +7 -0
  109. package/dist/localization/package.nls.es.json +5 -0
  110. package/dist/localization/package.nls.fr.json +5 -0
  111. package/dist/localization/package.nls.it.json +5 -0
  112. package/dist/localization/package.nls.ja.json +5 -0
  113. package/dist/localization/package.nls.ko.json +5 -0
  114. package/dist/localization/package.nls.pl.json +5 -0
  115. package/dist/localization/package.nls.pt-br.json +5 -0
  116. package/dist/localization/package.nls.qps-ploc.json +5 -0
  117. package/dist/localization/package.nls.ru.json +5 -0
  118. package/dist/localization/package.nls.tr.json +5 -0
  119. package/dist/localization/package.nls.zh-cn.json +5 -0
  120. package/dist/localization/package.nls.zh-tw.json +5 -0
  121. package/dist/parser/stringTokenUtils.js +9 -5
  122. package/dist/parser/stringTokenUtils.js.map +1 -1
  123. package/dist/parser/tokenizer.d.ts +1 -0
  124. package/dist/parser/tokenizer.js +5 -5
  125. package/dist/parser/tokenizer.js.map +1 -1
  126. package/dist/pyright.js +2 -1
  127. package/dist/pyright.js.map +1 -1
  128. package/dist/pyrightFileSystem.d.ts +0 -1
  129. package/dist/pyrightFileSystem.js +0 -3
  130. package/dist/pyrightFileSystem.js.map +1 -1
  131. package/dist/readonlyAugmentedFileSystem.d.ts +1 -4
  132. package/dist/readonlyAugmentedFileSystem.js +0 -10
  133. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  134. package/dist/server.js +2 -1
  135. package/dist/server.js.map +1 -1
  136. package/dist/tests/checker.test.js +8 -0
  137. package/dist/tests/checker.test.js.map +1 -1
  138. package/dist/tests/config.test.js +5 -3
  139. package/dist/tests/config.test.js.map +1 -1
  140. package/dist/tests/documentSymbolCollector.test.js +8 -363
  141. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  142. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +56 -10
  143. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
  144. package/dist/tests/harness/fourslash/testState.d.ts +5 -2
  145. package/dist/tests/harness/fourslash/testState.js +13 -14
  146. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  147. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  148. package/dist/tests/importResolver.test.js +0 -9
  149. package/dist/tests/importResolver.test.js.map +1 -1
  150. package/dist/tests/pathUtils.test.js +2 -2
  151. package/dist/tests/pathUtils.test.js.map +1 -1
  152. package/dist/tests/testStateUtils.d.ts +3 -0
  153. package/dist/tests/testStateUtils.js +25 -1
  154. package/dist/tests/testStateUtils.js.map +1 -1
  155. package/dist/tests/typeEvaluator1.test.js +5 -1
  156. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  157. package/dist/tests/typeEvaluator2.test.js +13 -5
  158. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  159. package/dist/tests/typeEvaluator3.test.js +12 -4
  160. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  161. package/dist/tests/typeEvaluator4.test.js +17 -9
  162. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  163. package/dist/tests/typeEvaluator5.test.js +4 -2
  164. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  165. package/dist/workspaceFactory.d.ts +2 -1
  166. package/dist/workspaceFactory.js +3 -1
  167. package/dist/workspaceFactory.js.map +1 -1
  168. package/package.json +1 -1
  169. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.d.ts +0 -1
  170. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js +0 -40
  171. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js.map +0 -1
@@ -6,18 +6,9 @@
6
6
  *
7
7
  * Tests documentSymbolCollector
8
8
  */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
9
  Object.defineProperty(exports, "__esModule", { value: true });
13
- const assert_1 = __importDefault(require("assert"));
14
- const vscode_languageserver_1 = require("vscode-languageserver");
15
- const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
16
- const collectionUtils_1 = require("../common/collectionUtils");
17
- const core_1 = require("../common/core");
18
- const textRange_1 = require("../common/textRange");
19
- const documentSymbolCollector_1 = require("../languageService/documentSymbolCollector");
20
10
  const testState_1 = require("./harness/fourslash/testState");
11
+ const testStateUtils_1 = require("./testStateUtils");
21
12
  test('folder reference', () => {
22
13
  const code = `
23
14
  // @filename: common/__init__.py
@@ -67,7 +58,7 @@ test('folder reference', () => {
67
58
  const state = (0, testState_1.parseAndGetTestState)(code).state;
68
59
  const ranges = state.getRangesByText().get('io2');
69
60
  for (const range of ranges) {
70
- verifyReferencesAtPosition(state.program, state.configOptions, 'io2', range.fileName, range.pos, ranges);
61
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'io2', range.fileName, range.pos, ranges);
71
62
  }
72
63
  });
73
64
  test('__init__ wildcard import', () => {
@@ -119,7 +110,7 @@ test('__init__ wildcard import', () => {
119
110
  const state = (0, testState_1.parseAndGetTestState)(code).state;
120
111
  const ranges = state.getRangesByText().get('tools');
121
112
  for (const range of ranges) {
122
- verifyReferencesAtPosition(state.program, state.configOptions, 'tools', range.fileName, range.pos, ranges);
113
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'tools', range.fileName, range.pos, ranges);
123
114
  }
124
115
  });
125
116
  test('submodule wildcard import', () => {
@@ -171,7 +162,7 @@ test('submodule wildcard import', () => {
171
162
  const state = (0, testState_1.parseAndGetTestState)(code).state;
172
163
  const ranges = state.getRangesByText().get('pathUtils');
173
164
  for (const range of ranges) {
174
- verifyReferencesAtPosition(state.program, state.configOptions, 'pathUtils', range.fileName, range.pos, ranges);
165
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'pathUtils', range.fileName, range.pos, ranges);
175
166
  }
176
167
  });
177
168
  test('use localName import alias', () => {
@@ -320,7 +311,7 @@ test('import dotted name', () => {
320
311
  function verify(name) {
321
312
  const ranges = state.getRangesByText().get(name);
322
313
  for (const range of ranges) {
323
- verifyReferencesAtPosition(state.program, state.configOptions, name, range.fileName, range.pos, ranges);
314
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, name, range.fileName, range.pos, ranges);
324
315
  }
325
316
  }
326
317
  verify('nest1');
@@ -347,10 +338,10 @@ test('import alias', () => {
347
338
  const state = (0, testState_1.parseAndGetTestState)(code).state;
348
339
  const marker1 = state.getMarkerByName('marker1');
349
340
  const ranges1 = state.getRangesByText().get('module1');
350
- verifyReferencesAtPosition(state.program, state.configOptions, 'module1', marker1.fileName, marker1.position, ranges1);
341
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'module1', marker1.fileName, marker1.position, ranges1);
351
342
  const marker2 = state.getMarkerByName('marker2');
352
343
  const ranges2 = state.getRangesByText().get('module2');
353
- verifyReferencesAtPosition(state.program, state.configOptions, 'module2', marker2.fileName, marker2.position, ranges2);
344
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'module2', marker2.fileName, marker2.position, ranges2);
354
345
  });
355
346
  test('string in __all__', () => {
356
347
  const code = `
@@ -365,352 +356,6 @@ test('string in __all__', () => {
365
356
  const state = (0, testState_1.parseAndGetTestState)(code).state;
366
357
  const marker1 = state.getMarkerByName('marker1');
367
358
  const ranges1 = state.getRangesByText().get('A');
368
- verifyReferencesAtPosition(state.program, state.configOptions, 'A', marker1.fileName, marker1.position, ranges1);
359
+ (0, testStateUtils_1.verifyReferencesAtPosition)(state.program, state.configOptions, 'A', marker1.fileName, marker1.position, ranges1);
369
360
  });
370
- test('overridden symbols test', () => {
371
- const code = `
372
- // @filename: test.py
373
- //// class B:
374
- //// def [|foo|](self):
375
- //// pass
376
- ////
377
- //// class C(B):
378
- //// def [|foo|](self):
379
- //// pass
380
- ////
381
- //// B().[|foo|]()
382
- //// C().[|foo|]()
383
- `;
384
- const state = (0, testState_1.parseAndGetTestState)(code).state;
385
- const ranges = state.getRangesByText().get('foo');
386
- for (const range of ranges) {
387
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
388
- }
389
- });
390
- test('overridden symbols multi inheritance test', () => {
391
- const code = `
392
- // @filename: test.py
393
- //// class A:
394
- //// def [|foo|](self):
395
- //// pass
396
- ////
397
- //// class B:
398
- //// def [|foo|](self):
399
- //// pass
400
- ////
401
- //// class C(A, B):
402
- //// def [|/*marker*/foo|](self):
403
- //// pass
404
- ////
405
- //// A().[|foo|]()
406
- //// B().[|foo|]()
407
- //// C().[|foo|]()
408
- `;
409
- const state = (0, testState_1.parseAndGetTestState)(code).state;
410
- const marker = state.getMarkerByName('marker');
411
- const ranges = state.getRangesByText().get('foo');
412
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', marker.fileName, marker.position, ranges);
413
- });
414
- test('__init__ test', () => {
415
- const code = `
416
- // @filename: test.py
417
- //// class A:
418
- //// def __init__(self):
419
- //// pass
420
- ////
421
- //// class B:
422
- //// def __init__(self):
423
- //// pass
424
- ////
425
- //// class C(A, B):
426
- //// def [|/*marker*/__init__|](self):
427
- //// pass
428
- ////
429
- //// A()
430
- //// B()
431
- //// [|C|]()
432
- `;
433
- const state = (0, testState_1.parseAndGetTestState)(code).state;
434
- const marker = state.getMarkerByName('marker');
435
- const ranges = state.getRangesByText().get('__init__');
436
- ranges.push(...state.getRangesByText().get('C'));
437
- verifyReferencesAtPosition(state.program, state.configOptions, ['__init__', 'C'], marker.fileName, marker.position, ranges);
438
- });
439
- test('super __init__ test', () => {
440
- const code = `
441
- // @filename: test.py
442
- //// class A:
443
- //// def [|__init__|](self):
444
- //// pass
445
- ////
446
- //// class B:
447
- //// def __init__(self):
448
- //// pass
449
- ////
450
- //// class C(A, B):
451
- //// def __init__(self):
452
- //// super().[|/*marker*/__init__|]()
453
- //// pass
454
- ////
455
- //// [|A|]()
456
- //// B()
457
- //// C()
458
- `;
459
- const state = (0, testState_1.parseAndGetTestState)(code).state;
460
- const marker = state.getMarkerByName('marker');
461
- const ranges = state.getRangesByText().get('__init__');
462
- ranges.push(...state.getRangesByText().get('A'));
463
- verifyReferencesAtPosition(state.program, state.configOptions, ['__init__', 'A'], marker.fileName, marker.position, ranges);
464
- });
465
- test('__init__ internal class test', () => {
466
- const code = `
467
- // @filename: test.py
468
- //// class A:
469
- //// def __init__(self):
470
- //// class A_inner:
471
- //// def [|/*marker*/__init__|](self):
472
- //// pass
473
- //// self.inner = [|A_inner|]()
474
- ////
475
- ////
476
- //// class B:
477
- //// def __init__(self):
478
- //// pass
479
- ////
480
- //// class C(A, B):
481
- //// def __init__(self):
482
- //// pass
483
- ////
484
- //// A()
485
- //// B()
486
- //// C()
487
- `;
488
- const state = (0, testState_1.parseAndGetTestState)(code).state;
489
- const marker = state.getMarkerByName('marker');
490
- const ranges = state.getRangesByText().get('__init__');
491
- ranges.push(...state.getRangesByText().get('A_inner'));
492
- verifyReferencesAtPosition(state.program, state.configOptions, ['__init__', 'A_inner'], marker.fileName, marker.position, ranges);
493
- });
494
- test('overridden symbols multi inheritance with multiple base with same name test', () => {
495
- const code = `
496
- // @filename: test.py
497
- //// class A:
498
- //// def [|/*marker*/foo|](self):
499
- //// pass
500
- ////
501
- //// class B:
502
- //// def foo(self):
503
- //// pass
504
- ////
505
- //// class C(A, B):
506
- //// def [|foo|](self):
507
- //// pass
508
- ////
509
- //// A().[|foo|]()
510
- //// B().foo()
511
- //// C().[|foo|]()
512
- `;
513
- const state = (0, testState_1.parseAndGetTestState)(code).state;
514
- const marker = state.getMarkerByName('marker');
515
- const ranges = state.getRangesByText().get('foo');
516
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', marker.fileName, marker.position, ranges);
517
- });
518
- test('protocol member symbol test', () => {
519
- const code = `
520
- // @filename: test.py
521
- //// from typing import Protocol
522
- ////
523
- //// class A:
524
- //// def foo(self):
525
- //// pass
526
- ////
527
- //// class P(Protocol):
528
- //// def [|foo|](self): ...
529
- ////
530
- //// def foo(p: P):
531
- //// p.[|/*marker*/foo|]()
532
- ////
533
- //// foo(A().foo())
534
- `;
535
- const state = (0, testState_1.parseAndGetTestState)(code).state;
536
- const marker = state.getMarkerByName('marker');
537
- const ranges = state.getRangesByText().get('foo');
538
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', marker.fileName, marker.position, ranges);
539
- });
540
- test('overridden symbols nested inheritance test', () => {
541
- const code = `
542
- // @filename: test.py
543
- //// class A:
544
- //// def [|foo|](self):
545
- //// pass
546
- ////
547
- //// class B(A):
548
- //// def [|foo|](self):
549
- //// pass
550
- ////
551
- //// class C(B):
552
- //// def [|foo|](self):
553
- //// pass
554
- ////
555
- //// A().[|foo|]()
556
- //// B().[|foo|]()
557
- //// C().[|foo|]()
558
- `;
559
- const state = (0, testState_1.parseAndGetTestState)(code).state;
560
- const ranges = state.getRangesByText().get('foo');
561
- for (const range of ranges) {
562
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
563
- }
564
- });
565
- test('overridden symbols nested inheritance no direct override test', () => {
566
- const code = `
567
- // @filename: test.py
568
- //// class A:
569
- //// def [|foo|](self):
570
- //// pass
571
- ////
572
- //// class B(A):
573
- //// def [|foo|](self):
574
- //// pass
575
- ////
576
- //// class C(B):
577
- //// pass
578
- ////
579
- //// A().[|foo|]()
580
- //// B().[|foo|]()
581
- //// C().[|foo|]()
582
- `;
583
- const state = (0, testState_1.parseAndGetTestState)(code).state;
584
- const ranges = state.getRangesByText().get('foo');
585
- for (const range of ranges) {
586
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
587
- }
588
- });
589
- test('overridden symbols different type test', () => {
590
- const code = `
591
- // @filename: test.py
592
- //// class A:
593
- //// def [|foo|](self):
594
- //// pass
595
- ////
596
- //// class B:
597
- //// foo: int
598
- ////
599
- //// class C(A, B):
600
- //// def [|foo|](self):
601
- //// pass
602
- ////
603
- //// A().[|foo|]()
604
- //// B().foo = 1
605
- //// C().[|/*marker*/foo|]()
606
- `;
607
- const state = (0, testState_1.parseAndGetTestState)(code).state;
608
- const marker = state.getMarkerByName('marker');
609
- const ranges = state.getRangesByText().get('foo');
610
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', marker.fileName, marker.position, ranges);
611
- });
612
- test('overridden and overloaded symbol test', () => {
613
- const code = `
614
- // @filename: test.py
615
- //// from typing import overload
616
- ////
617
- //// class A:
618
- //// def [|foo|](self):
619
- //// pass
620
- ////
621
- //// class B(A):
622
- //// @overload
623
- //// def [|foo|](self):
624
- //// pass
625
- //// @overload
626
- //// def [|foo|](self, a):
627
- //// pass
628
- ////
629
- //// A().[|foo|]()
630
- //// B().[|foo|](1)
631
- `;
632
- const state = (0, testState_1.parseAndGetTestState)(code).state;
633
- const ranges = state.getRangesByText().get('foo');
634
- for (const range of ranges) {
635
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
636
- }
637
- });
638
- test('library method override test', () => {
639
- const code = `
640
- // @filename: test.py
641
- //// from lib import BaseType
642
- ////
643
- //// class A(BaseType):
644
- //// def [|foo|](self):
645
- //// pass
646
- ////
647
- //// A().[|foo|]()
648
-
649
- // @filename: lib/__init__.py
650
- // @library: true
651
- //// class BaseType:
652
- //// def foo(self):
653
- //// pass
654
- `;
655
- const state = (0, testState_1.parseAndGetTestState)(code).state;
656
- const ranges = state.getRangesByText().get('foo');
657
- for (const range of ranges) {
658
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
659
- }
660
- });
661
- test('variable overridden test 1', () => {
662
- const code = `
663
- // @filename: test.py
664
- //// class A:
665
- //// [|foo|] = 1
666
- ////
667
- //// class B(A):
668
- //// foo = 2
669
- ////
670
- //// a = A().[|foo|]
671
- //// b = B().foo
672
- `;
673
- const state = (0, testState_1.parseAndGetTestState)(code).state;
674
- const ranges = state.getRangesByText().get('foo');
675
- for (const range of ranges) {
676
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
677
- }
678
- });
679
- test('variable overridden test 2', () => {
680
- const code = `
681
- // @filename: test.py
682
- //// class A:
683
- //// foo = 1
684
- ////
685
- //// class B(A):
686
- //// [|foo|] = 2
687
- ////
688
- //// a = A().foo
689
- //// b = B().[|foo|]
690
- `;
691
- const state = (0, testState_1.parseAndGetTestState)(code).state;
692
- const ranges = state.getRangesByText().get('foo');
693
- for (const range of ranges) {
694
- verifyReferencesAtPosition(state.program, state.configOptions, 'foo', range.fileName, range.pos, ranges);
695
- }
696
- });
697
- function verifyReferencesAtPosition(program, configOption, symbolNames, fileName, position, ranges) {
698
- const sourceFile = program.getBoundSourceFile(fileName);
699
- (0, assert_1.default)(sourceFile);
700
- const node = (0, parseTreeUtils_1.findNodeByOffset)(sourceFile.getParseResults().parseTree, position);
701
- const decls = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(program, node,
702
- /* resolveLocalName */ true, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Reference, vscode_languageserver_1.CancellationToken.None);
703
- const rangesByFile = (0, collectionUtils_1.createMapFromItems)(ranges, (r) => r.fileName);
704
- for (const rangeFileName of rangesByFile.keys()) {
705
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector(program, (0, core_1.isArray)(symbolNames) ? symbolNames : [symbolNames], decls, vscode_languageserver_1.CancellationToken.None, program.getBoundSourceFile(rangeFileName).getParseResults().parseTree,
706
- /* treatModuleInImportAndFromImportSame */ true,
707
- /* skipUnreachableCode */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Reference);
708
- const results = collector.collect();
709
- const rangesOnFile = rangesByFile.get(rangeFileName);
710
- assert_1.default.strictEqual(results.length, rangesOnFile.length, `${rangeFileName}@${symbolNames}`);
711
- for (const result of results) {
712
- (0, assert_1.default)(rangesOnFile.some((r) => r.pos === result.range.start && r.end === textRange_1.TextRange.getEnd(result.range)));
713
- }
714
- }
715
- }
716
361
  //# sourceMappingURL=documentSymbolCollector.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"documentSymbolCollector.test.js","sourceRoot":"","sources":["../../../src/tests/documentSymbolCollector.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentSymbolCollector.test.js","sourceRoot":"","sources":["../../../src/tests/documentSymbolCollector.test.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,32 @@
1
1
  "use strict";
2
2
  /// <reference path="fourslash.ts" />
3
3
  // @filename: getitem.py
4
- //// from typing import Literal
5
- //// class Foo:
4
+ //// from typing import Literal, Generic, TypeVar, overload
5
+ //// class ClassA:
6
6
  //// def __getitem__(self, key: Literal['a', 'b']):
7
7
  //// pass
8
+ //// T = TypeVar("T")
9
+ //// class ClassB(Generic[T]):
10
+ //// @overload
11
+ //// def __getitem__(self, key: T):
12
+ //// pass
13
+ //// @overload
14
+ //// def __getitem__(self, key: Literal['foo']):
15
+ //// pass
8
16
  // @filename: test1.py
9
- //// from getitem import Foo
10
- //// f = Foo()
11
- //// f[[|/*marker1*/|]]
17
+ //// from typing import Literal
18
+ //// from getitem import ClassA, ClassB
19
+ //// a = ClassA()
20
+ //// a[[|/*marker1*/|]]
21
+ //// b = ClassB[Literal['x']]()
22
+ //// b[[|/*marker2*/|]]
12
23
  // @filename: test2.py
13
- //// from getitem import Foo
14
- //// f = Foo()
15
- //// f[[|"/*marker2*/"|]]
24
+ //// from typing import Literal
25
+ //// from getitem import ClassA, ClassB
26
+ //// a = ClassA()
27
+ //// a[[|"/*marker3*/"|]]
28
+ //// b = ClassB[Literal['x']]()
29
+ //// b[[|"/*marker4*/"|]]
16
30
  {
17
31
  helper.openFiles(helper.getMarkers().map((m) => m.fileName));
18
32
  // @ts-ignore
@@ -34,17 +48,49 @@
34
48
  ],
35
49
  },
36
50
  marker2: {
51
+ completions: [
52
+ {
53
+ label: "'x'",
54
+ kind: Consts.CompletionItemKind.Constant,
55
+ textEdit: { range: helper.getPositionRange('marker2'), newText: "'x'" },
56
+ detail: Consts.IndexValueDetail,
57
+ },
58
+ {
59
+ label: "'foo'",
60
+ kind: Consts.CompletionItemKind.Constant,
61
+ textEdit: { range: helper.getPositionRange('marker2'), newText: "'foo'" },
62
+ detail: Consts.IndexValueDetail,
63
+ },
64
+ ],
65
+ },
66
+ marker3: {
37
67
  completions: [
38
68
  {
39
69
  label: '"a"',
40
70
  kind: Consts.CompletionItemKind.Constant,
41
- textEdit: { range: helper.getPositionRange('marker2'), newText: '"a"' },
71
+ textEdit: { range: helper.getPositionRange('marker3'), newText: '"a"' },
42
72
  detail: Consts.IndexValueDetail,
43
73
  },
44
74
  {
45
75
  label: '"b"',
46
76
  kind: Consts.CompletionItemKind.Constant,
47
- textEdit: { range: helper.getPositionRange('marker2'), newText: '"b"' },
77
+ textEdit: { range: helper.getPositionRange('marker3'), newText: '"b"' },
78
+ detail: Consts.IndexValueDetail,
79
+ },
80
+ ],
81
+ },
82
+ marker4: {
83
+ completions: [
84
+ {
85
+ label: '"x"',
86
+ kind: Consts.CompletionItemKind.Constant,
87
+ textEdit: { range: helper.getPositionRange('marker4'), newText: '"x"' },
88
+ detail: Consts.IndexValueDetail,
89
+ },
90
+ {
91
+ label: '"foo"',
92
+ kind: Consts.CompletionItemKind.Constant,
93
+ textEdit: { range: helper.getPositionRange('marker4'), newText: '"foo"' },
48
94
  detail: Consts.IndexValueDetail,
49
95
  },
50
96
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"completions.indexer.keys.getitem.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/completions.indexer.keys.getitem.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,wBAAwB;AACxB,+BAA+B;AAC/B,eAAe;AACf,uDAAuD;AACvD,iBAAiB;AAEjB,sBAAsB;AACtB,4BAA4B;AAC5B,cAAc;AACd,uBAAuB;AAEvB,sBAAsB;AACtB,4BAA4B;AAC5B,cAAc;AACd,yBAAyB;AAEzB;IACI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7D,aAAa;IACb,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;QAC/C,OAAO,EAAE;YACL,WAAW,EAAE;gBACT;oBACI,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ;oBACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvE,MAAM,EAAE,MAAM,CAAC,gBAAgB;iBAClC;gBACD;oBACI,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ;oBACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvE,MAAM,EAAE,MAAM,CAAC,gBAAgB;iBAClC;aACJ;SACJ;QACD,OAAO,EAAE;YACL,WAAW,EAAE;gBACT;oBACI,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ;oBACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvE,MAAM,EAAE,MAAM,CAAC,gBAAgB;iBAClC;gBACD;oBACI,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ;oBACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvE,MAAM,EAAE,MAAM,CAAC,gBAAgB;iBAClC;aACJ;SACJ;KACJ,CAAC,CAAC;CACN"}
1
+ {"version":3,"file":"completions.indexer.keys.getitem.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/completions.indexer.keys.getitem.fourslash.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CancellationToken, CodeAction, Command, CompletionItem, CompletionList, DocumentHighlight, DocumentHighlightKind, ExecuteCommandParams, MarkupKind, TextEdit, WorkspaceEdit } from 'vscode-languageserver';
1
+ import { CancellationToken, CodeAction, Command, CompletionItem, CompletionList, DocumentHighlight, DocumentHighlightKind, ExecuteCommandParams, Location, MarkupKind, TextEdit, WorkspaceEdit } from 'vscode-languageserver';
2
2
  import { BackgroundAnalysisProgramFactory } from '../../../analyzer/backgroundAnalysisProgram';
3
3
  import { ImportResolver, ImportResolverFactory } from '../../../analyzer/importResolver';
4
4
  import { Program } from '../../../analyzer/program';
@@ -9,11 +9,14 @@ import { DocumentRange, Position, Range as PositionRange, TextRange } from '../.
9
9
  import { LanguageServerInterface } from '../../../languageServerBase';
10
10
  import { DefinitionFilter } from '../../../languageService/definitionProvider';
11
11
  import { ParseNode } from '../../../parser/parseNodes';
12
+ import { ParseResults } from '../../../parser/parser';
12
13
  import { PyrightFileSystem } from '../../../pyrightFileSystem';
13
14
  import { Workspace } from '../../../workspaceFactory';
14
15
  import * as vfs from '../vfs/filesystem';
15
16
  import { FourSlashData, FourSlashFile, Marker, MultiMap, Range } from './fourSlashTypes';
16
17
  import { ServiceProvider } from '../../../common/serviceProvider';
18
+ import { CollectionResult } from '../../../languageService/documentSymbolCollector';
19
+ import { ReadOnlyFileSystem } from '../../../common/fileSystem';
17
20
  export interface TextChange {
18
21
  span: TextRange;
19
22
  newText: string;
@@ -158,7 +161,7 @@ export declare class TestState {
158
161
  [marker: string]: {
159
162
  references: DocumentRange[];
160
163
  };
161
- }): void;
164
+ }, createDocumentRange?: (filePath: string, result: CollectionResult, parseResults: ParseResults) => DocumentRange, convertToLocation?: (fs: ReadOnlyFileSystem, ranges: DocumentRange) => Location | undefined): void;
162
165
  verifyShowCallHierarchyGetIncomingCalls(map: {
163
166
  [marker: string]: {
164
167
  items: _.FourSlashCallHierarchyItem[];