@zzzen/pyright-internal 1.2.0-dev.20260809 → 1.2.0-dev.20260823

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 (365) hide show
  1. package/dist/analyzer/analyzerNodeInfo.d.ts +119 -24
  2. package/dist/analyzer/analyzerNodeInfo.js +408 -89
  3. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +6 -3
  5. package/dist/analyzer/binder.js +157 -70
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/checker.d.ts +5 -2
  8. package/dist/analyzer/checker.js +92 -34
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.d.ts +2 -1
  11. package/dist/analyzer/codeFlowEngine.js +12 -10
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowUtils.d.ts +2 -1
  14. package/dist/analyzer/codeFlowUtils.js +2 -3
  15. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  16. package/dist/analyzer/constraintSolver.js +47 -7
  17. package/dist/analyzer/constraintSolver.js.map +1 -1
  18. package/dist/analyzer/constructors.js +18 -8
  19. package/dist/analyzer/constructors.js.map +1 -1
  20. package/dist/analyzer/dataClasses.d.ts +6 -4
  21. package/dist/analyzer/dataClasses.js +119 -75
  22. package/dist/analyzer/dataClasses.js.map +1 -1
  23. package/dist/analyzer/declarationUtils.d.ts +2 -1
  24. package/dist/analyzer/declarationUtils.js +2 -2
  25. package/dist/analyzer/declarationUtils.js.map +1 -1
  26. package/dist/analyzer/decorators.d.ts +5 -4
  27. package/dist/analyzer/decorators.js +38 -21
  28. package/dist/analyzer/decorators.js.map +1 -1
  29. package/dist/analyzer/enums.d.ts +5 -4
  30. package/dist/analyzer/enums.js +11 -10
  31. package/dist/analyzer/enums.js.map +1 -1
  32. package/dist/analyzer/importResolver.d.ts +1 -1
  33. package/dist/analyzer/importResolver.js +5 -3
  34. package/dist/analyzer/importResolver.js.map +1 -1
  35. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  36. package/dist/analyzer/importStatementUtils.js +14 -7
  37. package/dist/analyzer/importStatementUtils.js.map +1 -1
  38. package/dist/analyzer/namedTuples.d.ts +2 -1
  39. package/dist/analyzer/namedTuples.js +3 -4
  40. package/dist/analyzer/namedTuples.js.map +1 -1
  41. package/dist/analyzer/operations.d.ts +3 -2
  42. package/dist/analyzer/operations.js +8 -8
  43. package/dist/analyzer/operations.js.map +1 -1
  44. package/dist/analyzer/packageTypeVerifier.js +2 -2
  45. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  46. package/dist/analyzer/parseTreeUtils.d.ts +13 -11
  47. package/dist/analyzer/parseTreeUtils.js +62 -36
  48. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  49. package/dist/analyzer/parseTreeWalker.d.ts +7 -2
  50. package/dist/analyzer/parseTreeWalker.js +29 -175
  51. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  52. package/dist/analyzer/patternMatching.d.ts +4 -3
  53. package/dist/analyzer/patternMatching.js +47 -43
  54. package/dist/analyzer/patternMatching.js.map +1 -1
  55. package/dist/analyzer/program.d.ts +12 -0
  56. package/dist/analyzer/program.js +235 -29
  57. package/dist/analyzer/program.js.map +1 -1
  58. package/dist/analyzer/properties.d.ts +4 -3
  59. package/dist/analyzer/properties.js +7 -8
  60. package/dist/analyzer/properties.js.map +1 -1
  61. package/dist/analyzer/protocols.js +14 -2
  62. package/dist/analyzer/protocols.js.map +1 -1
  63. package/dist/analyzer/scope.d.ts +3 -0
  64. package/dist/analyzer/scope.js +10 -0
  65. package/dist/analyzer/scope.js.map +1 -1
  66. package/dist/analyzer/scopeUtils.d.ts +4 -3
  67. package/dist/analyzer/scopeUtils.js +8 -8
  68. package/dist/analyzer/scopeUtils.js.map +1 -1
  69. package/dist/analyzer/sentinel.d.ts +2 -1
  70. package/dist/analyzer/sentinel.js +2 -3
  71. package/dist/analyzer/sentinel.js.map +1 -1
  72. package/dist/analyzer/service.js +28 -10
  73. package/dist/analyzer/service.js.map +1 -1
  74. package/dist/analyzer/sourceEnumerator.d.ts +5 -0
  75. package/dist/analyzer/sourceEnumerator.js +57 -3
  76. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  77. package/dist/analyzer/sourceFile.d.ts +12 -6
  78. package/dist/analyzer/sourceFile.js +73 -50
  79. package/dist/analyzer/sourceFile.js.map +1 -1
  80. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  81. package/dist/analyzer/sourceFileInfoUtils.js +8 -0
  82. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  83. package/dist/analyzer/sourceMapper.d.ts +4 -1
  84. package/dist/analyzer/sourceMapper.js +14 -8
  85. package/dist/analyzer/sourceMapper.js.map +1 -1
  86. package/dist/analyzer/symbol.d.ts +4 -1
  87. package/dist/analyzer/symbol.js +8 -0
  88. package/dist/analyzer/symbol.js.map +1 -1
  89. package/dist/analyzer/testWalker.js +2 -1
  90. package/dist/analyzer/testWalker.js.map +1 -1
  91. package/dist/analyzer/tracePrinter.d.ts +2 -1
  92. package/dist/analyzer/tracePrinter.js +2 -2
  93. package/dist/analyzer/tracePrinter.js.map +1 -1
  94. package/dist/analyzer/tuples.d.ts +3 -2
  95. package/dist/analyzer/tuples.js +5 -5
  96. package/dist/analyzer/tuples.js.map +1 -1
  97. package/dist/analyzer/typeCacheUtils.d.ts +6 -2
  98. package/dist/analyzer/typeCacheUtils.js +16 -37
  99. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  100. package/dist/analyzer/typeDocStringUtils.d.ts +5 -7
  101. package/dist/analyzer/typeDocStringUtils.js +229 -132
  102. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  103. package/dist/analyzer/typeEvaluator.d.ts +2 -0
  104. package/dist/analyzer/typeEvaluator.js +1280 -302
  105. package/dist/analyzer/typeEvaluator.js.map +1 -1
  106. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  107. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  108. package/dist/analyzer/typeGuards.d.ts +3 -2
  109. package/dist/analyzer/typeGuards.js +37 -33
  110. package/dist/analyzer/typeGuards.js.map +1 -1
  111. package/dist/analyzer/typeStubWriter.js +12 -9
  112. package/dist/analyzer/typeStubWriter.js.map +1 -1
  113. package/dist/analyzer/typeUtils.js +3 -1
  114. package/dist/analyzer/typeUtils.js.map +1 -1
  115. package/dist/analyzer/typedDicts.d.ts +4 -3
  116. package/dist/analyzer/typedDicts.js +15 -14
  117. package/dist/analyzer/typedDicts.js.map +1 -1
  118. package/dist/analyzer/types.d.ts +11 -1
  119. package/dist/analyzer/types.js +48 -0
  120. package/dist/analyzer/types.js.map +1 -1
  121. package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
  122. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  123. package/dist/common/collectionUtils.js +15 -6
  124. package/dist/common/collectionUtils.js.map +1 -1
  125. package/dist/common/commandLineOptions.d.ts +1 -0
  126. package/dist/common/commandLineOptions.js.map +1 -1
  127. package/dist/common/configOptions.d.ts +4 -1
  128. package/dist/common/configOptions.js +68 -12
  129. package/dist/common/configOptions.js.map +1 -1
  130. package/dist/common/envVarUtils.d.ts +1 -0
  131. package/dist/common/envVarUtils.js +41 -10
  132. package/dist/common/envVarUtils.js.map +1 -1
  133. package/dist/common/extensibility.d.ts +3 -1
  134. package/dist/common/extensibility.js.map +1 -1
  135. package/dist/common/extraPathGlob.d.ts +12 -0
  136. package/dist/common/extraPathGlob.js +315 -0
  137. package/dist/common/extraPathGlob.js.map +1 -0
  138. package/dist/common/host.d.ts +2 -0
  139. package/dist/common/host.js.map +1 -1
  140. package/dist/common/languageServerInterface.d.ts +2 -1
  141. package/dist/common/languageServerInterface.js.map +1 -1
  142. package/dist/common/pathConsts.d.ts +1 -0
  143. package/dist/common/pathConsts.js +11 -1
  144. package/dist/common/pathConsts.js.map +1 -1
  145. package/dist/common/processUtils.d.ts +4 -2
  146. package/dist/common/processUtils.js +3 -0
  147. package/dist/common/processUtils.js.map +1 -1
  148. package/dist/common/stringUtils.d.ts +6 -0
  149. package/dist/common/stringUtils.js +87 -5
  150. package/dist/common/stringUtils.js.map +1 -1
  151. package/dist/common/textEditTracker.d.ts +3 -1
  152. package/dist/common/textEditTracker.js +8 -6
  153. package/dist/common/textEditTracker.js.map +1 -1
  154. package/dist/common/textRangeCollection.d.ts +1 -0
  155. package/dist/common/textRangeCollection.js +32 -1
  156. package/dist/common/textRangeCollection.js.map +1 -1
  157. package/dist/common/uri/uriUtils.d.ts +3 -0
  158. package/dist/common/uri/uriUtils.js +65 -15
  159. package/dist/common/uri/uriUtils.js.map +1 -1
  160. package/dist/fileSystemMapping.d.ts +10 -0
  161. package/dist/fileSystemMapping.js +176 -0
  162. package/dist/fileSystemMapping.js.map +1 -0
  163. package/dist/languageService/analyzerServiceExecutor.js +2 -1
  164. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  165. package/dist/languageService/autoImporter.d.ts +1 -0
  166. package/dist/languageService/autoImporter.js +32 -5
  167. package/dist/languageService/autoImporter.js.map +1 -1
  168. package/dist/languageService/callHierarchyProvider.d.ts +7 -0
  169. package/dist/languageService/callHierarchyProvider.js +97 -11
  170. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  171. package/dist/languageService/completionProvider.d.ts +30 -8
  172. package/dist/languageService/completionProvider.js +298 -93
  173. package/dist/languageService/completionProvider.js.map +1 -1
  174. package/dist/languageService/definitionProvider.js +7 -6
  175. package/dist/languageService/definitionProvider.js.map +1 -1
  176. package/dist/languageService/documentHighlightProvider.js +2 -1
  177. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  178. package/dist/languageService/documentSymbolCollector.d.ts +3 -1
  179. package/dist/languageService/documentSymbolCollector.js +78 -14
  180. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  181. package/dist/languageService/documentSymbolProvider.js +3 -2
  182. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  183. package/dist/languageService/fileWatcherDynamicFeature.js +28 -1
  184. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  185. package/dist/languageService/hoverProvider.d.ts +2 -1
  186. package/dist/languageService/hoverProvider.js +48 -16
  187. package/dist/languageService/hoverProvider.js.map +1 -1
  188. package/dist/languageService/importSorter.d.ts +3 -1
  189. package/dist/languageService/importSorter.js +4 -2
  190. package/dist/languageService/importSorter.js.map +1 -1
  191. package/dist/languageService/importStatementCandidates.js +4 -2
  192. package/dist/languageService/importStatementCandidates.js.map +1 -1
  193. package/dist/languageService/quickActions.js +2 -1
  194. package/dist/languageService/quickActions.js.map +1 -1
  195. package/dist/languageService/referencesProvider.js +12 -5
  196. package/dist/languageService/referencesProvider.js.map +1 -1
  197. package/dist/languageService/signatureHelpProvider.d.ts +3 -0
  198. package/dist/languageService/signatureHelpProvider.js +56 -18
  199. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  200. package/dist/languageService/symbolIndexer.d.ts +2 -1
  201. package/dist/languageService/symbolIndexer.js +7 -7
  202. package/dist/languageService/symbolIndexer.js.map +1 -1
  203. package/dist/languageService/tooltipUtils.d.ts +1 -1
  204. package/dist/languageService/tooltipUtils.js +103 -35
  205. package/dist/languageService/tooltipUtils.js.map +1 -1
  206. package/dist/languageService/workspaceSymbolProvider.js +3 -2
  207. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  208. package/dist/localization/localize.d.ts +12 -0
  209. package/dist/localization/localize.js +14 -0
  210. package/dist/localization/localize.js.map +1 -1
  211. package/dist/localization/package.nls.cs.json +11 -0
  212. package/dist/localization/package.nls.de.json +11 -0
  213. package/dist/localization/package.nls.en-us.json +18 -0
  214. package/dist/localization/package.nls.es.json +11 -0
  215. package/dist/localization/package.nls.fr.json +11 -0
  216. package/dist/localization/package.nls.it.json +11 -0
  217. package/dist/localization/package.nls.ja.json +11 -0
  218. package/dist/localization/package.nls.ko.json +11 -0
  219. package/dist/localization/package.nls.pl.json +11 -0
  220. package/dist/localization/package.nls.pt-br.json +11 -0
  221. package/dist/localization/package.nls.qps-ploc.json +11 -0
  222. package/dist/localization/package.nls.ru.json +11 -0
  223. package/dist/localization/package.nls.tr.json +11 -0
  224. package/dist/localization/package.nls.zh-cn.json +12 -1
  225. package/dist/localization/package.nls.zh-tw.json +13 -2
  226. package/dist/parser/parseNodes.d.ts +85 -80
  227. package/dist/parser/parseNodes.js +182 -159
  228. package/dist/parser/parseNodes.js.map +1 -1
  229. package/dist/parser/parseTreeUtils.d.ts +3 -0
  230. package/dist/parser/parseTreeUtils.js +209 -0
  231. package/dist/parser/parseTreeUtils.js.map +1 -0
  232. package/dist/parser/parser.d.ts +16 -6
  233. package/dist/parser/parser.js +210 -144
  234. package/dist/parser/parser.js.map +1 -1
  235. package/dist/parser/stringAnnotationInfo.d.ts +16 -0
  236. package/dist/parser/stringAnnotationInfo.js +26 -0
  237. package/dist/parser/stringAnnotationInfo.js.map +1 -0
  238. package/dist/readonlyAugmentedFileSystem.d.ts +2 -9
  239. package/dist/readonlyAugmentedFileSystem.js +17 -144
  240. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  241. package/dist/server.js +2 -2
  242. package/dist/server.js.map +1 -1
  243. package/dist/tests/analyzerNodeInfo.test.d.ts +1 -0
  244. package/dist/tests/analyzerNodeInfo.test.js +113 -0
  245. package/dist/tests/analyzerNodeInfo.test.js.map +1 -0
  246. package/dist/tests/collectionUtils.test.js +46 -0
  247. package/dist/tests/collectionUtils.test.js.map +1 -1
  248. package/dist/tests/completions.test.js +34 -0
  249. package/dist/tests/completions.test.js.map +1 -1
  250. package/dist/tests/config.test.js +131 -6
  251. package/dist/tests/config.test.js.map +1 -1
  252. package/dist/tests/extraPathGlob.test.d.ts +1 -0
  253. package/dist/tests/extraPathGlob.test.js +434 -0
  254. package/dist/tests/extraPathGlob.test.js.map +1 -0
  255. package/dist/tests/fileSystemMapping.test.d.ts +1 -0
  256. package/dist/tests/fileSystemMapping.test.js +458 -0
  257. package/dist/tests/fileSystemMapping.test.js.map +1 -0
  258. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js +23 -0
  259. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
  260. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js +14 -0
  261. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
  262. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js +7 -0
  263. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
  264. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.d.ts +1 -0
  265. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js +41 -0
  266. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js.map +1 -0
  267. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +2 -0
  268. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
  269. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +5 -0
  270. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
  271. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js +4 -0
  272. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
  273. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.d.ts +1 -0
  274. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js +48 -0
  275. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js.map +1 -0
  276. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +8 -2
  277. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  278. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +5 -2
  279. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  280. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js +2 -2
  281. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
  282. package/dist/tests/harness/fourslash/testState.js +1 -1
  283. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  284. package/dist/tests/hoverProvider.test.js +38 -0
  285. package/dist/tests/hoverProvider.test.js.map +1 -1
  286. package/dist/tests/importStatementUtils.test.js +6 -3
  287. package/dist/tests/importStatementUtils.test.js.map +1 -1
  288. package/dist/tests/ipythonMode.test.js +38 -0
  289. package/dist/tests/ipythonMode.test.js.map +1 -1
  290. package/dist/tests/parseTreeUtils.test.js +88 -0
  291. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  292. package/dist/tests/parser.test.js +60 -3
  293. package/dist/tests/parser.test.js.map +1 -1
  294. package/dist/tests/positionUtils.test.js +23 -0
  295. package/dist/tests/positionUtils.test.js.map +1 -1
  296. package/dist/tests/pyrightFileSystem.test.js +41 -0
  297. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  298. package/dist/tests/service.test.js +77 -0
  299. package/dist/tests/service.test.js.map +1 -1
  300. package/dist/tests/sourceEnumeratorSymlink.test.d.ts +1 -0
  301. package/dist/tests/sourceEnumeratorSymlink.test.js +203 -0
  302. package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -0
  303. package/dist/tests/stringUtils.test.js +84 -0
  304. package/dist/tests/stringUtils.test.js.map +1 -1
  305. package/dist/tests/symlinkAliasInvalidation.test.d.ts +1 -0
  306. package/dist/tests/symlinkAliasInvalidation.test.js +471 -0
  307. package/dist/tests/symlinkAliasInvalidation.test.js.map +1 -0
  308. package/dist/tests/testUtils.d.ts +2 -0
  309. package/dist/tests/testUtils.js +7 -1
  310. package/dist/tests/testUtils.js.map +1 -1
  311. package/dist/tests/textEditUtil.test.js +2 -2
  312. package/dist/tests/textEditUtil.test.js.map +1 -1
  313. package/dist/tests/textRangeCollection.test.d.ts +1 -0
  314. package/dist/tests/textRangeCollection.test.js +137 -0
  315. package/dist/tests/textRangeCollection.test.js.map +1 -0
  316. package/dist/tests/typeCacheUtils.test.d.ts +1 -0
  317. package/dist/tests/typeCacheUtils.test.js +69 -0
  318. package/dist/tests/typeCacheUtils.test.js.map +1 -0
  319. package/dist/tests/typeEvaluator1.test.js +24 -3
  320. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  321. package/dist/tests/typeEvaluator3.test.js +8 -0
  322. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  323. package/dist/tests/typeEvaluator4.test.js +4 -0
  324. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  325. package/dist/tests/typeEvaluator5.test.js +12 -0
  326. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  327. package/dist/tests/typeEvaluator6.test.js +33 -1
  328. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  329. package/dist/tests/typeEvaluator7.test.js +29 -0
  330. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  331. package/dist/tests/typeEvaluator8.test.js +318 -4
  332. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  333. package/dist/tests/typeServer/typeCache.test.d.ts +1 -0
  334. package/dist/tests/typeServer/typeCache.test.js +69 -0
  335. package/dist/tests/typeServer/typeCache.test.js.map +1 -0
  336. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +18 -0
  337. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
  338. package/dist/tests/types.test.d.ts +1 -0
  339. package/dist/{analyzer/parseTreeCleaner.js → tests/types.test.js} +23 -25
  340. package/dist/tests/types.test.js.map +1 -0
  341. package/dist/tests/uri.test.js +51 -0
  342. package/dist/tests/uri.test.js.map +1 -1
  343. package/dist/typeServer/notebookDocumentHandler.d.ts +9 -2
  344. package/dist/typeServer/notebookDocumentHandler.js +16 -6
  345. package/dist/typeServer/notebookDocumentHandler.js.map +1 -1
  346. package/dist/typeServer/programWrapper.d.ts +1 -0
  347. package/dist/typeServer/programWrapper.js +28 -15
  348. package/dist/typeServer/programWrapper.js.map +1 -1
  349. package/dist/typeServer/protocol/tspSupplemental.d.ts +1 -1
  350. package/dist/typeServer/protocol/tspSupplemental.js +2 -2
  351. package/dist/typeServer/server.d.ts +13 -2
  352. package/dist/typeServer/server.js +36 -23
  353. package/dist/typeServer/server.js.map +1 -1
  354. package/dist/typeServer/typeCache.d.ts +8 -4
  355. package/dist/typeServer/typeCache.js +33 -5
  356. package/dist/typeServer/typeCache.js.map +1 -1
  357. package/dist/typeServer/typeEvalUtils.d.ts +2 -1
  358. package/dist/typeServer/typeEvalUtils.js +7 -3
  359. package/dist/typeServer/typeEvalUtils.js.map +1 -1
  360. package/dist/typeServer/typeServerFileSystem.d.ts +10 -9
  361. package/dist/typeServer/typeServerFileSystem.js +16 -12
  362. package/dist/typeServer/typeServerFileSystem.js.map +1 -1
  363. package/package.json +7 -5
  364. package/dist/analyzer/parseTreeCleaner.d.ts +0 -8
  365. package/dist/analyzer/parseTreeCleaner.js.map +0 -1
