@zzzen/pyright-internal 1.2.0-dev.20260222 → 1.2.0-dev.20260422

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 (219) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +9 -6
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +10 -1
  5. package/dist/analyzer/binder.js +258 -41
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/cellChainIndex.d.ts +34 -0
  8. package/dist/analyzer/cellChainIndex.js +126 -0
  9. package/dist/analyzer/cellChainIndex.js.map +1 -0
  10. package/dist/analyzer/checker.js +0 -1
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.js +16 -1
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/constructors.js +9 -2
  15. package/dist/analyzer/constructors.js.map +1 -1
  16. package/dist/analyzer/importResolver.d.ts +3 -21
  17. package/dist/analyzer/importResolver.js +42 -316
  18. package/dist/analyzer/importResolver.js.map +1 -1
  19. package/dist/analyzer/importResolverFileSystem.d.ts +3 -0
  20. package/dist/analyzer/importResolverFileSystem.js +160 -0
  21. package/dist/analyzer/importResolverFileSystem.js.map +1 -0
  22. package/dist/analyzer/importResolverTypes.d.ts +24 -0
  23. package/dist/analyzer/importResolverTypes.js +8 -0
  24. package/dist/analyzer/importResolverTypes.js.map +1 -0
  25. package/dist/analyzer/importStatementUtils.js +9 -0
  26. package/dist/analyzer/importStatementUtils.js.map +1 -1
  27. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  28. package/dist/analyzer/parseTreeUtils.js +24 -7
  29. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  30. package/dist/analyzer/patternMatching.js +14 -2
  31. package/dist/analyzer/patternMatching.js.map +1 -1
  32. package/dist/analyzer/program.d.ts +5 -3
  33. package/dist/analyzer/program.js +40 -51
  34. package/dist/analyzer/program.js.map +1 -1
  35. package/dist/analyzer/pythonPathUtils.d.ts +1 -1
  36. package/dist/analyzer/pythonPathUtils.js +3 -1
  37. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  38. package/dist/analyzer/scope.d.ts +10 -1
  39. package/dist/analyzer/scope.js +14 -1
  40. package/dist/analyzer/scope.js.map +1 -1
  41. package/dist/analyzer/service.d.ts +11 -6
  42. package/dist/analyzer/service.js +82 -83
  43. package/dist/analyzer/service.js.map +1 -1
  44. package/dist/analyzer/sourceEnumerator.d.ts +3 -0
  45. package/dist/analyzer/sourceEnumerator.js +27 -1
  46. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  47. package/dist/analyzer/sourceFile.d.ts +2 -1
  48. package/dist/analyzer/sourceFile.js +2 -2
  49. package/dist/analyzer/sourceFile.js.map +1 -1
  50. package/dist/analyzer/sourceFileInfo.d.ts +4 -0
  51. package/dist/analyzer/sourceFileInfo.js +9 -0
  52. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  53. package/dist/analyzer/sourceMapper.d.ts +1 -0
  54. package/dist/analyzer/sourceMapper.js +44 -0
  55. package/dist/analyzer/sourceMapper.js.map +1 -1
  56. package/dist/analyzer/tuples.js +3 -1
  57. package/dist/analyzer/tuples.js.map +1 -1
  58. package/dist/analyzer/typeEvaluator.js +102 -51
  59. package/dist/analyzer/typeEvaluator.js.map +1 -1
  60. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  61. package/dist/analyzer/typeEvaluatorTypes.js +4 -0
  62. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  63. package/dist/analyzer/typeGuards.js +28 -6
  64. package/dist/analyzer/typeGuards.js.map +1 -1
  65. package/dist/analyzer/typeStubWriter.d.ts +15 -50
  66. package/dist/analyzer/typeStubWriter.js +91 -9
  67. package/dist/analyzer/typeStubWriter.js.map +1 -1
  68. package/dist/analyzer/typeUtils.d.ts +1 -0
  69. package/dist/analyzer/typeUtils.js +27 -3
  70. package/dist/analyzer/typeUtils.js.map +1 -1
  71. package/dist/analyzer/typeshedInfoProvider.d.ts +2 -0
  72. package/dist/analyzer/typeshedInfoProvider.js +232 -0
  73. package/dist/analyzer/typeshedInfoProvider.js.map +1 -0
  74. package/dist/backgroundAnalysisBase.d.ts +3 -3
  75. package/dist/backgroundAnalysisBase.js +12 -9
  76. package/dist/backgroundAnalysisBase.js.map +1 -1
  77. package/dist/commands/createTypeStub.d.ts +16 -8
  78. package/dist/commands/createTypeStub.js +58 -36
  79. package/dist/commands/createTypeStub.js.map +1 -1
  80. package/dist/common/cancellationUtils.d.ts +7 -0
  81. package/dist/common/cancellationUtils.js +34 -0
  82. package/dist/common/cancellationUtils.js.map +1 -1
  83. package/dist/common/collectionUtils.d.ts +3 -3
  84. package/dist/common/collectionUtils.js.map +1 -1
  85. package/dist/common/core.d.ts +1 -1
  86. package/dist/common/core.js.map +1 -1
  87. package/dist/common/crypto.js +11 -0
  88. package/dist/common/crypto.js.map +1 -1
  89. package/dist/common/extensibility.d.ts +7 -0
  90. package/dist/common/extensibility.js.map +1 -1
  91. package/dist/common/fullAccessHost.js +4 -2
  92. package/dist/common/fullAccessHost.js.map +1 -1
  93. package/dist/common/pathUtils.d.ts +4 -1
  94. package/dist/common/pathUtils.js.map +1 -1
  95. package/dist/common/realFileSystem.js +42 -3
  96. package/dist/common/realFileSystem.js.map +1 -1
  97. package/dist/common/serviceKeys.d.ts +3 -0
  98. package/dist/common/serviceKeys.js +2 -0
  99. package/dist/common/serviceKeys.js.map +1 -1
  100. package/dist/common/serviceProviderExtensions.js.map +1 -1
  101. package/dist/common/uri/uriUtils.d.ts +4 -0
  102. package/dist/common/uri/uriUtils.js +19 -3
  103. package/dist/common/uri/uriUtils.js.map +1 -1
  104. package/dist/common/workspaceEditUtils.js +0 -2
  105. package/dist/common/workspaceEditUtils.js.map +1 -1
  106. package/dist/languageServerBase.d.ts +1 -0
  107. package/dist/languageServerBase.js +6 -0
  108. package/dist/languageServerBase.js.map +1 -1
  109. package/dist/languageService/completionProvider.d.ts +6 -0
  110. package/dist/languageService/completionProvider.js +252 -75
  111. package/dist/languageService/completionProvider.js.map +1 -1
  112. package/dist/languageService/definitionProvider.js +1 -1
  113. package/dist/languageService/definitionProvider.js.map +1 -1
  114. package/dist/languageService/documentSymbolCollector.js +34 -4
  115. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  116. package/dist/languageService/dynamicFeature.d.ts +3 -0
  117. package/dist/languageService/dynamicFeature.js +5 -0
  118. package/dist/languageService/dynamicFeature.js.map +1 -1
  119. package/dist/languageService/hoverProvider.d.ts +2 -1
  120. package/dist/languageService/hoverProvider.js +13 -5
  121. package/dist/languageService/hoverProvider.js.map +1 -1
  122. package/dist/languageService/pullDiagnosticsDynamicFeature.d.ts +1 -0
  123. package/dist/languageService/pullDiagnosticsDynamicFeature.js +4 -0
  124. package/dist/languageService/pullDiagnosticsDynamicFeature.js.map +1 -1
  125. package/dist/languageService/referencesProvider.js +5 -4
  126. package/dist/languageService/referencesProvider.js.map +1 -1
  127. package/dist/languageService/signatureHelpProvider.d.ts +1 -0
  128. package/dist/languageService/signatureHelpProvider.js +76 -2
  129. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  130. package/dist/languageService/symbolIndexer.d.ts +1 -0
  131. package/dist/languageService/symbolIndexer.js.map +1 -1
  132. package/dist/languageService/tooltipUtils.d.ts +11 -4
  133. package/dist/languageService/tooltipUtils.js +195 -7
  134. package/dist/languageService/tooltipUtils.js.map +1 -1
  135. package/dist/parser/tokenizer.js +6 -2
  136. package/dist/parser/tokenizer.js.map +1 -1
  137. package/dist/partialStubService.d.ts +11 -0
  138. package/dist/partialStubService.js +23 -1
  139. package/dist/partialStubService.js.map +1 -1
  140. package/dist/pyright.js +13 -2
  141. package/dist/pyright.js.map +1 -1
  142. package/dist/tests/chainedSourceFiles.test.js +138 -0
  143. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  144. package/dist/tests/checker.test.js +12 -0
  145. package/dist/tests/checker.test.js.map +1 -1
  146. package/dist/tests/completions.test.js +328 -0
  147. package/dist/tests/completions.test.js.map +1 -1
  148. package/dist/tests/config.test.js +54 -0
  149. package/dist/tests/config.test.js.map +1 -1
  150. package/dist/tests/filesystem.test.js +44 -0
  151. package/dist/tests/filesystem.test.js.map +1 -1
  152. package/dist/tests/fourSlashRunner.test.js +1 -1
  153. package/dist/tests/fourSlashRunner.test.js.map +1 -1
  154. package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.js +25 -1
  155. package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.js.map +1 -1
  156. package/dist/tests/fourslash/import.multipart3.fourslash.d.ts +1 -0
  157. package/dist/tests/fourslash/import.multipart3.fourslash.js +46 -0
  158. package/dist/tests/fourslash/import.multipart3.fourslash.js.map +1 -0
  159. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.d.ts +1 -0
  160. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.js +33 -0
  161. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.js.map +1 -0
  162. package/dist/tests/harness/fourslash/runner.d.ts +4 -4
  163. package/dist/tests/harness/fourslash/runner.js +5 -5
  164. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  165. package/dist/tests/harness/fourslash/testState.d.ts +20 -5
  166. package/dist/tests/harness/fourslash/testState.js +11 -26
  167. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  168. package/dist/tests/harness/fourslash/testStateUtils.js +2 -0
  169. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  170. package/dist/tests/harness/testAccessHost.d.ts +3 -1
  171. package/dist/tests/harness/testAccessHost.js +6 -2
  172. package/dist/tests/harness/testAccessHost.js.map +1 -1
  173. package/dist/tests/harness/testHost.js +20 -18
  174. package/dist/tests/harness/testHost.js.map +1 -1
  175. package/dist/tests/harness/vfs/factory.js +4 -1
  176. package/dist/tests/harness/vfs/factory.js.map +1 -1
  177. package/dist/tests/harness/vfs/filesystem.d.ts +8 -1
  178. package/dist/tests/harness/vfs/filesystem.js +84 -30
  179. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  180. package/dist/tests/hoverProvider.test.js +290 -0
  181. package/dist/tests/hoverProvider.test.js.map +1 -1
  182. package/dist/tests/importResolverSupport.test.d.ts +1 -0
  183. package/dist/tests/importResolverSupport.test.js +319 -0
  184. package/dist/tests/importResolverSupport.test.js.map +1 -0
  185. package/dist/tests/importStatementUtils.test.js +66 -0
  186. package/dist/tests/importStatementUtils.test.js.map +1 -1
  187. package/dist/tests/lsp/{webpack.testserver.config.d.ts → rspack.testserver.config.d.ts} +1 -1
  188. package/dist/tests/lsp/{webpack.testserver.config.js → rspack.testserver.config.js} +4 -11
  189. package/dist/tests/lsp/rspack.testserver.config.js.map +1 -0
  190. package/dist/tests/realTempFile.test.d.ts +1 -0
  191. package/dist/tests/realTempFile.test.js +144 -0
  192. package/dist/tests/realTempFile.test.js.map +1 -0
  193. package/dist/tests/service.test.js +182 -3
  194. package/dist/tests/service.test.js.map +1 -1
  195. package/dist/tests/signatureHelp.test.js +391 -6
  196. package/dist/tests/signatureHelp.test.js.map +1 -1
  197. package/dist/tests/testState.test.js +19 -0
  198. package/dist/tests/testState.test.js.map +1 -1
  199. package/dist/tests/tokenizer.test.js +42 -0
  200. package/dist/tests/tokenizer.test.js.map +1 -1
  201. package/dist/tests/typeEvaluator1.test.js +4 -0
  202. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  203. package/dist/tests/typeEvaluator2.test.js +12 -0
  204. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  205. package/dist/tests/typeEvaluator3.test.js +8 -1
  206. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  207. package/dist/tests/typeEvaluator6.test.js +7 -0
  208. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  209. package/dist/tests/typeEvaluator8.test.js +13 -1
  210. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  211. package/dist/tests/uri.test.js +29 -0
  212. package/dist/tests/uri.test.js.map +1 -1
  213. package/dist/tests/wildcardImportPackageMerge.test.d.ts +1 -0
  214. package/dist/tests/wildcardImportPackageMerge.test.js +97 -0
  215. package/dist/tests/wildcardImportPackageMerge.test.js.map +1 -0
  216. package/dist/tests/workspaceEditUtils.test.js +0 -1
  217. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  218. package/package.json +12 -11
  219. package/dist/tests/lsp/webpack.testserver.config.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ import { Uri } from '../common/uri/uri';
