@zzzen/pyright-internal 1.2.0-dev.20230122 → 1.2.0-dev.20230205

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 (244) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  2. package/dist/analyzer/backgroundAnalysisProgram.js +4 -2
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +16 -12
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +3 -1
  7. package/dist/analyzer/checker.js +63 -20
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +3 -2
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +1 -1
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +4 -3
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/declaration.d.ts +2 -0
  16. package/dist/analyzer/declaration.js.map +1 -1
  17. package/dist/analyzer/enums.js +1 -1
  18. package/dist/analyzer/enums.js.map +1 -1
  19. package/dist/analyzer/importResolver.d.ts +1 -1
  20. package/dist/analyzer/importResolver.js +7 -3
  21. package/dist/analyzer/importResolver.js.map +1 -1
  22. package/dist/analyzer/importResult.d.ts +1 -0
  23. package/dist/analyzer/parseTreeUtils.d.ts +2 -1
  24. package/dist/analyzer/parseTreeUtils.js +75 -10
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/patternMatching.js +1 -1
  27. package/dist/analyzer/patternMatching.js.map +1 -1
  28. package/dist/analyzer/program.d.ts +8 -4
  29. package/dist/analyzer/program.js +92 -24
  30. package/dist/analyzer/program.js.map +1 -1
  31. package/dist/analyzer/service.d.ts +0 -2
  32. package/dist/analyzer/service.js +8 -8
  33. package/dist/analyzer/service.js.map +1 -1
  34. package/dist/analyzer/sourceFile.d.ts +4 -8
  35. package/dist/analyzer/sourceFile.js +5 -21
  36. package/dist/analyzer/sourceFile.js.map +1 -1
  37. package/dist/analyzer/typeCacheUtils.d.ts +8 -2
  38. package/dist/analyzer/typeCacheUtils.js +4 -4
  39. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  40. package/dist/analyzer/typeEvaluator.js +247 -110
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +12 -8
  43. package/dist/analyzer/typeGuards.js +2 -16
  44. package/dist/analyzer/typeGuards.js.map +1 -1
  45. package/dist/analyzer/typeUtils.d.ts +5 -4
  46. package/dist/analyzer/typeUtils.js +41 -14
  47. package/dist/analyzer/typeUtils.js.map +1 -1
  48. package/dist/analyzer/typeVarContext.d.ts +1 -5
  49. package/dist/analyzer/typeVarContext.js +17 -22
  50. package/dist/analyzer/typeVarContext.js.map +1 -1
  51. package/dist/analyzer/typedDicts.js +6 -2
  52. package/dist/analyzer/typedDicts.js.map +1 -1
  53. package/dist/analyzer/types.d.ts +4 -1
  54. package/dist/analyzer/types.js +26 -2
  55. package/dist/analyzer/types.js.map +1 -1
  56. package/dist/backgroundAnalysisBase.d.ts +1 -3
  57. package/dist/backgroundAnalysisBase.js +2 -3
  58. package/dist/backgroundAnalysisBase.js.map +1 -1
  59. package/dist/backgroundThreadBase.js +6 -1
  60. package/dist/backgroundThreadBase.js.map +1 -1
  61. package/dist/common/configOptions.d.ts +5 -0
  62. package/dist/common/configOptions.js +19 -1
  63. package/dist/common/configOptions.js.map +1 -1
  64. package/dist/common/envVarUtils.d.ts +1 -1
  65. package/dist/common/envVarUtils.js +26 -16
  66. package/dist/common/envVarUtils.js.map +1 -1
  67. package/dist/common/extensibility.d.ts +44 -6
  68. package/dist/common/extensibility.js +26 -2
  69. package/dist/common/extensibility.js.map +1 -1
  70. package/dist/common/fullAccessHost.d.ts +2 -1
  71. package/dist/common/fullAccessHost.js +22 -0
  72. package/dist/common/fullAccessHost.js.map +1 -1
  73. package/dist/common/host.d.ts +6 -0
  74. package/dist/common/host.js +3 -0
  75. package/dist/common/host.js.map +1 -1
  76. package/dist/common/pathUtils.d.ts +2 -0
  77. package/dist/common/pathUtils.js +17 -3
  78. package/dist/common/pathUtils.js.map +1 -1
  79. package/dist/languageServerBase.d.ts +4 -5
  80. package/dist/languageServerBase.js +5 -6
  81. package/dist/languageServerBase.js.map +1 -1
  82. package/dist/languageService/callHierarchyProvider.js +1 -1
  83. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  84. package/dist/languageService/completionProvider.d.ts +0 -1
  85. package/dist/languageService/completionProvider.js +21 -99
  86. package/dist/languageService/completionProvider.js.map +1 -1
  87. package/dist/languageService/completionProviderUtils.d.ts +34 -0
  88. package/dist/languageService/completionProviderUtils.js +102 -0
  89. package/dist/languageService/completionProviderUtils.js.map +1 -0
  90. package/dist/languageService/definitionProvider.d.ts +2 -1
  91. package/dist/languageService/definitionProvider.js +25 -9
  92. package/dist/languageService/definitionProvider.js.map +1 -1
  93. package/dist/languageService/documentSymbolCollector.d.ts +2 -1
  94. package/dist/languageService/documentSymbolCollector.js +27 -3
  95. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  96. package/dist/languageService/documentSymbolProvider.js +1 -1
  97. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  98. package/dist/languageService/hoverProvider.d.ts +3 -1
  99. package/dist/languageService/hoverProvider.js +51 -37
  100. package/dist/languageService/hoverProvider.js.map +1 -1
  101. package/dist/languageService/referencesProvider.d.ts +2 -1
  102. package/dist/languageService/referencesProvider.js +4 -3
  103. package/dist/languageService/referencesProvider.js.map +1 -1
  104. package/dist/languageService/tooltipUtils.d.ts +7 -1
  105. package/dist/languageService/tooltipUtils.js +81 -4
  106. package/dist/languageService/tooltipUtils.js.map +1 -1
  107. package/dist/localization/localize.d.ts +7 -0
  108. package/dist/localization/localize.js +9 -9
  109. package/dist/localization/localize.js.map +1 -1
  110. package/dist/localization/package.nls.en-us.json +2 -2
  111. package/dist/parser/parseNodes.js +0 -1
  112. package/dist/parser/parseNodes.js.map +1 -1
  113. package/dist/parser/stringTokenUtils.js +10 -0
  114. package/dist/parser/stringTokenUtils.js.map +1 -1
  115. package/dist/pyright.js +17 -9
  116. package/dist/pyright.js.map +1 -1
  117. package/dist/server.js +2 -0
  118. package/dist/server.js.map +1 -1
  119. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +1 -1
  120. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
  121. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js +5 -5
  122. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
  123. package/dist/tests/fourslash/completions.commitChars.fourslash.js +23 -1
  124. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +1 -1
  125. package/dist/tests/fourslash/completions.fourslash.js +2 -2
  126. package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
  127. package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js +1 -1
  128. package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js.map +1 -1
  129. package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js +1 -1
  130. package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js.map +1 -1
  131. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js +1 -1
  132. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
  133. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js +1 -1
  134. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
  135. package/dist/tests/fourslash/completions.libStub.fourslash.js +1 -1
  136. package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
  137. package/dist/tests/fourslash/completions.localCode.fourslash.js +2 -2
  138. package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
  139. package/dist/tests/fourslash/completions.overloads.fourslash.js +1 -1
  140. package/dist/tests/fourslash/completions.overloads.fourslash.js.map +1 -1
  141. package/dist/tests/fourslash/completions.plainText.fourslash.js +2 -2
  142. package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
  143. package/dist/tests/fourslash/completions.self.fourslash.js +2 -2
  144. package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
  145. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +1 -1
  146. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
  147. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js +2 -2
  148. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js.map +1 -1
  149. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js +7 -7
  150. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
  151. package/dist/tests/fourslash/hover.class.docString.fourslash.js +1 -1
  152. package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -1
  153. package/dist/tests/fourslash/hover.classNoInit.fourslash.js +1 -1
  154. package/dist/tests/fourslash/hover.classNoInit.fourslash.js.map +1 -1
  155. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js +7 -7
  156. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
  157. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js +1 -1
  158. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
  159. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js +1 -1
  160. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
  161. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js +1 -1
  162. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
  163. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js +1 -1
  164. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
  165. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js +1 -1
  166. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
  167. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +2 -2
  168. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
  169. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js +1 -1
  170. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
  171. package/dist/tests/fourslash/hover.docstring.links.fourslash.js +1 -1
  172. package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
  173. package/dist/tests/fourslash/hover.docstring.split.fourslash.js +3 -3
  174. package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
  175. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js +1 -1
  176. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -1
  177. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js +1 -1
  178. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -1
  179. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js +1 -1
  180. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -1
  181. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js +1 -1
  182. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -1
  183. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js +1 -1
  184. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -1
  185. package/dist/tests/fourslash/hover.formatted.fourslash.d.ts +1 -0
  186. package/dist/tests/fourslash/hover.formatted.fourslash.js +45 -0
  187. package/dist/tests/fourslash/hover.formatted.fourslash.js.map +1 -0
  188. package/dist/tests/fourslash/hover.fourslash.js +1 -1
  189. package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
  190. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +6 -6
  191. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  192. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js +5 -5
  193. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
  194. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +4 -4
  195. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  196. package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js +2 -2
  197. package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js.map +1 -1
  198. package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js +2 -2
  199. package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js.map +1 -1
  200. package/dist/tests/fourslash/hover.init.fourslash.js +4 -4
  201. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  202. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js +2 -2
  203. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
  204. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js +2 -2
  205. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
  206. package/dist/tests/fourslash/hover.libStub.fourslash.js +2 -2
  207. package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
  208. package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js +2 -2
  209. package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js.map +1 -1
  210. package/dist/tests/fourslash/hover.plainText.fourslash.js +1 -1
  211. package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
  212. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +1 -1
  213. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
  214. package/dist/tests/fourslash/import.multipart.fourslash.js +1 -1
  215. package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -1
  216. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js +1 -1
  217. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
  218. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js +1 -1
  219. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
  220. package/dist/tests/harness/fourslash/testLanguageService.js +2 -1
  221. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  222. package/dist/tests/harness/fourslash/testState.d.ts +0 -10
  223. package/dist/tests/harness/fourslash/testState.js +15 -68
  224. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  225. package/dist/tests/harness/fourslash/testStateUtils.d.ts +12 -0
  226. package/dist/tests/harness/fourslash/testStateUtils.js +98 -0
  227. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -0
  228. package/dist/tests/pathUtils.test.js +24 -1
  229. package/dist/tests/pathUtils.test.js.map +1 -1
  230. package/dist/tests/signatureHelp.test.d.ts +1 -0
  231. package/dist/tests/signatureHelp.test.js +73 -0
  232. package/dist/tests/signatureHelp.test.js.map +1 -0
  233. package/dist/tests/typeEvaluator1.test.js +16 -0
  234. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  235. package/dist/tests/typeEvaluator2.test.js +8 -0
  236. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  237. package/dist/tests/typeEvaluator3.test.js +5 -1
  238. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  239. package/dist/tests/typeEvaluator4.test.js +15 -1
  240. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  241. package/dist/workspaceMap.d.ts +4 -0
  242. package/dist/workspaceMap.js +67 -37
  243. package/dist/workspaceMap.js.map +1 -1
  244. package/package.json +1 -1