@@ -40,6 +40,83 @@ test('source enumeration reports symlinked include roots', () => {
40
40
  assert_1.default.strictEqual(result.isComplete, true);
41
41
  assert_1.default.deepStrictEqual(enumerator.getSymlinkedDirectoryRoots().map((uri) => uri.key), [uri_1.Uri.file('/workspaceLink', fs).key]);
42
42
  });
43
+ test('source enumeration reports discovered config files', () => {
44
+ const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
45
+ fs.mkdirpSync('/projectRoot/pkgA');
46
+ fs.mkdirpSync('/projectRoot/pkgB');
47
+ fs.mkdirpSync('/projectRoot/pkgC');
48
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
49
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs), '{}');
50
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgB/pyproject.toml', fs), '[tool.pyright]\n');
51
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgC/module.py', fs), 'x = 1');
52
+ const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [],
53
+ /* autoExcludeVenv */ false, fs, new console_1.NullConsole());
54
+ const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
55
+ assert_1.default.strictEqual(result.isComplete, true);
56
+ assert_1.default.deepStrictEqual(enumerator
57
+ .getDiscoveredConfigFiles()
58
+ .map((uri) => uri.key)
59
+ .sort(), [
60
+ uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs).key,
61
+ uri_1.Uri.file('/projectRoot/pkgB/pyproject.toml', fs).key,
62
+ uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key,
63
+ ].sort());
64
+ });
65
+ test('source enumeration skips config files inside auto-excluded virtual environments', () => {
66
+ const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
67
+ fs.mkdirpSync('/projectRoot/env');
68
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
69
+ // `env` is marked as a virtual environment; with autoExcludeVenv it must not be scanned.
70
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyvenv.cfg', fs), '');
71
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyrightconfig.json', fs), '{}');
72
+ const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [],
73
+ /* autoExcludeVenv */ true, fs, new console_1.NullConsole());
74
+ const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
75
+ assert_1.default.strictEqual(result.isComplete, true);
76
+ assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
77
+ });
78
+ test('explicit include does not rescue a directory detected as a virtual environment', () => {
79
+ const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
80
+ fs.mkdirpSync('/projectRoot/env');
81
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/module.py', fs), 'x = 1');
82
+ // `env` looks like a virtual environment. Even though the user explicitly includes it, the
83
+ // default virtual-environment exclusion takes precedence over `include` (default excludes trump
84
+ // includes, just like any other exclude), so it stays excluded.
85
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyvenv.cfg', fs), '');
86
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/module.py', fs), 'y = 1');
87
+ const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot'), (0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot/env')], [],
88
+ /* autoExcludeVenv */ true, fs, new console_1.NullConsole());
89
+ const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
90
+ assert_1.default.strictEqual(result.isComplete, true);
91
+ // The venv source file is not matched and the directory is reported as auto-excluded.
92
+ assert_1.default.ok(!result.matches.has(uri_1.Uri.file('/projectRoot/env/module.py', fs).key));
93
+ assert_1.default.deepStrictEqual([...new Set(result.autoExcludedDirs.map((uri) => uri.key))], [uri_1.Uri.file('/projectRoot/env', fs).key]);
94
+ });
95
+ test('source enumeration skips config files under excluded directories', () => {
96
+ const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
97
+ fs.mkdirpSync('/projectRoot/build');
98
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
99
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/build/pyrightconfig.json', fs), '{}');
100
+ const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/projectRoot', fs), 'build')],
101
+ /* autoExcludeVenv */ false, fs, new console_1.NullConsole());
102
+ const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
103
+ assert_1.default.strictEqual(result.isComplete, true);
104
+ assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
105
+ });
106
+ test('source enumeration skips config files matching an exclude file spec', () => {
107
+ const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
108
+ fs.mkdirpSync('/projectRoot/pkgA');
109
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
110
+ // pkgA is not an excluded directory (it is still scanned for sources), but its config
111
+ // file is explicitly excluded, so it must not be surfaced as a discovered config root.
112
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs), '{}');
113
+ fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/module.py', fs), 'x = 1');
114
+ const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/projectRoot', fs), 'pkgA/pyrightconfig.json')],
115
+ /* autoExcludeVenv */ false, fs, new console_1.NullConsole());
116
+ const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
117
+ assert_1.default.strictEqual(result.isComplete, true);
118
+ assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
119
+ });
43
120
  test('random library file changed, nested search paths', () => {
44
121
  const state = (0, testState_1.parseAndGetTestState)('', '/projectRoot').state;
45
122
  assert_1.default.strictEqual(state.workspace.service.test_shouldHandleLibraryFileWatchChanges(uri_1.Uri.file('/lib/.venv/site-packages/myFile.py', state.serviceProvider), [uri_1.Uri.file('/lib', state.serviceProvider), uri_1.Uri.file('/lib/.venv/site-packages', state.serviceProvider)]), true);
@@ -1 +1 @@
1
- {"version":3,"file":"service.test.js","sourceRoot":"","sources":["../../../../../src/tests/service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.test.js","sourceRoot":"","sources":["../../../../../src/tests/service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /*
3
+ * sourceEnumeratorSymlink.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ *
6
+ * Regression tests for SourceEnumerator symlink handling.
7
+ *
8
+ * A symlink that resolves outside every include root (e.g. a link to filesystem
9
+ * root "/" or "C:\") is not a recursive cycle, so the `_seenDirs` guard does not
10
+ * catch it. Before the fix, following such a link would enumerate directories
11
+ * that don't belong to the workspace -- in the worst case the entire disk --
12
+ * which made Pylance hang.
13
+ *
14
+ * Issue: https://github.com/microsoft/pylance-release/issues/6006
15
+ *
16
+ * Note: source enumeration is a sync-only code path, so there is no async
17
+ * counterpart to mirror here.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const sourceEnumerator_1 = require("../analyzer/sourceEnumerator");
21
+ const console_1 = require("../common/console");
22
+ const uri_1 = require("../common/uri/uri");
23
+ const uriUtils_1 = require("../common/uri/uriUtils");
24
+ const testHost_1 = require("./harness/testHost");
25
+ const caseSensitivityDetector = new testHost_1.TestCaseSensitivityDetector();
26
+ function makeUri(path) {
27
+ return uri_1.Uri.file(path, caseSensitivityDetector);
28
+ }
29
+ // Minimal in-memory filesystem that models directories, files, and symlinks
30
+ // well enough to drive SourceEnumerator. Paths use POSIX-style separators; all
31
+ // comparisons go through Uri so the model works on both Windows and POSIX hosts.
32
+ class MockFs {
33
+ constructor() {
34
+ // Real (symlink-resolved) nodes keyed by uri.key.
35
+ this._nodes = new Map();
36
+ // Symlink source uri.key -> target uri.
37
+ this._symlinks = new Map();
38
+ // Guards against runaway enumeration so a regression can't hang the suite.
39
+ this._readCount = 0;
40
+ }
41
+ addDir(path, children) {
42
+ this._nodes.set(makeUri(path).key, { type: 'dir', children });
43
+ }
44
+ addFile(path) {
45
+ this._nodes.set(makeUri(path).key, { type: 'file' });
46
+ }
47
+ addSymlink(path, target) {
48
+ this._symlinks.set(makeUri(path).key, makeUri(target));
49
+ }
50
+ realpath(uri) {
51
+ const target = this._symlinks.get(uri.key);
52
+ if (target) {
53
+ return this.realpath(target);
54
+ }
55
+ const parent = uri.getDirectory();
56
+ if (parent.key === uri.key) {
57
+ return uri;
58
+ }
59
+ const realParent = this.realpath(parent);
60
+ if (realParent.key === parent.key) {
61
+ return uri;
62
+ }
63
+ return this.realpath(realParent.combinePaths(uri.fileName));
64
+ }
65
+ asFileSystem() {
66
+ const self = this;
67
+ const fs = {
68
+ realpathSync(uri) {
69
+ const real = self.realpath(uri);
70
+ if (!self._nodes.has(real.key)) {
71
+ throw new Error(`ENOENT: ${uri.toString()}`);
72
+ }
73
+ return real;
74
+ },
75
+ existsSync(uri) {
76
+ return self._nodes.has(self.realpath(uri).key);
77
+ },
78
+ statSync(uri) {
79
+ const node = self._nodes.get(self.realpath(uri).key);
80
+ if (!node) {
81
+ throw new Error(`ENOENT: ${uri.toString()}`);
82
+ }
83
+ return self._makeStats(node.type);
84
+ },
85
+ readdirEntriesSync(uri) {
86
+ if (++self._readCount > 10000) {
87
+ throw new Error('Runaway enumeration: too many readdir calls');
88
+ }
89
+ const node = self._nodes.get(self.realpath(uri).key);
90
+ if (!node || node.type !== 'dir') {
91
+ throw new Error(`ENOTDIR: ${uri.toString()}`);
92
+ }
93
+ return node.children.map((name) => self._makeDirent(uri, name));
94
+ },
95
+ };
96
+ return fs;
97
+ }
98
+ _makeDirent(dirUri, name) {
99
+ const requestedChild = dirUri.combinePaths(name);
100
+ const isLink = this._symlinks.has(requestedChild.key);
101
+ const realNode = this._nodes.get(this.realpath(requestedChild).key);
102
+ const isDir = !isLink && realNode?.type === 'dir';
103
+ const isFile = !isLink && realNode?.type === 'file';
104
+ return {
105
+ name,
106
+ isFile: () => isFile,
107
+ isDirectory: () => isDir,
108
+ isSymbolicLink: () => isLink,
109
+ isBlockDevice: () => false,
110
+ isCharacterDevice: () => false,
111
+ isFIFO: () => false,
112
+ isSocket: () => false,
113
+ };
114
+ }
115
+ _makeStats(type) {
116
+ return {
117
+ size: 0,
118
+ mtimeMs: 0,
119
+ ctimeMs: 0,
120
+ isFile: () => type === 'file',
121
+ isDirectory: () => type === 'dir',
122
+ isBlockDevice: () => false,
123
+ isCharacterDevice: () => false,
124
+ isSymbolicLink: () => false,
125
+ isFIFO: () => false,
126
+ isSocket: () => false,
127
+ };
128
+ }
129
+ }
130
+ function enumerate(includeRoots, mock) {
131
+ const includes = includeRoots.map((root) => (0, uriUtils_1.getFileSpec)(makeUri(root), '**'));
132
+ const enumerator = new sourceEnumerator_1.SourceEnumerator(includes,
133
+ /* excludes */ [],
134
+ /* autoExcludeVenv */ false, mock.asFileSystem(), new console_1.NullConsole());
135
+ const result = enumerator.enumerate(/* timeLimitInMs */ 0);
136
+ expect(result.isComplete).toBe(true);
137
+ return new Set(Array.from(result.matches.values()).map((u) => u.key));
138
+ }
139
+ test('symlink to filesystem root is not followed', () => {
140
+ const mock = new MockFs();
141
+ mock.addDir('/workspace', ['app.py', 'link']);
142
+ mock.addFile('/workspace/app.py');
143
+ mock.addSymlink('/workspace/link', '/');
144
+ // The filesystem root contains python files that must NOT be enumerated.
145
+ mock.addDir('/', ['secret.py', 'etc']);
146
+ mock.addFile('/secret.py');
147
+ mock.addDir('/etc', ['deep.py']);
148
+ mock.addFile('/etc/deep.py');
149
+ const matches = enumerate(['/workspace'], mock);
150
+ expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
151
+ // Files under the symlink are recorded with the symlink path prefix. Without
152
+ // the containment guard the whole filesystem-root subtree would be pulled in.
153
+ expect(matches.has(makeUri('/workspace/link/secret.py').key)).toBe(false);
154
+ expect(matches.has(makeUri('/workspace/link/etc/deep.py').key)).toBe(false);
155
+ });
156
+ test('symlink to a sibling directory outside the workspace is skipped', () => {
157
+ const mock = new MockFs();
158
+ mock.addDir('/workspace', ['app.py', 'esc']);
159
+ mock.addFile('/workspace/app.py');
160
+ mock.addSymlink('/workspace/esc', '/other');
161
+ mock.addDir('/other', ['x.py']);
162
+ mock.addFile('/other/x.py');
163
+ const matches = enumerate(['/workspace'], mock);
164
+ expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
165
+ // Recorded under the symlink path prefix; must not be pulled in.
166
+ expect(matches.has(makeUri('/workspace/esc/x.py').key)).toBe(false);
167
+ });
168
+ test('symlink within the workspace is followed', () => {
169
+ const mock = new MockFs();
170
+ mock.addDir('/workspace', ['sub', 'real']);
171
+ mock.addSymlink('/workspace/sub', '/workspace/real');
172
+ mock.addDir('/workspace/real', ['real.py']);
173
+ mock.addFile('/workspace/real/real.py');
174
+ const matches = enumerate(['/workspace'], mock);
175
+ // The real file must be discovered (via the real dir and/or the symlink; the
176
+ // recursive-cycle guard means only one of the two paths is recorded).
177
+ const viaReal = matches.has(makeUri('/workspace/real/real.py').key);
178
+ const viaLink = matches.has(makeUri('/workspace/sub/real.py').key);
179
+ expect(viaReal || viaLink).toBe(true);
180
+ });
181
+ test('symlink to a sibling include root is followed (multi-root)', () => {
182
+ const mock = new MockFs();
183
+ mock.addDir('/root1', ['link']);
184
+ mock.addSymlink('/root1/link', '/root2/pkg');
185
+ mock.addDir('/root2', ['pkg']);
186
+ mock.addDir('/root2/pkg', ['c.py']);
187
+ mock.addFile('/root2/pkg/c.py');
188
+ const matches = enumerate(['/root1', '/root2'], mock);
189
+ // The symlink resolves under the second include root, so it must be followed
190
+ // (recorded under the /root1/link symlink prefix).
191
+ expect(matches.has(makeUri('/root1/link/c.py').key)).toBe(true);
192
+ });
193
+ test('symlink back to the include root itself does not crash and stays bounded', () => {
194
+ const mock = new MockFs();
195
+ mock.addDir('/workspace', ['app.py', 'self']);
196
+ mock.addFile('/workspace/app.py');
197
+ // A link to the include root resolves to the root (startsWith equality) and is
198
+ // then caught by the recursive-cycle guard rather than the containment guard.
199
+ mock.addSymlink('/workspace/self', '/workspace');
200
+ const matches = enumerate(['/workspace'], mock);
201
+ expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
202
+ });
203
+ //# sourceMappingURL=sourceEnumeratorSymlink.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceEnumeratorSymlink.test.js","sourceRoot":"","sources":["../../../../../src/tests/sourceEnumeratorSymlink.test.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,23 @@ var __importStar = (this && this.__importStar) || (function () {
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
41
  const assert = __importStar(require("assert"));
42
42
  const utils = __importStar(require("../common/stringUtils"));
43
+ test('string fingerprint preserves the legacy hash and separates known collisions', () => {
44
+ const values = ['', 'plain text', '\0', '😀', 'value_Aa = 1\n', 'value_BB = 1\n'];
45
+ for (const value of values) {
46
+ assert.equal(utils.getStringFingerprint(value).primary, utils.hashString(value));
47
+ }
48
+ const first = utils.getStringFingerprint('value_Aa = 1\n');
49
+ const second = utils.getStringFingerprint('value_BB = 1\n');
50
+ const equalValue = { ...first };
51
+ assert.equal(first.primary, second.primary);
52
+ assert.notEqual(first.secondary, second.secondary);
53
+ assert.notStrictEqual(equalValue, first);
54
+ assert.equal(utils.areStringFingerprintsEqual(first, first), true);
55
+ assert.equal(utils.areStringFingerprintsEqual(first, equalValue), true);
56
+ assert.equal(utils.areStringFingerprintsEqual(first, second), false);
57
+ assert.equal(utils.areStringFingerprintsEqual(first, { ...first, primary: first.primary + 1 }), false);
58
+ assert.equal(utils.areStringFingerprintsEqual(first, { ...first, secondary: first.secondary + 1 }), false);
59
+ });
43
60
  test('stringUtils isPatternInSymbol', () => {
44
61
  assert.equal(utils.isPatternInSymbol('', 'abcd'), true);
45
62
  assert.equal(utils.isPatternInSymbol('abcd', 'abcd'), true);
@@ -52,6 +69,73 @@ test('stringUtils isPatternInSymbol', () => {
52
69
  assert.equal(utils.isPatternInSymbol('azcde', 'abcd'), false);
53
70
  assert.equal(utils.isPatternInSymbol('acde', 'abcd'), false);
54
71
  assert.equal(utils.isPatternInSymbol('zbcd', 'abcd'), false);
72
+ // A typed value longer than the symbol can never match (the loop exhausts the
73
+ // symbol before consuming all typed characters).
74
+ assert.equal(utils.isPatternInSymbol('abcd', 'abc'), false);
75
+ });
76
+ test('stringUtils isPatternInSymbol unicode/locale parity', () => {
77
+ // The fast path folds case for the Latin-1 range; verify it still matches the
78
+ // locale-aware original behavior for accented Latin-1 letters.
79
+ assert.equal(utils.isPatternInSymbol('café', 'CAFÉ'), true);
80
+ assert.equal(utils.isPatternInSymbol('é', 'CAFÉ'), true);
81
+ assert.equal(utils.isPatternInSymbol('É', 'e'), false);
82
+ // Characters whose toLocaleLowerCase() changes length must go through the
83
+ // full-string fallback. Turkish dotted capital I (U+0130) lower-cases to two
84
+ // code units ("i" + combining dot), so these must match the original exactly.
85
+ assert.equal(utils.isPatternInSymbol('İ', 'I'), false);
86
+ assert.equal(utils.isPatternInSymbol('İ', 'i'), false);
87
+ assert.equal(utils.isPatternInSymbol('istanbul', 'İstanbul'), true);
88
+ // A typed value that is longer in code units than the symbol can still match
89
+ // once both are lower-cased, because İ (U+0130) lower-cases to two code units
90
+ // ("i" + U+0307 combining dot). Typing that exact 2-unit sequence must match a
91
+ // symbol of "İ". This is the case a raw pre-lowercase length check would break.
92
+ assert.equal(utils.isPatternInSymbol('i\u0307', 'İ'), true);
93
+ assert.equal(utils.isPatternInSymbol('i\u0307', 'i'), false);
94
+ // Directly assert parity with the original toLocaleLowerCase-based algorithm
95
+ // over a spread of tricky inputs (ASCII, Latin-1, ligatures, ß, non-Latin-1),
96
+ // so any future edit that breaks exact behavior is caught here.
97
+ const reference = (typedValue, symbolName) => {
98
+ const typedLower = typedValue.toLocaleLowerCase();
99
+ const symbolLower = symbolName.toLocaleLowerCase();
100
+ let typedPos = 0;
101
+ let symbolPos = 0;
102
+ while (typedPos < typedLower.length && symbolPos < symbolLower.length) {
103
+ if (typedLower[typedPos] === symbolLower[symbolPos]) {
104
+ typedPos += 1;
105
+ }
106
+ symbolPos += 1;
107
+ }
108
+ return typedPos === typedLower.length;
109
+ };
110
+ const tokens = [
111
+ '',
112
+ 'a',
113
+ 'A',
114
+ 'abc',
115
+ 'ABC',
116
+ 'aXbYc',
117
+ 'café',
118
+ 'CAFÉ',
119
+ 'É',
120
+ 'straße',
121
+ 'STRASSE',
122
+ 'İ',
123
+ 'I',
124
+ 'i',
125
+ 'ı',
126
+ 'i\u0307',
127
+ 'İstanbul',
128
+ 'istanbul',
129
+ 'file',
130
+ 'file',
131
+ 'µm',
132
+ 'MM',
133
+ ];
134
+ for (const typed of tokens) {
135
+ for (const symbol of tokens) {
136
+ assert.equal(utils.isPatternInSymbol(typed, symbol), reference(typed, symbol), `mismatch for typed=${JSON.stringify(typed)} symbol=${JSON.stringify(symbol)}`);
137
+ }
138
+ }
55
139
  });
56
140
  test('CoreCompareStringsCaseInsensitive1', () => {
57
141
  assert.equal(utils.compareStringsCaseInsensitive('Hello', 'hello'), 0 /* core.Comparison.EqualTo */);
@@ -1 +1 @@
1
- {"version":3,"file":"stringUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/stringUtils.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAGjC,6DAA+C;AAE/C,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAExD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,kCAA0B,CAAC;AACjG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,OAAO,EAAE,SAAS,CAAC,sCAA8B,CAAC;AACvG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,SAAS,EAAE,OAAO,CAAC,oCAA2B,CAAC;AACpG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,kCAA0B,CAAC;AACrG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,oCAA2B,CAAC;AAChG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"stringUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/stringUtils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};