2
+ import { ModuleNode } from '../parser/parseNodes';
3
+ import { SourceFileInfo } from './sourceFileInfo';
4
+ /** Read-only provider surface for consumers that only need later-cell lookups. */
5
+ export interface CellChainIndexProvider {
6
+ getLaterModuleNodes(fileUri: Uri): Iterable<ModuleNode> | undefined;
7
+ }
8
+ export declare class CellChainIndex implements CellChainIndexProvider {
9
+ private readonly _getSourceFileList;
10
+ private readonly _getSourceFileInfo;
11
+ private _tailMap;
12
+ constructor(_getSourceFileList: () => readonly SourceFileInfo[], _getSourceFileInfo: (uri: Uri) => SourceFileInfo | undefined);
13
+ /** Mark the cached tail map as stale. Call when cell chains are mutated. */
14
+ invalidate(): void;
15
+ /**
16
+ * Return an iterable of module nodes from cells *later* in the
17
+ * chain than `fileUri`. Returns `undefined` when there are no
18
+ * later cells (or when the file is not a CellDocs cell).
19
+ */
20
+ getLaterModuleNodes(fileUri: Uri): Iterable<ModuleNode> | undefined;
21
+ /**
22
+ * Return `[sourceFileInfo, ...laterFiles]` for the chain that
23
+ * `sourceFileInfo` belongs to. Used by Program's dependent-file
24
+ * checker logic.
25
+ */
26
+ getCellChainFiles(sourceFileInfo: SourceFileInfo): SourceFileInfo[];
27
+ private _ensureTailMap;
28
+ private _buildTailMap;
29
+ /**
30
+ * Walk backward from `chainTail` to `sourceFileInfo`, collecting
31
+ * every cell in between (in forward order, excluding `sourceFileInfo`).
32
+ */
33
+ private _getLaterCellChainFiles;
34
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /*
3
+ * cellChainIndex.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * Maintains a lazily-built index that maps each CellDocs cell
8
+ * to the tail of its chain, enabling efficient forward-cell
9
+ * lookups for notebook inter-cell symbol resolution.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CellChainIndex = void 0;
13
+ const sourceFile_1 = require("./sourceFile");
14
+ class CellChainIndex {
15
+ constructor(_getSourceFileList, _getSourceFileInfo) {
16
+ this._getSourceFileList = _getSourceFileList;
17
+ this._getSourceFileInfo = _getSourceFileInfo;
18
+ }
19
+ /** Mark the cached tail map as stale. Call when cell chains are mutated. */
20
+ invalidate() {
21
+ this._tailMap = undefined;
22
+ }
23
+ /**
24
+ * Return an iterable of module nodes from cells *later* in the
25
+ * chain than `fileUri`. Returns `undefined` when there are no
26
+ * later cells (or when the file is not a CellDocs cell).
27
+ */
28
+ getLaterModuleNodes(fileUri) {
29
+ const sourceFileInfo = this._getSourceFileInfo(fileUri);
30
+ if (!sourceFileInfo || sourceFileInfo.ipythonMode !== sourceFile_1.IPythonMode.CellDocs) {
31
+ return undefined;
32
+ }
33
+ const tailMap = this._ensureTailMap();
34
+ const chainTail = tailMap.get(fileUri.key);
35
+ if (!chainTail || chainTail === sourceFileInfo) {
36
+ return undefined;
37
+ }
38
+ const laterFiles = this._getLaterCellChainFiles(sourceFileInfo, chainTail);
39
+ if (laterFiles.length === 0) {
40
+ return undefined;
41
+ }
42
+ // The later-files list is captured eagerly above; parse trees are
43
+ // resolved lazily per-yield. Callers consume the iterable synchronously
44
+ // during a single scope-lookup pass.
45
+ return (function* () {
46
+ for (const laterCellFileInfo of laterFiles) {
47
+ const parseTree = laterCellFileInfo.sourceFile.getParserOutput()?.parseTree;
48
+ if (parseTree) {
49
+ yield parseTree;
50
+ }
51
+ }
52
+ })();
53
+ }
54
+ /**
55
+ * Return `[sourceFileInfo, ...laterFiles]` for the chain that
56
+ * `sourceFileInfo` belongs to. Used by Program's dependent-file
57
+ * checker logic.
58
+ */
59
+ getCellChainFiles(sourceFileInfo) {
60
+ const tailMap = this._ensureTailMap();
61
+ const chainTail = tailMap.get(sourceFileInfo.uri.key);
62
+ if (!chainTail || chainTail === sourceFileInfo) {
63
+ return [sourceFileInfo];
64
+ }
65
+ return [sourceFileInfo, ...this._getLaterCellChainFiles(sourceFileInfo, chainTail)];
66
+ }
67
+ _ensureTailMap() {
68
+ if (!this._tailMap) {
69
+ this._tailMap = this._buildTailMap();
70
+ }
71
+ return this._tailMap;
72
+ }
73
+ // The tail map is rebuilt in O(n) over the source file list on first
74
+ // access after invalidation. This is acceptable because cell-chain
75
+ // mutations (open/close/reorder) are infrequent relative to lookups.
76
+ _buildTailMap() {
77
+ const tailMap = new Map();
78
+ const sourceFileList = this._getSourceFileList();
79
+ // Build a "next-cell-in-chain" reverse map: for each cell that is
80
+ // chained *to* another cell, record `chainedTo -> chainingCell`.
81
+ const nextCellInChainMap = new Map();
82
+ for (const sourceFileInfo of sourceFileList) {
83
+ if (sourceFileInfo.ipythonMode !== sourceFile_1.IPythonMode.CellDocs ||
84
+ sourceFileInfo.chainedSourceFile?.ipythonMode !== sourceFile_1.IPythonMode.CellDocs) {
85
+ continue;
86
+ }
87
+ nextCellInChainMap.set(sourceFileInfo.chainedSourceFile.uri.key, sourceFileInfo);
88
+ }
89
+ // Walk from each tail (a cell with no next-cell) backwards through
90
+ // the chain, recording the tail for every cell in that chain.
91
+ for (const sourceFileInfo of sourceFileList) {
92
+ if (sourceFileInfo.ipythonMode !== sourceFile_1.IPythonMode.CellDocs || nextCellInChainMap.has(sourceFileInfo.uri.key)) {
93
+ continue;
94
+ }
95
+ let current = sourceFileInfo;
96
+ while (current && current.ipythonMode === sourceFile_1.IPythonMode.CellDocs) {
97
+ tailMap.set(current.uri.key, sourceFileInfo);
98
+ current = current.chainedSourceFile;
99
+ }
100
+ }
101
+ return tailMap;
102
+ }
103
+ /**
104
+ * Walk backward from `chainTail` to `sourceFileInfo`, collecting
105
+ * every cell in between (in forward order, excluding `sourceFileInfo`).
106
+ */
107
+ _getLaterCellChainFiles(sourceFileInfo, chainTail) {
108
+ // Walk backward from tail to sourceFileInfo, then reverse for forward order.
109
+ const reversedLaterCellChainFiles = [];
110
+ let current = chainTail;
111
+ while (current && current !== sourceFileInfo) {
112
+ reversedLaterCellChainFiles.push(current);
113
+ current = current.chainedSourceFile;
114
+ }
115
+ if (current !== sourceFileInfo) {
116
+ return [];
117
+ }
118
+ const laterCellChainFiles = [];
119
+ for (let i = reversedLaterCellChainFiles.length - 1; i >= 0; i--) {
120
+ laterCellChainFiles.push(reversedLaterCellChainFiles[i]);
121
+ }
122
+ return laterCellChainFiles;
123
+ }
124
+ }
125
+ exports.CellChainIndex = CellChainIndex;
126
+ //# sourceMappingURL=cellChainIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cellChainIndex.js","sourceRoot":"","sources":["../../../../../src/analyzer/cellChainIndex.ts"],"names":[],"mappings":"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"}
@@ -1550,7 +1550,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1550
1550
  }
1551
1551
  const nameWalker = new ParseTreeUtils.NameNodeWalker((nameNode, subscriptIndex, baseExpression) => {
1552
1552
  const nameType = this._evaluator.getType(nameNode);
1553
- ``;
1554
1553
  if (nameType && (0, types_1.isTypeVar)(nameType) && !types_1.TypeVarType.isSelf(nameType)) {
1555
1554
  // Does this name refer to a TypeVar that is scoped to this function?
1556
1555
  if (nameType.priv.scopeId === ParseTreeUtils.getScopeIdForNode(node)) {