@zzzen/pyright-internal 1.2.0-dev.20221016 → 1.2.0-dev.20221127

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 (332) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +7 -9
  2. package/dist/analyzer/backgroundAnalysisProgram.js +14 -52
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +43 -32
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +15 -3
  7. package/dist/analyzer/checker.js +260 -143
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.d.ts +2 -2
  10. package/dist/analyzer/codeFlowEngine.js +85 -88
  11. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  12. package/dist/analyzer/codeFlowTypes.d.ts +1 -0
  13. package/dist/analyzer/codeFlowTypes.js +3 -1
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +1 -1
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/dataClasses.d.ts +3 -3
  18. package/dist/analyzer/dataClasses.js +77 -57
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/declaration.js.map +1 -1
  21. package/dist/analyzer/declarationUtils.d.ts +1 -1
  22. package/dist/analyzer/declarationUtils.js +6 -4
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/docStringConversion.js +4 -3
  25. package/dist/analyzer/docStringConversion.js.map +1 -1
  26. package/dist/analyzer/importResolver.d.ts +3 -0
  27. package/dist/analyzer/importResolver.js +50 -8
  28. package/dist/analyzer/importResolver.js.map +1 -1
  29. package/dist/analyzer/importResult.d.ts +1 -0
  30. package/dist/analyzer/namedTuples.js +1 -1
  31. package/dist/analyzer/namedTuples.js.map +1 -1
  32. package/dist/analyzer/packageTypeVerifier.d.ts +2 -1
  33. package/dist/analyzer/packageTypeVerifier.js +16 -10
  34. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  35. package/dist/analyzer/parseTreeUtils.d.ts +2 -1
  36. package/dist/analyzer/parseTreeUtils.js +38 -3
  37. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  38. package/dist/analyzer/parseTreeWalker.d.ts +86 -79
  39. package/dist/analyzer/parseTreeWalker.js +384 -201
  40. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  41. package/dist/analyzer/program.d.ts +4 -7
  42. package/dist/analyzer/program.js +76 -77
  43. package/dist/analyzer/program.js.map +1 -1
  44. package/dist/analyzer/properties.js +10 -3
  45. package/dist/analyzer/properties.js.map +1 -1
  46. package/dist/analyzer/protocols.js +1 -1
  47. package/dist/analyzer/protocols.js.map +1 -1
  48. package/dist/analyzer/regions.d.ts +11 -0
  49. package/dist/analyzer/regions.js +57 -0
  50. package/dist/analyzer/regions.js.map +1 -0
  51. package/dist/analyzer/service.d.ts +9 -6
  52. package/dist/analyzer/service.js +58 -27
  53. package/dist/analyzer/service.js.map +1 -1
  54. package/dist/analyzer/sourceFile.d.ts +5 -2
  55. package/dist/analyzer/sourceFile.js +21 -8
  56. package/dist/analyzer/sourceFile.js.map +1 -1
  57. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -1
  58. package/dist/analyzer/sourceFileInfoUtils.js +1 -1
  59. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  60. package/dist/analyzer/sourceMapper.d.ts +6 -1
  61. package/dist/analyzer/sourceMapper.js +28 -5
  62. package/dist/analyzer/sourceMapper.js.map +1 -1
  63. package/dist/analyzer/sourceMapperUtils.d.ts +2 -1
  64. package/dist/analyzer/sourceMapperUtils.js +17 -5
  65. package/dist/analyzer/sourceMapperUtils.js.map +1 -1
  66. package/dist/analyzer/staticExpressions.js +19 -9
  67. package/dist/analyzer/staticExpressions.js.map +1 -1
  68. package/dist/analyzer/symbolUtils.d.ts +1 -0
  69. package/dist/analyzer/symbolUtils.js +5 -1
  70. package/dist/analyzer/symbolUtils.js.map +1 -1
  71. package/dist/analyzer/typeEvaluator.js +643 -254
  72. package/dist/analyzer/typeEvaluator.js.map +1 -1
  73. package/dist/analyzer/typeEvaluatorTypes.d.ts +15 -4
  74. package/dist/analyzer/typeGuards.js +9 -0
  75. package/dist/analyzer/typeGuards.js.map +1 -1
  76. package/dist/analyzer/typePrinter.d.ts +3 -1
  77. package/dist/analyzer/typePrinter.js +135 -26
  78. package/dist/analyzer/typePrinter.js.map +1 -1
  79. package/dist/analyzer/typeStubWriter.js +5 -1
  80. package/dist/analyzer/typeStubWriter.js.map +1 -1
  81. package/dist/analyzer/typeUtils.d.ts +4 -2
  82. package/dist/analyzer/typeUtils.js +112 -20
  83. package/dist/analyzer/typeUtils.js.map +1 -1
  84. package/dist/analyzer/typedDicts.js +8 -6
  85. package/dist/analyzer/typedDicts.js.map +1 -1
  86. package/dist/analyzer/types.d.ts +5 -4
  87. package/dist/analyzer/types.js +43 -20
  88. package/dist/analyzer/types.js.map +1 -1
  89. package/dist/backgroundAnalysisBase.d.ts +6 -4
  90. package/dist/backgroundAnalysisBase.js +30 -9
  91. package/dist/backgroundAnalysisBase.js.map +1 -1
  92. package/dist/backgroundThreadBase.d.ts +2 -1
  93. package/dist/backgroundThreadBase.js +4 -0
  94. package/dist/backgroundThreadBase.js.map +1 -1
  95. package/dist/commands/createTypeStub.js +3 -1
  96. package/dist/commands/createTypeStub.js.map +1 -1
  97. package/dist/common/configOptions.d.ts +1 -0
  98. package/dist/common/configOptions.js +4 -0
  99. package/dist/common/configOptions.js.map +1 -1
  100. package/dist/common/core.d.ts +2 -0
  101. package/dist/common/core.js +24 -3
  102. package/dist/common/core.js.map +1 -1
  103. package/dist/common/diagnostic.d.ts +8 -0
  104. package/dist/common/diagnostic.js +5 -1
  105. package/dist/common/diagnostic.js.map +1 -1
  106. package/dist/common/diagnosticRules.d.ts +2 -1
  107. package/dist/common/diagnosticRules.js +1 -0
  108. package/dist/common/diagnosticRules.js.map +1 -1
  109. package/dist/common/fileSystem.d.ts +1 -0
  110. package/dist/common/fileSystem.js.map +1 -1
  111. package/dist/common/pathUtils.d.ts +1 -0
  112. package/dist/common/pathUtils.js +13 -3
  113. package/dist/common/pathUtils.js.map +1 -1
  114. package/dist/common/pythonVersion.d.ts +1 -1
  115. package/dist/common/pythonVersion.js +1 -1
  116. package/dist/common/realFileSystem.js +12 -3
  117. package/dist/common/realFileSystem.js.map +1 -1
  118. package/dist/common/workspaceEditUtils.d.ts +6 -1
  119. package/dist/common/workspaceEditUtils.js +72 -1
  120. package/dist/common/workspaceEditUtils.js.map +1 -1
  121. package/dist/languageServerBase.d.ts +7 -5
  122. package/dist/languageServerBase.js +30 -20
  123. package/dist/languageServerBase.js.map +1 -1
  124. package/dist/languageService/analyzerServiceExecutor.d.ts +6 -2
  125. package/dist/languageService/analyzerServiceExecutor.js +7 -4
  126. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  127. package/dist/languageService/autoImporter.js +2 -1
  128. package/dist/languageService/autoImporter.js.map +1 -1
  129. package/dist/languageService/codeActionProvider.js +30 -0
  130. package/dist/languageService/codeActionProvider.js.map +1 -1
  131. package/dist/languageService/completionProvider.d.ts +1 -0
  132. package/dist/languageService/completionProvider.js +66 -28
  133. package/dist/languageService/completionProvider.js.map +1 -1
  134. package/dist/languageService/definitionProvider.d.ts +2 -0
  135. package/dist/languageService/definitionProvider.js +3 -0
  136. package/dist/languageService/definitionProvider.js.map +1 -1
  137. package/dist/languageService/documentSymbolCollector.js +7 -3
  138. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  139. package/dist/languageService/documentSymbolProvider.js +1 -1
  140. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  141. package/dist/languageService/hoverProvider.d.ts +1 -1
  142. package/dist/languageService/hoverProvider.js +73 -38
  143. package/dist/languageService/hoverProvider.js.map +1 -1
  144. package/dist/languageService/referencesProvider.js +2 -1
  145. package/dist/languageService/referencesProvider.js.map +1 -1
  146. package/dist/languageService/signatureHelpProvider.js +1 -2
  147. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  148. package/dist/languageService/tooltipUtils.js +30 -19
  149. package/dist/languageService/tooltipUtils.js.map +1 -1
  150. package/dist/localization/localize.d.ts +29 -4
  151. package/dist/localization/localize.js +20 -5
  152. package/dist/localization/localize.js.map +1 -1
  153. package/dist/localization/package.nls.en-us.json +18 -3
  154. package/dist/parser/parseNodes.d.ts +2 -1
  155. package/dist/parser/parseNodes.js +6 -1
  156. package/dist/parser/parseNodes.js.map +1 -1
  157. package/dist/parser/parser.js +19 -13
  158. package/dist/parser/parser.js.map +1 -1
  159. package/dist/parser/tokenizer.js +2 -1
  160. package/dist/parser/tokenizer.js.map +1 -1
  161. package/dist/pyright.js +4 -4
  162. package/dist/pyright.js.map +1 -1
  163. package/dist/pyrightFileSystem.d.ts +1 -0
  164. package/dist/pyrightFileSystem.js +3 -0
  165. package/dist/pyrightFileSystem.js.map +1 -1
  166. package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
  167. package/dist/readonlyAugmentedFileSystem.js +3 -0
  168. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  169. package/dist/server.d.ts +1 -1
  170. package/dist/server.js +1 -1
  171. package/dist/server.js.map +1 -1
  172. package/dist/tests/checker.test.js +25 -2
  173. package/dist/tests/checker.test.js.map +1 -1
  174. package/dist/tests/config.test.js +11 -0
  175. package/dist/tests/config.test.js.map +1 -1
  176. package/dist/tests/diagnostics.test.d.ts +1 -0
  177. package/dist/tests/diagnostics.test.js +37 -0
  178. package/dist/tests/diagnostics.test.js.map +1 -0
  179. package/dist/tests/docStringConversion.test.js +25 -0
  180. package/dist/tests/docStringConversion.test.js.map +1 -1
  181. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +1 -1
  182. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
  183. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js +5 -5
  184. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
  185. package/dist/tests/fourslash/completions.classVariable.fourslash.js +28 -6
  186. package/dist/tests/fourslash/completions.classVariable.fourslash.js.map +1 -1
  187. package/dist/tests/fourslash/{signature.paramspec.fourslash.d.ts → completions.dunderNew.Inheritance.fourslash.d.ts} +0 -0
  188. package/dist/tests/fourslash/completions.dunderNew.Inheritance.fourslash.js +29 -0
  189. package/dist/tests/fourslash/completions.dunderNew.Inheritance.fourslash.js.map +1 -0
  190. package/dist/tests/fourslash/completions.dunderNew.fourslash.d.ts +1 -0
  191. package/dist/tests/fourslash/completions.dunderNew.fourslash.js +20 -0
  192. package/dist/tests/fourslash/completions.dunderNew.fourslash.js.map +1 -0
  193. package/dist/tests/fourslash/completions.fourslash.js +2 -2
  194. package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
  195. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js +1 -1
  196. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
  197. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js +1 -1
  198. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
  199. package/dist/tests/fourslash/completions.libStub.fourslash.js +1 -1
  200. package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
  201. package/dist/tests/fourslash/completions.localCode.fourslash.js +2 -2
  202. package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
  203. package/dist/tests/fourslash/completions.plainText.fourslash.js +2 -2
  204. package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
  205. package/dist/tests/fourslash/completions.self.fourslash.js +2 -2
  206. package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
  207. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +1 -1
  208. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
  209. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js +2 -2
  210. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js.map +1 -1
  211. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.d.ts +1 -0
  212. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.js +32 -0
  213. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.js.map +1 -0
  214. package/dist/tests/fourslash/fourslash.d.ts +2 -1
  215. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js +2 -2
  216. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
  217. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js +4 -4
  218. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
  219. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js +1 -1
  220. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
  221. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js +1 -1
  222. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
  223. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js +1 -1
  224. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
  225. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js +1 -1
  226. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
  227. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js +1 -1
  228. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
  229. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +2 -2
  230. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
  231. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js +1 -1
  232. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
  233. package/dist/tests/fourslash/hover.docstring.alias.fourslash.d.ts +1 -0
  234. package/dist/tests/fourslash/hover.docstring.alias.fourslash.js +24 -0
  235. package/dist/tests/fourslash/hover.docstring.alias.fourslash.js.map +1 -0
  236. package/dist/tests/fourslash/hover.docstring.links.fourslash.js +1 -1
  237. package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
  238. package/dist/tests/fourslash/hover.docstring.split.fourslash.js +3 -3
  239. package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
  240. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.d.ts +1 -0
  241. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js +13 -0
  242. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -0
  243. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.d.ts +1 -0
  244. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js +15 -0
  245. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -0
  246. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.d.ts +1 -0
  247. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js +21 -0
  248. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -0
  249. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.d.ts +1 -0
  250. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js +17 -0
  251. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -0
  252. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.d.ts +1 -0
  253. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js +15 -0
  254. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -0
  255. package/dist/tests/fourslash/hover.fourslash.js +1 -1
  256. package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
  257. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +3 -3
  258. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  259. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js +2 -2
  260. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
  261. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +2 -2
  262. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  263. package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
  264. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  265. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js +1 -1
  266. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
  267. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js +1 -1
  268. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
  269. package/dist/tests/fourslash/hover.libStub.fourslash.js +1 -1
  270. package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
  271. package/dist/tests/fourslash/hover.plainText.fourslash.js +1 -1
  272. package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
  273. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +1 -1
  274. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
  275. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js +1 -1
  276. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
  277. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js +1 -1
  278. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
  279. package/dist/tests/fourslash/shadowedImports.fourslash.d.ts +1 -0
  280. package/dist/tests/fourslash/shadowedImports.fourslash.js +75 -0
  281. package/dist/tests/fourslash/shadowedImports.fourslash.js.map +1 -0
  282. package/dist/tests/fourslash/signature.dunderNew.fourslash.d.ts +1 -0
  283. package/dist/tests/fourslash/signature.dunderNew.fourslash.js +24 -0
  284. package/dist/tests/fourslash/signature.dunderNew.fourslash.js.map +1 -0
  285. package/dist/tests/harness/fourslash/runner.js +1 -1
  286. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  287. package/dist/tests/harness/fourslash/testLanguageService.d.ts +3 -1
  288. package/dist/tests/harness/fourslash/testLanguageService.js +4 -2
  289. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  290. package/dist/tests/harness/fourslash/testState.d.ts +7 -7
  291. package/dist/tests/harness/fourslash/testState.js +77 -161
  292. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  293. package/dist/tests/harness/fourslash/workspaceEditTestUtils.d.ts +16 -0
  294. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +159 -0
  295. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -0
  296. package/dist/tests/harness/vfs/filesystem.d.ts +1 -0
  297. package/dist/tests/harness/vfs/filesystem.js +3 -0
  298. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  299. package/dist/tests/ipythonMode.test.js +39 -0
  300. package/dist/tests/ipythonMode.test.js.map +1 -1
  301. package/dist/tests/logger.test.js +3 -1
  302. package/dist/tests/logger.test.js.map +1 -1
  303. package/dist/tests/pathUtils.test.js +7 -0
  304. package/dist/tests/pathUtils.test.js.map +1 -1
  305. package/dist/tests/sourceFile.test.js +34 -1
  306. package/dist/tests/sourceFile.test.js.map +1 -1
  307. package/dist/tests/sourceMapperUtils.test.js +39 -4
  308. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  309. package/dist/tests/tokenizer.test.js +6 -2
  310. package/dist/tests/tokenizer.test.js.map +1 -1
  311. package/dist/tests/typeEvaluator1.test.js +16 -6
  312. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  313. package/dist/tests/typeEvaluator2.test.js +15 -3
  314. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  315. package/dist/tests/typeEvaluator3.test.js +40 -10
  316. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  317. package/dist/tests/typeEvaluator4.test.js +11 -7
  318. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  319. package/dist/tests/typeEvaluator5.test.js +48 -0
  320. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  321. package/dist/tests/typePrinter.test.d.ts +1 -0
  322. package/dist/tests/typePrinter.test.js +148 -0
  323. package/dist/tests/typePrinter.test.js.map +1 -0
  324. package/dist/tests/workspaceEditUtils.test.d.ts +1 -0
  325. package/dist/tests/workspaceEditUtils.test.js +167 -0
  326. package/dist/tests/workspaceEditUtils.test.js.map +1 -0
  327. package/dist/workspaceMap.d.ts +2 -0
  328. package/dist/workspaceMap.js +45 -12
  329. package/dist/workspaceMap.js.map +1 -1
  330. package/package.json +3 -3
  331. package/dist/tests/fourslash/signature.paramspec.fourslash.js +0 -30
  332. package/dist/tests/fourslash/signature.paramspec.fourslash.js.map +0 -1
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /*
3
+ * typePrinter.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ * Author: Eric Traut
7
+ *
8
+ * Unit tests for typePrinter module.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ const assert = __importStar(require("assert"));
31
+ const typePrinter_1 = require("../analyzer/typePrinter");
32
+ const types_1 = require("../analyzer/types");
33
+ function returnTypeCallback(type) {
34
+ var _a;
35
+ return (_a = type.details.declaredReturnType) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(/* isEllipsis */ true);
36
+ }
37
+ test('SimpleTypes', () => {
38
+ const anyType = types_1.AnyType.create(/* isEllipsis */ false);
39
+ assert.strictEqual((0, typePrinter_1.printType)(anyType, 0 /* None */, returnTypeCallback), 'Any');
40
+ const ellipsisType = types_1.AnyType.create(/* isEllipsis */ true);
41
+ assert.strictEqual((0, typePrinter_1.printType)(ellipsisType, 0 /* None */, returnTypeCallback), '...');
42
+ const unknownType = types_1.UnknownType.create();
43
+ assert.strictEqual((0, typePrinter_1.printType)(unknownType, 0 /* None */, returnTypeCallback), 'Unknown');
44
+ assert.strictEqual((0, typePrinter_1.printType)(unknownType, 1 /* PrintUnknownWithAny */, returnTypeCallback), 'Any');
45
+ assert.strictEqual((0, typePrinter_1.printType)(unknownType, 256 /* PythonSyntax */, returnTypeCallback), 'Any');
46
+ const unboundType = types_1.UnboundType.create();
47
+ assert.strictEqual((0, typePrinter_1.printType)(unboundType, 0 /* None */, returnTypeCallback), 'Unbound');
48
+ assert.strictEqual((0, typePrinter_1.printType)(unboundType, 256 /* PythonSyntax */, returnTypeCallback), 'Any');
49
+ const noneInstanceType = types_1.NoneType.createInstance();
50
+ assert.strictEqual((0, typePrinter_1.printType)(noneInstanceType, 0 /* None */, returnTypeCallback), 'None');
51
+ const noneInstantiableType = types_1.NoneType.createType();
52
+ assert.strictEqual((0, typePrinter_1.printType)(noneInstantiableType, 0 /* None */, returnTypeCallback), 'Type[None]');
53
+ const moduleType = types_1.ModuleType.create('Test', '');
54
+ assert.strictEqual((0, typePrinter_1.printType)(moduleType, 0 /* None */, returnTypeCallback), 'Module("Test")');
55
+ assert.strictEqual((0, typePrinter_1.printType)(moduleType, 256 /* PythonSyntax */, returnTypeCallback), 'Any');
56
+ });
57
+ test('TypeVarTypes', () => {
58
+ const typeVarType = types_1.TypeVarType.createInstance('T');
59
+ assert.strictEqual((0, typePrinter_1.printType)(typeVarType, 0 /* None */, returnTypeCallback), 'T');
60
+ const paramSpecType = types_1.TypeVarType.createInstance('P');
61
+ paramSpecType.details.isParamSpec = true;
62
+ assert.strictEqual((0, typePrinter_1.printType)(paramSpecType, 0 /* None */, returnTypeCallback), 'P');
63
+ const typeVarTupleType = types_1.TypeVarType.createInstance('Ts');
64
+ paramSpecType.details.isVariadic = true;
65
+ assert.strictEqual((0, typePrinter_1.printType)(typeVarTupleType, 0 /* None */, returnTypeCallback), 'Ts');
66
+ });
67
+ test('ClassTypes', () => {
68
+ const classTypeA = types_1.ClassType.createInstantiable('A', '', '', '', 0 /* None */, 0,
69
+ /* declaredMetaclass*/ undefined,
70
+ /* effectiveMetaclass */ undefined);
71
+ const typeVarS = types_1.TypeVarType.createInstance('S');
72
+ const typeVarT = types_1.TypeVarType.createInstance('T');
73
+ classTypeA.details.typeParameters.push(typeVarS, typeVarT);
74
+ assert.strictEqual((0, typePrinter_1.printType)(classTypeA, 0 /* None */, returnTypeCallback), 'Type[A[S, T]]');
75
+ const instanceA = types_1.ClassType.cloneAsInstance(classTypeA);
76
+ assert.strictEqual((0, typePrinter_1.printType)(instanceA, 0 /* None */, returnTypeCallback), 'A[S, T]');
77
+ const classTypeInt = types_1.ClassType.createInstantiable('int', '', '', '', 0 /* None */, 0,
78
+ /* declaredMetaclass*/ undefined,
79
+ /* effectiveMetaclass */ undefined);
80
+ const instanceInt = types_1.ClassType.cloneAsInstance(classTypeInt);
81
+ const specializedA = types_1.ClassType.cloneForSpecialization(instanceA, [instanceInt, instanceInt],
82
+ /* isTypeArgumentExplicit */ true);
83
+ assert.strictEqual((0, typePrinter_1.printType)(specializedA, 0 /* None */, returnTypeCallback), 'A[int, int]');
84
+ const unionType = (0, types_1.combineTypes)([instanceInt, specializedA, typeVarS]);
85
+ assert.strictEqual((0, typePrinter_1.printType)(unionType, 0 /* None */, returnTypeCallback), 'Union[int, A[int, int], S]');
86
+ assert.strictEqual((0, typePrinter_1.printType)(unionType, 8 /* PEP604 */, returnTypeCallback), 'int | A[int, int] | S');
87
+ });
88
+ test('FunctionTypes', () => {
89
+ const funcTypeA = types_1.FunctionType.createInstance('A', '', '', 0 /* None */);
90
+ types_1.FunctionType.addParameter(funcTypeA, {
91
+ category: 0 /* Simple */,
92
+ hasDeclaredType: true,
93
+ type: types_1.NoneType.createInstance(),
94
+ name: 'a',
95
+ });
96
+ types_1.FunctionType.addParameter(funcTypeA, {
97
+ category: 0 /* Simple */,
98
+ hasDeclaredType: true,
99
+ type: types_1.AnyType.create(),
100
+ });
101
+ types_1.FunctionType.addParameter(funcTypeA, {
102
+ category: 1 /* VarArgList */,
103
+ hasDeclaredType: true,
104
+ type: types_1.AnyType.create(),
105
+ name: 'args',
106
+ });
107
+ types_1.FunctionType.addParameter(funcTypeA, {
108
+ category: 2 /* VarArgDictionary */,
109
+ hasDeclaredType: true,
110
+ type: types_1.AnyType.create(),
111
+ name: 'kwargs',
112
+ });
113
+ funcTypeA.details.declaredReturnType = types_1.NoneType.createInstance();
114
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeA, 0 /* None */, returnTypeCallback), '(a: None, /, *args: Any, **kwargs: Any) -> None');
115
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeA, 256 /* PythonSyntax */, returnTypeCallback), 'Callable[..., None]');
116
+ const funcTypeB = types_1.FunctionType.createInstance('B', '', '', 0 /* None */);
117
+ types_1.FunctionType.addParameter(funcTypeB, {
118
+ category: 0 /* Simple */,
119
+ hasDeclaredType: true,
120
+ type: types_1.NoneType.createInstance(),
121
+ name: 'a',
122
+ });
123
+ types_1.FunctionType.addParameter(funcTypeB, {
124
+ category: 0 /* Simple */,
125
+ hasDeclaredType: true,
126
+ type: types_1.NoneType.createInstance(),
127
+ });
128
+ const paramSpecP = types_1.TypeVarType.createInstance('P');
129
+ paramSpecP.details.isParamSpec = true;
130
+ funcTypeB.details.paramSpec = paramSpecP;
131
+ funcTypeB.details.declaredReturnType = types_1.NoneType.createInstance();
132
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeB, 0 /* None */, returnTypeCallback), '(a: None, /, **P) -> None');
133
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeB, 256 /* PythonSyntax */, returnTypeCallback), 'Callable[Concatenate[None, P], None]');
134
+ const funcTypeC = types_1.FunctionType.createInstance('C', '', '', 0 /* None */);
135
+ const typeVarTupleTs = types_1.TypeVarType.createInstance('Ts');
136
+ typeVarTupleTs.details.isVariadic = true;
137
+ const unpackedTs = types_1.TypeVarType.cloneForUnpacked(typeVarTupleTs);
138
+ types_1.FunctionType.addParameter(funcTypeC, {
139
+ category: 1 /* VarArgList */,
140
+ hasDeclaredType: true,
141
+ type: unpackedTs,
142
+ name: 'args',
143
+ });
144
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeC, 0 /* None */, returnTypeCallback), '(*args: *Ts) -> Unknown');
145
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeC, 512 /* UseTypingUnpack */, returnTypeCallback), '(*args: Unpack[Ts]) -> Unknown');
146
+ assert.strictEqual((0, typePrinter_1.printType)(funcTypeC, 256 /* PythonSyntax */, returnTypeCallback), 'Callable[..., Any]');
147
+ });
148
+ //# sourceMappingURL=typePrinter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typePrinter.test.js","sourceRoot":"","sources":["../../../src/tests/typePrinter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ /*
3
+ * workspaceEditUtils.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * test workspaceEditUtils
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const assert = __importStar(require("assert"));
30
+ const vscode_languageserver_types_1 = require("vscode-languageserver-types");
31
+ const pathUtils_1 = require("../common/pathUtils");
32
+ const workspaceEditUtils_1 = require("../common/workspaceEditUtils");
33
+ const analyzerServiceExecutor_1 = require("../languageService/analyzerServiceExecutor");
34
+ const testLanguageService_1 = require("./harness/fourslash/testLanguageService");
35
+ const testState_1 = require("./harness/fourslash/testState");
36
+ const workspaceEditTestUtils_1 = require("./harness/fourslash/workspaceEditTestUtils");
37
+ test('test applyWorkspaceEdits changes', async () => {
38
+ var _a;
39
+ const code = `
40
+ // @filename: test.py
41
+ //// [|/*marker*/|]
42
+ `;
43
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
44
+ const cloned = await getClonedService(state);
45
+ const range = state.getRangeByMarkerName('marker');
46
+ const fileChanged = new Set();
47
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
48
+ changes: {
49
+ [(0, pathUtils_1.convertPathToUri)(cloned.fs, range.fileName)]: [
50
+ {
51
+ range: state.convertPositionRange(range),
52
+ newText: 'Text Changed',
53
+ },
54
+ ],
55
+ },
56
+ }, fileChanged);
57
+ assert.strictEqual(fileChanged.size, 1);
58
+ assert.strictEqual((_a = cloned.test_program.getSourceFile(range.fileName)) === null || _a === void 0 ? void 0 : _a.getFileContent(), 'Text Changed');
59
+ });
60
+ test('test applyWorkspaceEdits documentChanges', async () => {
61
+ var _a;
62
+ const code = `
63
+ // @filename: test.py
64
+ //// [|/*marker*/|]
65
+ `;
66
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
67
+ const cloned = await getClonedService(state);
68
+ const range = state.getRangeByMarkerName('marker');
69
+ const fileChanged = new Set();
70
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
71
+ documentChanges: [
72
+ vscode_languageserver_types_1.TextDocumentEdit.create({
73
+ uri: (0, pathUtils_1.convertPathToUri)(cloned.fs, range.fileName),
74
+ version: null,
75
+ }, [
76
+ {
77
+ range: state.convertPositionRange(range),
78
+ newText: 'Text Changed',
79
+ },
80
+ ]),
81
+ ],
82
+ }, fileChanged);
83
+ assert.strictEqual(fileChanged.size, 1);
84
+ assert.strictEqual((_a = cloned.test_program.getSourceFile(range.fileName)) === null || _a === void 0 ? void 0 : _a.getFileContent(), 'Text Changed');
85
+ });
86
+ test('test generateWorkspaceEdits', async () => {
87
+ const code = `
88
+ // @filename: test1.py
89
+ //// [|/*marker1*/|]
90
+
91
+ // @filename: test2.py
92
+ //// [|/*marker2*/|]
93
+ `;
94
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
95
+ const cloned = await getClonedService(state);
96
+ const range1 = state.getRangeByMarkerName('marker1');
97
+ const fileChanged = new Set();
98
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
99
+ changes: {
100
+ [(0, pathUtils_1.convertPathToUri)(cloned.fs, range1.fileName)]: [
101
+ {
102
+ range: state.convertPositionRange(range1),
103
+ newText: 'Test1 Changed',
104
+ },
105
+ ],
106
+ },
107
+ }, fileChanged);
108
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
109
+ documentChanges: [
110
+ vscode_languageserver_types_1.TextDocumentEdit.create({
111
+ uri: (0, pathUtils_1.convertPathToUri)(cloned.fs, range1.fileName),
112
+ version: null,
113
+ }, [
114
+ {
115
+ range: { start: { line: 0, character: 0 }, end: { line: 0, character: 5 } },
116
+ newText: 'NewTest1',
117
+ },
118
+ ]),
119
+ ],
120
+ }, fileChanged);
121
+ const range2 = state.getRangeByMarkerName('marker2');
122
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
123
+ documentChanges: [
124
+ vscode_languageserver_types_1.TextDocumentEdit.create({
125
+ uri: (0, pathUtils_1.convertPathToUri)(cloned.fs, range2.fileName),
126
+ version: null,
127
+ }, [
128
+ {
129
+ range: state.convertPositionRange(range2),
130
+ newText: 'Test2 Changed',
131
+ },
132
+ ]),
133
+ ],
134
+ }, fileChanged);
135
+ (0, workspaceEditUtils_1.applyWorkspaceEdits)(cloned, {
136
+ changes: {
137
+ [(0, pathUtils_1.convertPathToUri)(cloned.fs, range2.fileName)]: [
138
+ {
139
+ range: { start: { line: 0, character: 0 }, end: { line: 0, character: 5 } },
140
+ newText: 'NewTest2',
141
+ },
142
+ ],
143
+ },
144
+ }, fileChanged);
145
+ assert.strictEqual(fileChanged.size, 2);
146
+ const actualEdits = (0, workspaceEditUtils_1.generateWorkspaceEdits)(state.workspace.serviceInstance, cloned, fileChanged);
147
+ (0, workspaceEditTestUtils_1.verifyWorkspaceEdit)({
148
+ changes: {
149
+ [(0, pathUtils_1.convertPathToUri)(cloned.fs, range1.fileName)]: [
150
+ {
151
+ range: state.convertPositionRange(range1),
152
+ newText: 'NewTest1 Changed',
153
+ },
154
+ ],
155
+ [(0, pathUtils_1.convertPathToUri)(cloned.fs, range2.fileName)]: [
156
+ {
157
+ range: state.convertPositionRange(range1),
158
+ newText: 'NewTest2 Changed',
159
+ },
160
+ ],
161
+ },
162
+ }, actualEdits);
163
+ });
164
+ async function getClonedService(state) {
165
+ return await analyzerServiceExecutor_1.AnalyzerServiceExecutor.cloneService(new testLanguageService_1.TestLanguageService(state.workspace, state.console, state.workspace.serviceInstance.fs), state.workspace, { useBackgroundAnalysis: false });
166
+ }
167
+ //# sourceMappingURL=workspaceEditUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceEditUtils.test.js","sourceRoot":"","sources":["../../../src/tests/workspaceEditUtils.test.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,6 @@ export declare class WorkspaceMap extends Map<string, WorkspaceServiceInstance>
5
5
  hasMultipleWorkspaces(kind?: string): boolean;