@@ -35,6 +35,7 @@ const cancellationUtils_1 = require("../common/cancellationUtils");
35
35
  const collectionUtils_1 = require("../common/collectionUtils");
36
36
  const console_1 = require("../common/console");
37
37
  const debug_1 = require("../common/debug");
38
+ const extensibility_1 = require("../common/extensibility");
38
39
  const logTracker_1 = require("../common/logTracker");
39
40
  const pathUtils_1 = require("../common/pathUtils");
40
41
  const positionUtils_1 = require("../common/positionUtils");
@@ -69,8 +70,7 @@ exports.MaxWorkspaceIndexFileCount = 2000;
69
70
  // Opened - temporarily opened in the editor
70
71
  // Shadowed - implementation file that shadows a type stub file
71
72
  class Program {
72
- constructor(initialImportResolver, initialConfigOptions, console, _extension, logTracker, _disableChecker, cacheManager) {
73
- this._extension = _extension;
73
+ constructor(initialImportResolver, initialConfigOptions, console, logTracker, _disableChecker, cacheManager) {
74
74
  this._disableChecker = _disableChecker;
75
75
  this._sourceFileList = [];
76
76
  this._sourceFileMap = new Map();
@@ -144,12 +144,21 @@ class Program {
144
144
  get evaluator() {
145
145
  return this._evaluator;
146
146
  }
147
+ get console() {
148
+ return this._console;
149
+ }
147
150
  setConfigOptions(configOptions) {
148
151
  this._configOptions = configOptions;
149
152
  this._importResolver.setConfigOptions(configOptions);
150
153
  // Create a new evaluator with the updated config options.
151
154
  this._createNewEvaluator();
152
155
  }
156
+ get rootPath() {
157
+ return this._configOptions.projectRoot;
158
+ }
159
+ getConfigOptions() {
160
+ return this._configOptions;
161
+ }
153
162
  setImportResolver(importResolver) {
154
163
  this._importResolver = importResolver;
155
164
  // Create a new evaluator with the updated import resolver.
@@ -157,6 +166,9 @@ class Program {
157
166
  // older import resolver when resolving imports after parsing.
158
167
  this._createNewEvaluator();
159
168
  }
169
+ getImportResolver() {
170
+ return this._importResolver;
171
+ }
160
172
  // Sets the list of tracked files that make up the program.
161
173
  setTrackedFiles(filePaths) {
162
174
  if (this._sourceFileList.length > 0) {
@@ -257,6 +269,8 @@ class Program {
257
269
  sourceFileInfo.diagnosticsVersion = 0;
258
270
  }
259
271
  sourceFileInfo.sourceFile.setClientVersion(version, contents);
272
+ // Tell any extensions that this source file changed.
273
+ (0, extensibility_1.getExtensions)().forEach((e) => (e.sourceFileChanged ? e.sourceFileChanged(sourceFileInfo) : undefined));
260
274
  }
261
275
  getChainedFilePath(filePath) {
262
276
  var _a;
@@ -367,6 +381,9 @@ class Program {
367
381
  isCheckingOnlyOpenFiles() {
368
382
  return this._configOptions.checkOnlyOpenFiles || false;
369
383
  }
384
+ functionSignatureDisplay() {
385
+ return this._configOptions.functionSignatureDisplay;
386
+ }
370
387
  containsSourceFileIn(folder) {
371
388
  const normalized = (0, pathUtils_1.normalizePathCase)(this._fs, folder);
372
389
  return this._sourceFileList.some((i) => i.sourceFile.getFilePath().startsWith(normalized));
@@ -641,7 +658,7 @@ class Program {
641
658
  _addShadowedFile(stubFile, shadowImplPath) {
642
659
  let shadowFileInfo = this.getSourceFileInfo(shadowImplPath);
643
660
  if (!shadowFileInfo) {
644
- shadowFileInfo = this._createIntrimFileInfo(shadowImplPath);
661
+ shadowFileInfo = this._createInterimFileInfo(shadowImplPath);
645
662
  this._addToSourceFileListAndMap(shadowFileInfo);
646
663
  }
647
664
  if (!shadowFileInfo.shadows.includes(stubFile)) {
@@ -652,7 +669,7 @@ class Program {
652
669
  }
653
670
  return shadowFileInfo.sourceFile;
654
671
  }
655
- _createIntrimFileInfo(filePath) {
672
+ _createInterimFileInfo(filePath) {
656
673
  const importName = this._getImportNameForFile(filePath);
657
674
  const sourceFile = new sourceFile_1.SourceFile(this._fs, filePath, importName,
658
675
  /* isThirdPartyImport */ false,
@@ -797,8 +814,27 @@ class Program {
797
814
  }
798
815
  }
799
816
  if (!this._disableChecker) {
817
+ // For ipython, make sure we check all its dependent files first since
818
+ // their results can affect this file's result.
819
+ let dependentFiles = undefined;
820
+ if (fileToCheck.sourceFile.getIPythonMode() === sourceFile_1.IPythonMode.CellDocs) {
821
+ dependentFiles = [];
822
+ const importedByFiles = new Set();
823
+ this._collectImportedByFiles(fileToCheck, importedByFiles);
824
+ for (const file of importedByFiles) {
825
+ if (!(0, sourceFileInfoUtils_1.isUserCode)(file)) {
826
+ continue;
827
+ }
828
+ // If the file is already analyzed, it will be no op.
829
+ this._checkTypes(file, token);
830
+ const parseResults = file.sourceFile.getParseResults();
831
+ if (parseResults) {
832
+ dependentFiles.push(parseResults);
833
+ }
834
+ }
835
+ }
800
836
  const execEnv = this._configOptions.findExecEnvironment(fileToCheck.sourceFile.getFilePath());
801
- fileToCheck.sourceFile.check(this._importResolver, this._evaluator, execEnv, this._createSourceMapper(execEnv, token, fileToCheck), (p) => (0, sourceFileInfoUtils_1.isUserCode)(this.getSourceFileInfo(p)));
837
+ fileToCheck.sourceFile.check(this._importResolver, this._evaluator, this._createSourceMapper(execEnv, token, fileToCheck), dependentFiles);
802
838
  }
803
839
  // For very large programs, we may need to discard the evaluator and
804
840
  // its cached types to avoid running out of heap space.
@@ -830,6 +866,16 @@ class Program {
830
866
  return true;
831
867
  });
832
868
  }
869
+ _collectImportedByFiles(file, importedByFiles) {
870
+ file.importedBy.forEach((dep) => {
871
+ if (importedByFiles.has(dep)) {
872
+ // Already visited.
873
+ return;
874
+ }
875
+ importedByFiles.add(dep);
876
+ this._collectImportedByFiles(dep, importedByFiles);
877
+ });
878
+ }
833
879
  // Builds a map of files that includes the specified file and all of the files
834
880
  // it imports (recursively) and ensures that all such files. If any of these files
835
881
  // have already been checked (they and their recursive imports have completed the
@@ -926,15 +972,27 @@ class Program {
926
972
  _markFileDirtyRecursive(sourceFileInfo, markSet, forceRebinding = false) {
927
973
  const filePath = (0, pathUtils_1.normalizePathCase)(this._fs, sourceFileInfo.sourceFile.getFilePath());
928
974
  // Don't mark it again if it's already been visited.
929
- if (!markSet.has(filePath)) {
930
- sourceFileInfo.sourceFile.markReanalysisRequired(forceRebinding);
931
- markSet.add(filePath);
932
- sourceFileInfo.importedBy.forEach((dep) => {
933
- // Changes on chained source file can change symbols in the symbol table and
934
- // dependencies on the dependent file. Force rebinding.
935
- const forceRebinding = dep.chainedSourceFile === sourceFileInfo;
936
- this._markFileDirtyRecursive(dep, markSet, forceRebinding);
937
- });
975
+ if (markSet.has(filePath)) {
976
+ return;
977
+ }
978
+ sourceFileInfo.sourceFile.markReanalysisRequired(forceRebinding);
979
+ markSet.add(filePath);
980
+ sourceFileInfo.importedBy.forEach((dep) => {
981
+ // Changes on chained source file can change symbols in the symbol table and
982
+ // dependencies on the dependent file. Force rebinding.
983
+ const forceRebinding = dep.chainedSourceFile === sourceFileInfo;
984
+ this._markFileDirtyRecursive(dep, markSet, forceRebinding);
985
+ });
986
+ // Change in the current file could impact checker result of chainedSourceFile such as unused symbols.
987
+ let chainedSourceFile = sourceFileInfo.chainedSourceFile;
988
+ while (chainedSourceFile) {
989
+ if (chainedSourceFile.sourceFile.isCheckingRequired()) {
990
+ // If the file is marked for checking, its chained one should be marked
991
+ // as well. Stop here.
992
+ return;
993
+ }
994
+ chainedSourceFile.sourceFile.markReanalysisRequired(/* forceRebinding */ false);
995
+ chainedSourceFile = chainedSourceFile.chainedSourceFile;
938
996
  }
939
997
  }
940
998
  getTextOnRange(filePath, range, token) {
@@ -1117,7 +1175,7 @@ class Program {
1117
1175
  // The file the declaration belongs to doesn't belong to the program.
1118
1176
  continue;
1119
1177
  }
1120
- const tempResult = new referencesProvider_1.ReferencesResult(referencesResult.requiresGlobalSearch, referencesResult.nodeAtOffset, referencesResult.symbolNames, referencesResult.declarations);
1178
+ const tempResult = new referencesProvider_1.ReferencesResult(referencesResult.requiresGlobalSearch, referencesResult.nodeAtOffset, referencesResult.symbolNames, referencesResult.declarations, referencesResult.useCase);
1121
1179
  declFileInfo.sourceFile.addReferences(tempResult, includeDeclaration, this._evaluator, token);
1122
1180
  for (const loc of tempResult.locations) {
1123
1181
  // Include declarations only. And throw away any references
@@ -1210,7 +1268,7 @@ class Program {
1210
1268
  }
1211
1269
  this._bindFile(sourceFileInfo);
1212
1270
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1213
- return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, token, sourceFileInfo, /* mapCompiled */ true), position, format, this._evaluator, token);
1271
+ return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, token, sourceFileInfo, /* mapCompiled */ true), position, format, this._evaluator, this.functionSignatureDisplay(), token);
1214
1272
  });
1215
1273
  }
1216
1274
  getDocumentHighlight(filePath, position, token) {
@@ -1236,17 +1294,18 @@ class Program {
1236
1294
  });
1237
1295
  }
1238
1296
  async getCompletionsForPosition(filePath, position, workspacePath, options, nameMap, libraryMap, token) {
1239
- var _a;
1240
1297
  const sourceFileInfo = this.getSourceFileInfo(filePath);
1241
1298
  if (!sourceFileInfo) {
1242
1299
  return undefined;
1243
1300
  }
1301
+ let sourceMapper;
1244
1302
  const completionResult = this._logTracker.log(`completion at ${filePath}:${position.line}:${position.character}`, (ls) => {
1245
1303
  var _a;
1246
1304
  const result = this._runEvaluatorWithCancellationToken(token, () => {
1247
1305
  this._bindFile(sourceFileInfo);
1248
1306
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1249
- return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, token, sourceFileInfo, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap, options.includeUserSymbolsInAutoImport, token), token);
1307
+ sourceMapper = this._createSourceMapper(execEnv, token, sourceFileInfo, /* mapCompiled */ true);
1308
+ return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, sourceMapper, nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap, options.includeUserSymbolsInAutoImport, token), token);
1250
1309
  });
1251
1310
  ls.add(`found ${(_a = result === null || result === void 0 ? void 0 : result.completionMap.size) !== null && _a !== void 0 ? _a : 'null'} items`);
1252
1311
  return result;
@@ -1257,14 +1316,17 @@ class Program {
1257
1316
  autoImportInfo: completionResult === null || completionResult === void 0 ? void 0 : completionResult.autoImportInfo,
1258
1317
  extensionInfo: completionResult === null || completionResult === void 0 ? void 0 : completionResult.extensionInfo,
1259
1318
  };
1260
- if (!completionResult || !((_a = this._extension) === null || _a === void 0 ? void 0 : _a.completionListExtension)) {
1319
+ if (!(0, extensibility_1.getExtensions)().some((e) => e.completionListExtension)) {
1261
1320
  return completionResultsList;
1262
1321
  }
1263
1322
  const parseResults = sourceFileInfo.sourceFile.getParseResults();
1264
1323
  if ((parseResults === null || parseResults === void 0 ? void 0 : parseResults.parseTree) && (parseResults === null || parseResults === void 0 ? void 0 : parseResults.text)) {
1265
1324
  const offset = (0, positionUtils_1.convertPositionToOffset)(position, parseResults.tokenizerOutput.lines);
1266
- if (offset !== undefined) {
1267
- await this._extension.completionListExtension.updateCompletionResults(completionResultsList, parseResults, offset, token);
1325
+ if (offset !== undefined && sourceMapper) {
1326
+ await Promise.all((0, extensibility_1.getExtensions)().map((e) => {
1327
+ var _a;
1328
+ return (_a = e.completionListExtension) === null || _a === void 0 ? void 0 : _a.updateCompletionResults(this.evaluator, sourceMapper, options, completionResultsList, parseResults, offset, this._configOptions.functionSignatureDisplay, token);
1329
+ }));
1268
1330
  }
1269
1331
  }
1270
1332
  return completionResultsList;
@@ -1568,7 +1630,7 @@ class Program {
1568
1630
  return undefined;
1569
1631
  }
1570
1632
  // Use declarations that doesn't contain import decls.
1571
- return new referencesProvider_1.ReferencesResult(referencesResult.requiresGlobalSearch, referencesResult.nodeAtOffset, referencesResult.symbolNames, referencesResult.nonImportDeclarations);
1633
+ return new referencesProvider_1.ReferencesResult(referencesResult.requiresGlobalSearch, referencesResult.nodeAtOffset, referencesResult.symbolNames, referencesResult.nonImportDeclarations, referencesResult.useCase);
1572
1634
  }
1573
1635
  _processModuleReferences(renameModuleProvider, filteringText, currentFilePath) {
1574
1636
  var _a;
@@ -1752,7 +1814,7 @@ class Program {
1752
1814
  // Special case for import statement.
1753
1815
  // ex) import X.Y
1754
1816
  // SourceFile for X might not be in memory since import `X.Y` only brings in Y
1755
- stubFileInfo = this._createIntrimFileInfo(stubFilePath);
1817
+ stubFileInfo = this._createInterimFileInfo(stubFilePath);
1756
1818
  this._addToSourceFileListAndMap(stubFileInfo);
1757
1819
  }
1758
1820
  this._addShadowedFile(stubFileInfo, implFilePath);
@@ -1763,7 +1825,7 @@ class Program {
1763
1825
  // Special case for import statement.
1764
1826
  // ex) import X.Y
1765
1827
  // SourceFile for X might not be in memory since import `X.Y` only brings in Y
1766
- fileInfo = this._createIntrimFileInfo(f);
1828
+ fileInfo = this._createInterimFileInfo(f);
1767
1829
  this._addToSourceFileListAndMap(fileInfo);
1768
1830
  // Even though this file is not referenced by anything, make sure
1769
1831
  // we have parse tree for doc string.
@@ -1813,6 +1875,12 @@ class Program {
1813
1875
  // library source file in their editor.
1814
1876
  thirdPartyImportAllowed = true;
1815
1877
  }
1878
+ else if (importResult.isNamespacePackage &&
1879
+ importResult.filteredImplicitImports.some((implicitImport) => !!implicitImport.pyTypedInfo)) {
1880
+ // Handle the case where the import targets a namespace package, and a
1881
+ // submodule contained within it has a py.typed marker.
1882
+ thirdPartyImportAllowed = true;
1883
+ }
1816
1884
  // Some libraries ship with stub files that import from non-stubs. Don't
1817
1885
  // explore those.
1818
1886
  // Don't explore any third-party files unless they're type stub files
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ import { ConfigOptions } from '../common/configOptions';
8
8
  import { ConsoleInterface } from '../common/console';
9
9
  import { Diagnostic } from '../common/diagnostic';
10
10
  import { FileEditActions, TextEditAction } from '../common/editAction';
11
- import { LanguageServiceExtension } from '../common/extensibility';
12
11
  import { FileSystem } from '../common/fileSystem';
13
12
  import { Host, HostFactory } from '../common/host';
14
13
  import { DocumentRange, Position, Range } from '../common/textRange';
@@ -33,7 +32,6 @@ export interface AnalyzerServiceOptions {
33
32
  hostFactory?: HostFactory;
34
33
  importResolverFactory?: ImportResolverFactory;
35
34
  configOptions?: ConfigOptions;
36
- extension?: LanguageServiceExtension;
37
35
  backgroundAnalysis?: BackgroundAnalysisBase;
38
36
  maxAnalysisTime?: MaxAnalysisTime;
39
37
  backgroundAnalysisProgramFactory?: BackgroundAnalysisProgramFactory;