@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.
- package/dist/analyzer/checker.d.ts +3 -1
- package/dist/analyzer/checker.js +82 -41
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +11 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +208 -151
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +6 -1
- package/dist/analyzer/decorators.js +34 -25
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +2 -1
- package/dist/analyzer/parseTreeUtils.js +21 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/program.js +7 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.d.ts +2 -2
- package/dist/analyzer/properties.js +8 -2
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +102 -149
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scopeUtils.js +3 -2
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/service.js +13 -13
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -2
- package/dist/analyzer/sourceFile.js +21 -7
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfo.d.ts +4 -4
- package/dist/analyzer/sourceFileInfo.js +2 -0
- package/dist/analyzer/sourceFileInfo.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +2 -1
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +2 -1
- package/dist/analyzer/typeEvaluator.js +171 -244
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +10 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typeGuards.js +127 -55
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +4 -1
- package/dist/analyzer/typeUtils.js +82 -8
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +4 -1
- package/dist/analyzer/typeVarContext.js +7 -2
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/types.d.ts +5 -2
- package/dist/analyzer/types.js +25 -14
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/configOptions.d.ts +2 -1
- package/dist/common/configOptions.js +9 -5
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +19 -8
- package/dist/common/extensibility.js +6 -7
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +9 -4
- package/dist/common/fileSystem.js +8 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/pathUtils.d.ts +5 -4
- package/dist/common/pathUtils.js +13 -7
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/pythonVersion.d.ts +1 -1
- package/dist/common/pythonVersion.js +1 -1
- package/dist/common/realFileSystem.d.ts +7 -1
- package/dist/common/realFileSystem.js +33 -37
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +5 -3
- package/dist/common/serviceProviderExtensions.js +6 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +6 -2
- package/dist/languageServerBase.js +31 -4
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +0 -1
- package/dist/languageService/callHierarchyProvider.js +33 -16
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +20 -23
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +4 -5
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +5 -2
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +32 -23
- package/dist/languageService/documentSymbolCollector.js +170 -267
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -5
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/navigationUtils.d.ts +1 -1
- package/dist/languageService/navigationUtils.js +2 -2
- package/dist/languageService/navigationUtils.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +15 -8
- package/dist/languageService/referencesProvider.js +41 -20
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +3 -3
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +21 -0
- package/dist/localization/localize.js +7 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +5 -0
- package/dist/localization/package.nls.de.json +5 -0
- package/dist/localization/package.nls.en-us.json +7 -0
- package/dist/localization/package.nls.es.json +5 -0
- package/dist/localization/package.nls.fr.json +5 -0
- package/dist/localization/package.nls.it.json +5 -0
- package/dist/localization/package.nls.ja.json +5 -0
- package/dist/localization/package.nls.ko.json +5 -0
- package/dist/localization/package.nls.pl.json +5 -0
- package/dist/localization/package.nls.pt-br.json +5 -0
- package/dist/localization/package.nls.qps-ploc.json +5 -0
- package/dist/localization/package.nls.ru.json +5 -0
- package/dist/localization/package.nls.tr.json +5 -0
- package/dist/localization/package.nls.zh-cn.json +5 -0
- package/dist/localization/package.nls.zh-tw.json +5 -0
- package/dist/parser/stringTokenUtils.js +9 -5
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +1 -0
- package/dist/parser/tokenizer.js +5 -5
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/pyright.js +2 -1
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +0 -1
- package/dist/pyrightFileSystem.js +0 -3
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -4
- package/dist/readonlyAugmentedFileSystem.js +0 -10
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +8 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/config.test.js +5 -3
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +8 -363
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +56 -10
- package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +5 -2
- package/dist/tests/harness/fourslash/testState.js +13 -14
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/importResolver.test.js +0 -9
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +2 -2
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +3 -0
- package/dist/tests/testStateUtils.js +25 -1
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +5 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +13 -5
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +12 -4
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +17 -9
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +4 -2
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -1
- package/dist/workspaceFactory.js +3 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.d.ts +0 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js +0 -40
- 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
|
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
|
10
|
-
////
|
11
|
-
////
|
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
|
14
|
-
////
|
15
|
-
////
|
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('
|
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('
|
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
|
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[];
|