6
6
  getNonDefaultWorkspaces(kind?: string): WorkspaceServiceInstance[];
7
7
  getWorkspaceForFile(ls: LanguageServerBase, filePath: string): WorkspaceServiceInstance;
8
+ getContainingWorkspace(filePath: string): WorkspaceServiceInstance | undefined;
9
+ private _getBestWorkspace;
8
10
  }
@@ -53,16 +53,22 @@ class WorkspaceMap extends Map {
53
53
  getWorkspaceForFile(ls, filePath) {
54
54
  let bestRootPath;
55
55
  let bestInstance;
56
+ // The order of how we find the best matching workspace for the given file is
57
+ // 1. The given file is the workspace itself (ex, a file being a virtual workspace itself).
58
+ // 2. The given file matches the fileSpec of the service under the workspace
59
+ // (the file is a user file the workspace provides LSP service for).
60
+ // 3. The given file doesn't match anything but we have only 1 regular workspace
61
+ // (ex, open a library file from the workspace).
62
+ // 4. The given file doesn't match anything and there are multiple workspaces but one of workspaces
63
+ // contains the file (ex, open a library file already imported by a workspace).
64
+ // 5. If none of the above works, then it matches the default workspace.
56
65
  this.forEach((workspace) => {
57
66
  if (workspace.path) {
58
- // Is the file is under this workspace folder?
59
- if (!workspace.owns(filePath)) {
67
+ if (workspace.path !== filePath && !workspace.serviceInstance.isTracked(filePath)) {
60
68
  return;
61
69
  }
62
- // Is this the fist candidate? If not, is this workspace folder
63
- // contained within the previous candidate folder? We always want
64
- // to select the innermost folder, since that overrides the
65
- // outer folders.
70
+ // Among workspaces that own the file, make sure we return the inner most one which
71
+ // we consider as the best workspace.
66
72
  if (bestRootPath === undefined || workspace.path.startsWith(bestRootPath)) {
67
73
  bestRootPath = workspace.path;
68
74
  bestInstance = workspace;
@@ -72,13 +78,20 @@ class WorkspaceMap extends Map {
72
78
  // If there were multiple workspaces or we couldn't find any,
73
79
  // create a default one to use for this file.
74
80
  if (bestInstance === undefined) {
81
+ const regularWorkspaces = this.getNonDefaultWorkspaces(languageServerBase_1.WellKnownWorkspaceKinds.Regular);
82
+ // If we have only 1 regular workspace, then use that.
83
+ if (regularWorkspaces.length === 1) {
84
+ return regularWorkspaces[0];
85
+ }
86
+ // If we have multiple workspaces, see whether we can at least find one that contains the file.
87
+ // the file might not be tracked (user file), but still belongs to a workspace as a library file or as an orphan file to the workspace.
88
+ const containingWorkspace = this._getBestWorkspace(regularWorkspaces.filter((w) => w.serviceInstance.contains(filePath)));
89
+ if (containingWorkspace) {
90
+ return containingWorkspace;
91
+ }
92
+ // If no workspace contains it, then it belongs to the default workspace.
75
93
  let defaultWorkspace = this.get(this._defaultWorkspacePath);
76
94
  if (!defaultWorkspace) {
77
- // If there is only one workspace, use that one.
78
- const workspaceNames = [...this.keys()];
79
- if (workspaceNames.length === 1) {
80
- return this.get(workspaceNames[0]);
81
- }
82
95
  // Create a default workspace for files that are outside
83
96
  // of all workspaces.
84
97
  defaultWorkspace = {
@@ -93,7 +106,6 @@ class WorkspaceMap extends Map {
93
106
  disableWorkspaceSymbol: false,
94
107
  isInitialized: (0, deferred_1.createDeferred)(),
95
108
  searchPathsToWatch: [],
96
- owns: (f) => true,
97
109
  };
98
110
  this.set(this._defaultWorkspacePath, defaultWorkspace);
99
111
  ls.updateSettingsForWorkspace(defaultWorkspace).ignoreErrors();
@@ -102,6 +114,27 @@ class WorkspaceMap extends Map {
102
114
  }
103
115
  return bestInstance;
104
116
  }
117
+ getContainingWorkspace(filePath) {
118
+ return this._getBestWorkspace(this.getNonDefaultWorkspaces(languageServerBase_1.WellKnownWorkspaceKinds.Regular).filter((w) => filePath.startsWith(w.path)));
119
+ }
120
+ _getBestWorkspace(workspaces) {
121
+ if (workspaces.length === 0) {
122
+ return undefined;
123
+ }
124
+ if (workspaces.length === 1) {
125
+ return workspaces[0];
126
+ }
127
+ // Best workspace is the inner most workspace.
128
+ return workspaces.reduce((previousWorkspace, currentWorkspace) => {
129
+ if (!previousWorkspace) {
130
+ return currentWorkspace;
131
+ }
132
+ if (currentWorkspace.path.startsWith(previousWorkspace.path)) {
133
+ return currentWorkspace;
134
+ }
135
+ return previousWorkspace;
136
+ }, workspaces[0]);
137
+ }
105
138
  }
106
139
  exports.WorkspaceMap = WorkspaceMap;
107
140
  //# sourceMappingURL=workspaceMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceMap.js","sourceRoot":"","sources":["../../src/workspaceMap.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gDAAmD;AACnD,6DAA6G;AAE7G,MAAa,YAAa,SAAQ,GAAqC;IAAvE;;QACY,0BAAqB,GAAG,WAAW,CAAC;IA4GhD,CAAC;IA1GY,MAAM,CAAC,GAAW;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,KAAK,CAAC;SAChB;QAED,4CAA4C;QAC5C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAEpC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,IAAa;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC9C,KAAK,EAAE,CAAC;aACX;YAED,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,uBAAuB,CAAC,IAAa;QACjC,MAAM,UAAU,GAA+B,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBACjB,OAAO;aACV;YAED,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAClD,OAAO;aACV;YAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,EAAsB,EAAE,QAAgB;QACxD,IAAI,YAAgC,CAAC;QACrC,IAAI,YAAkD,CAAC;QAEvD,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACvB,IAAI,SAAS,CAAC,IAAI,EAAE;gBAChB,8CAA8C;gBAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC3B,OAAO;iBACV;gBAED,+DAA+D;gBAC/D,iEAAiE;gBACjE,2DAA2D;gBAC3D,iBAAiB;gBACjB,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACvE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;oBAC9B,YAAY,GAAG,SAAS,CAAC;iBAC5B;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,6CAA6C;QAC7C,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,EAAE;gBACnB,gDAAgD;gBAChD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,CAAC;iBACvC;gBAED,wDAAwD;gBACxD,qBAAqB;gBACrB,gBAAgB,GAAG;oBACf,aAAa,EAAE,EAAE;oBACjB,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,EAAE;oBACR,GAAG,EAAE,EAAE;oBACP,eAAe,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC;oBACrE,KAAK,EAAE,CAAC,4CAAuB,CAAC,OAAO,CAAC;oBACxC,uBAAuB,EAAE,KAAK;oBAC9B,sBAAsB,EAAE,KAAK;oBAC7B,sBAAsB,EAAE,KAAK;oBAC7B,aAAa,EAAE,IAAA,yBAAc,GAAW;oBACxC,kBAAkB,EAAE,EAAE;oBACtB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;iBACpB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;gBACvD,EAAE,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,YAAY,EAAE,CAAC;aAClE;YAED,OAAO,gBAAgB,CAAC;SAC3B;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AA7GD,oCA6GC"}
1
+ {"version":3,"file":"workspaceMap.js","sourceRoot":"","sources":["../../src/workspaceMap.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gDAAmD;AACnD,6DAA6G;AAE7G,MAAa,YAAa,SAAQ,GAAqC;IAAvE;;QACY,0BAAqB,GAAG,WAAW,CAAC;IAyJhD,CAAC;IAvJY,MAAM,CAAC,GAAW;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,KAAK,CAAC;SAChB;QAED,4CAA4C;QAC5C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAEpC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,IAAa;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC9C,KAAK,EAAE,CAAC;aACX;YAED,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,uBAAuB,CAAC,IAAa;QACjC,MAAM,UAAU,GAA+B,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBACjB,OAAO;aACV;YAED,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAClD,OAAO;aACV;YAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,EAAsB,EAAE,QAAgB;QACxD,IAAI,YAAgC,CAAC;QACrC,IAAI,YAAkD,CAAC;QAEvD,6EAA6E;QAC7E,2FAA2F;QAC3F,4EAA4E;QAC5E,uEAAuE;QACvE,gFAAgF;QAChF,mDAAmD;QACnD,mGAAmG;QACnG,kFAAkF;QAClF,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACvB,IAAI,SAAS,CAAC,IAAI,EAAE;gBAChB,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBAC/E,OAAO;iBACV;gBAED,mFAAmF;gBACnF,qCAAqC;gBACrC,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACvE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;oBAC9B,YAAY,GAAG,SAAS,CAAC;iBAC5B;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,6CAA6C;QAC7C,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,4CAAuB,CAAC,OAAO,CAAC,CAAC;YAExF,sDAAsD;YACtD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;aAC/B;YAED,+FAA+F;YAC/F,uIAAuI;YACvI,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAC9C,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACxE,CAAC;YACF,IAAI,mBAAmB,EAAE;gBACrB,OAAO,mBAAmB,CAAC;aAC9B;YAED,yEAAyE;YACzE,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,EAAE;gBACnB,wDAAwD;gBACxD,qBAAqB;gBACrB,gBAAgB,GAAG;oBACf,aAAa,EAAE,EAAE;oBACjB,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,EAAE;oBACR,GAAG,EAAE,EAAE;oBACP,eAAe,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC;oBACrE,KAAK,EAAE,CAAC,4CAAuB,CAAC,OAAO,CAAC;oBACxC,uBAAuB,EAAE,KAAK;oBAC9B,sBAAsB,EAAE,KAAK;oBAC7B,sBAAsB,EAAE,KAAK;oBAC7B,aAAa,EAAE,IAAA,yBAAc,GAAW;oBACxC,kBAAkB,EAAE,EAAE;iBACzB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;gBACvD,EAAE,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,YAAY,EAAE,CAAC;aAClE;YAED,OAAO,gBAAgB,CAAC;SAC3B;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,iBAAiB,CACzB,IAAI,CAAC,uBAAuB,CAAC,4CAAuB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC3G,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,UAAsC;QAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;SACxB;QAED,8CAA8C;QAC9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,EAAE;YAC7D,IAAI,CAAC,iBAAiB,EAAE;gBACpB,OAAO,gBAAgB,CAAC;aAC3B;YAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;gBAC1D,OAAO,gBAAgB,CAAC;aAC3B;YAED,OAAO,iBAAiB,CAAC;QAC7B,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CACJ;AA1JD,oCA0JC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@zzzen/pyright-internal",
3
3
  "displayName": "pyright",
4
4
  "description": "Type checker for the Python language",
5
- "version": "1.2.0-dev.20221016",
5
+ "version": "1.2.0-dev.20221127",
6
6
  "license": "MIT",
7
7
  "private": false,
8
8
  "files": [
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@iarna/toml": "2.2.5",
19
- "@yarnpkg/fslib": "2.7.1",
19
+ "@yarnpkg/fslib": "2.9.0",
20
20
  "@yarnpkg/libzip": "2.2.4",
21
21
  "chalk": "^4.1.2",
22
22
  "chokidar": "^3.5.3",
@@ -30,7 +30,7 @@
30
30
  "vscode-languageserver": "8.1.0-next.1",
31
31
  "vscode-languageserver-textdocument": "^1.0.7",
32
32
  "vscode-languageserver-types": "3.17.2",
33
- "vscode-uri": "^3.0.3"
33
+ "vscode-uri": "^3.0.6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/command-line-args": "^5.2.0",
@@ -1,30 +0,0 @@
1
- "use strict";
2
- /// <reference path="fourslash.ts" />
3
- // @filename: sig_paramspec.py
4
- //// from typing import Callable, Concatenate, ParamSpec
5
- ////
6
- ////
7
- //// P = ParamSpec("P")
8
- //// def tester(c: Callable[Concatenate[int, str, P], None]) -> Callable[Concatenate[int, P], None]:
9
- //// pass
10
- ////
11
- //// @tester
12
- //// def foo(a: int, b: str, c: str, d: str):
13
- //// pass
14
- ////
15
- //// foo(1,[|/*s1*/|])
16
- {
17
- const simpleSignatures = [
18
- {
19
- label: '(int, c: str, d: str) -> None',
20
- parameters: ['int', 'c: str', 'd: str'],
21
- },
22
- ];
23
- helper.verifySignature('plaintext', {
24
- s1: {
25
- signatures: simpleSignatures,
26
- activeParameters: [1],
27
- },
28
- });
29
- }
30
- //# sourceMappingURL=signature.paramspec.fourslash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.paramspec.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/signature.paramspec.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,8BAA8B;AAC9B,wDAAwD;AACxD,IAAI;AACJ,IAAI;AACJ,uBAAuB;AACvB,oGAAoG;AACpG,aAAa;AACb,IAAI;AACJ,YAAY;AACZ,6CAA6C;AAC7C,aAAa;AACb,IAAI;AACJ,sBAAsB;AAEtB;IACI,MAAM,gBAAgB,GAAG;QACrB;YACI,KAAK,EAAE,+BAA+B;YACtC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAC1C;KACJ,CAAC;IAEF,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE;QAChC,EAAE,EAAE;YACA,UAAU,EAAE,gBAAgB;YAC5B,gBAAgB,EAAE,CAAC,CAAC,CAAC;SACxB;KACJ,CAAC,CAAC;CACN"}