@zzzen/pyright-internal 1.2.0-dev.20240324 → 1.2.0-dev.20240407

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 (327) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +0 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +15 -8
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/cacheManager.d.ts +12 -0
  6. package/dist/analyzer/cacheManager.js +63 -3
  7. package/dist/analyzer/cacheManager.js.map +1 -1
  8. package/dist/analyzer/checker.d.ts +2 -3
  9. package/dist/analyzer/checker.js +18 -13
  10. package/dist/analyzer/checker.js.map +1 -1
  11. package/dist/analyzer/codeFlowEngine.js +14 -2
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowTypes.d.ts +1 -0
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +20 -3
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/constructorTransform.js +2 -2
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/constructors.d.ts +3 -2
  20. package/dist/analyzer/constructors.js +76 -54
  21. package/dist/analyzer/constructors.js.map +1 -1
  22. package/dist/analyzer/dataClasses.js +7 -6
  23. package/dist/analyzer/dataClasses.js.map +1 -1
  24. package/dist/analyzer/declaration.js +1 -1
  25. package/dist/analyzer/declaration.js.map +1 -1
  26. package/dist/analyzer/enums.js +8 -3
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/functionTransform.js +1 -1
  29. package/dist/analyzer/functionTransform.js.map +1 -1
  30. package/dist/analyzer/importResolver.js +19 -17
  31. package/dist/analyzer/importResolver.js.map +1 -1
  32. package/dist/analyzer/importStatementUtils.d.ts +6 -6
  33. package/dist/analyzer/importStatementUtils.js +42 -42
  34. package/dist/analyzer/importStatementUtils.js.map +1 -1
  35. package/dist/analyzer/namedTuples.js +3 -1
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/packageTypeVerifier.js +7 -7
  38. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  39. package/dist/analyzer/parseTreeUtils.d.ts +6 -5
  40. package/dist/analyzer/parseTreeUtils.js +12 -13
  41. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  42. package/dist/analyzer/patternMatching.js +15 -4
  43. package/dist/analyzer/patternMatching.js.map +1 -1
  44. package/dist/analyzer/program.d.ts +5 -10
  45. package/dist/analyzer/program.js +35 -30
  46. package/dist/analyzer/program.js.map +1 -1
  47. package/dist/analyzer/programTypes.d.ts +11 -0
  48. package/dist/analyzer/programTypes.js +11 -0
  49. package/dist/analyzer/programTypes.js.map +1 -0
  50. package/dist/analyzer/properties.js +10 -10
  51. package/dist/analyzer/properties.js.map +1 -1
  52. package/dist/analyzer/protocols.js +5 -5
  53. package/dist/analyzer/protocols.js.map +1 -1
  54. package/dist/analyzer/service.d.ts +3 -2
  55. package/dist/analyzer/service.js +24 -15
  56. package/dist/analyzer/service.js.map +1 -1
  57. package/dist/analyzer/sourceFile.d.ts +5 -3
  58. package/dist/analyzer/sourceFile.js +112 -75
  59. package/dist/analyzer/sourceFile.js.map +1 -1
  60. package/dist/analyzer/sourceFileInfoUtils.js +4 -4
  61. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  62. package/dist/analyzer/sourceMapper.js +6 -6
  63. package/dist/analyzer/symbol.d.ts +4 -1
  64. package/dist/analyzer/symbol.js +10 -0
  65. package/dist/analyzer/symbol.js.map +1 -1
  66. package/dist/analyzer/symbolUtils.d.ts +1 -0
  67. package/dist/analyzer/symbolUtils.js +11 -1
  68. package/dist/analyzer/symbolUtils.js.map +1 -1
  69. package/dist/analyzer/tracePrinter.js +2 -2
  70. package/dist/analyzer/tracePrinter.js.map +1 -1
  71. package/dist/analyzer/typeDocStringUtils.js +1 -1
  72. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  73. package/dist/analyzer/typeEvaluator.js +159 -73
  74. package/dist/analyzer/typeEvaluator.js.map +1 -1
  75. package/dist/analyzer/typeGuards.js +16 -9
  76. package/dist/analyzer/typeGuards.js.map +1 -1
  77. package/dist/analyzer/typeStubWriter.js +1 -1
  78. package/dist/analyzer/typeStubWriter.js.map +1 -1
  79. package/dist/analyzer/typeUtils.d.ts +2 -2
  80. package/dist/analyzer/typeUtils.js +33 -20
  81. package/dist/analyzer/typeUtils.js.map +1 -1
  82. package/dist/analyzer/typedDicts.js +32 -20
  83. package/dist/analyzer/typedDicts.js.map +1 -1
  84. package/dist/analyzer/types.d.ts +5 -1
  85. package/dist/analyzer/types.js +20 -0
  86. package/dist/analyzer/types.js.map +1 -1
  87. package/dist/backgroundAnalysis.d.ts +1 -0
  88. package/dist/backgroundAnalysis.js +6 -2
  89. package/dist/backgroundAnalysis.js.map +1 -1
  90. package/dist/backgroundAnalysisBase.d.ts +2 -1
  91. package/dist/backgroundAnalysisBase.js +6 -1
  92. package/dist/backgroundAnalysisBase.js.map +1 -1
  93. package/dist/backgroundThreadBase.d.ts +1 -0
  94. package/dist/backgroundThreadBase.js +19 -10
  95. package/dist/backgroundThreadBase.js.map +1 -1
  96. package/dist/commands/commandController.d.ts +2 -1
  97. package/dist/commands/commandController.js +3 -0
  98. package/dist/commands/commandController.js.map +1 -1
  99. package/dist/commands/createTypeStub.d.ts +1 -1
  100. package/dist/commands/createTypeStub.js +3 -3
  101. package/dist/commands/createTypeStub.js.map +1 -1
  102. package/dist/commands/dumpFileDebugInfoCommand.d.ts +1 -1
  103. package/dist/commands/dumpFileDebugInfoCommand.js +5 -5
  104. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  105. package/dist/commands/quickActionCommand.d.ts +1 -1
  106. package/dist/commands/quickActionCommand.js +2 -2
  107. package/dist/commands/quickActionCommand.js.map +1 -1
  108. package/dist/commands/restartServer.d.ts +1 -1
  109. package/dist/common/cancellationUtils.js +2 -2
  110. package/dist/common/cancellationUtils.js.map +1 -1
  111. package/dist/common/caseSensitivityDetector.d.ts +6 -0
  112. package/dist/common/caseSensitivityDetector.js +18 -0
  113. package/dist/common/caseSensitivityDetector.js.map +1 -0
  114. package/dist/common/commandLineOptions.d.ts +3 -2
  115. package/dist/common/commandLineOptions.js.map +1 -1
  116. package/dist/common/commandUtils.js +1 -1
  117. package/dist/common/commandUtils.js.map +1 -1
  118. package/dist/common/configOptions.js +3 -3
  119. package/dist/common/configOptions.js.map +1 -1
  120. package/dist/common/envVarUtils.d.ts +1 -0
  121. package/dist/common/envVarUtils.js +42 -7
  122. package/dist/common/envVarUtils.js.map +1 -1
  123. package/dist/common/extensibility.d.ts +4 -3
  124. package/dist/common/extensibility.js.map +1 -1
  125. package/dist/common/fileBasedCancellationUtils.js +2 -2
  126. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  127. package/dist/common/fileSystem.d.ts +0 -1
  128. package/dist/common/fileSystem.js.map +1 -1
  129. package/dist/common/fullAccessHost.js +4 -3
  130. package/dist/common/fullAccessHost.js.map +1 -1
  131. package/dist/common/languageServerInterface.d.ts +62 -0
  132. package/dist/common/languageServerInterface.js +10 -0
  133. package/dist/common/languageServerInterface.js.map +1 -0
  134. package/dist/common/realFileSystem.d.ts +8 -4
  135. package/dist/common/realFileSystem.js +56 -17
  136. package/dist/common/realFileSystem.js.map +1 -1
  137. package/dist/common/serviceKeys.d.ts +21 -0
  138. package/dist/common/serviceKeys.js +26 -0
  139. package/dist/common/serviceKeys.js.map +1 -0
  140. package/dist/common/serviceProviderExtensions.d.ts +3 -15
  141. package/dist/common/serviceProviderExtensions.js +23 -27
  142. package/dist/common/serviceProviderExtensions.js.map +1 -1
  143. package/dist/common/textEditTracker.d.ts +5 -5
  144. package/dist/common/textEditTracker.js +35 -35
  145. package/dist/common/textEditTracker.js.map +1 -1
  146. package/dist/common/uri/constantUri.d.ts +36 -0
  147. package/dist/common/uri/constantUri.js +112 -0
  148. package/dist/common/uri/constantUri.js.map +1 -0
  149. package/dist/common/uri/emptyUri.d.ts +3 -31
  150. package/dist/common/uri/emptyUri.js +3 -84
  151. package/dist/common/uri/emptyUri.js.map +1 -1
  152. package/dist/common/uri/fileUri.d.ts +1 -0
  153. package/dist/common/uri/fileUri.js +3 -2
  154. package/dist/common/uri/fileUri.js.map +1 -1
  155. package/dist/common/uri/uri.d.ts +11 -3
  156. package/dist/common/uri/uri.js +31 -20
  157. package/dist/common/uri/uri.js.map +1 -1
  158. package/dist/common/uri/uriUtils.d.ts +11 -5
  159. package/dist/common/uri/uriUtils.js +31 -53
  160. package/dist/common/uri/uriUtils.js.map +1 -1
  161. package/dist/common/workspaceEditUtils.js +4 -4
  162. package/dist/common/workspaceEditUtils.js.map +1 -1
  163. package/dist/languageServerBase.d.ts +11 -59
  164. package/dist/languageServerBase.js +18 -8
  165. package/dist/languageServerBase.js.map +1 -1
  166. package/dist/languageService/analyzerServiceExecutor.d.ts +1 -1
  167. package/dist/languageService/analyzerServiceExecutor.js +4 -5
  168. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  169. package/dist/languageService/autoImporter.d.ts +3 -3
  170. package/dist/languageService/autoImporter.js +2 -1
  171. package/dist/languageService/autoImporter.js.map +1 -1
  172. package/dist/languageService/callHierarchyProvider.js +6 -6
  173. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  174. package/dist/languageService/codeActionProvider.js +43 -42
  175. package/dist/languageService/codeActionProvider.js.map +1 -1
  176. package/dist/languageService/completionProvider.d.ts +2 -2
  177. package/dist/languageService/completionProvider.js +10 -11
  178. package/dist/languageService/completionProvider.js.map +1 -1
  179. package/dist/languageService/definitionProvider.js +3 -3
  180. package/dist/languageService/definitionProvider.js.map +1 -1
  181. package/dist/languageService/documentHighlightProvider.js +2 -2
  182. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  183. package/dist/languageService/documentSymbolCollector.js +3 -3
  184. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  185. package/dist/languageService/documentSymbolProvider.d.ts +3 -2
  186. package/dist/languageService/documentSymbolProvider.js +4 -3
  187. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  188. package/dist/languageService/hoverProvider.js +2 -2
  189. package/dist/languageService/hoverProvider.js.map +1 -1
  190. package/dist/languageService/importSorter.d.ts +2 -2
  191. package/dist/languageService/importSorter.js +1 -1
  192. package/dist/languageService/importSorter.js.map +1 -1
  193. package/dist/languageService/referencesProvider.d.ts +4 -4
  194. package/dist/languageService/referencesProvider.js +4 -4
  195. package/dist/languageService/referencesProvider.js.map +1 -1
  196. package/dist/languageService/signatureHelpProvider.js +4 -4
  197. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  198. package/dist/languageService/symbolIndexer.d.ts +5 -2
  199. package/dist/languageService/symbolIndexer.js +21 -11
  200. package/dist/languageService/symbolIndexer.js.map +1 -1
  201. package/dist/languageService/workspaceSymbolProvider.js +2 -2
  202. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  203. package/dist/localization/localize.d.ts +3 -0
  204. package/dist/localization/localize.js +22 -16
  205. package/dist/localization/localize.js.map +1 -1
  206. package/dist/localization/package.nls.cs.json +1 -0
  207. package/dist/localization/package.nls.de.json +1 -0
  208. package/dist/localization/package.nls.en-us.json +1 -0
  209. package/dist/localization/package.nls.es.json +1 -0
  210. package/dist/localization/package.nls.fr.json +1 -0
  211. package/dist/localization/package.nls.it.json +1 -0
  212. package/dist/localization/package.nls.ja.json +1 -0
  213. package/dist/localization/package.nls.ko.json +1 -0
  214. package/dist/localization/package.nls.pl.json +1 -0
  215. package/dist/localization/package.nls.pt-br.json +1 -0
  216. package/dist/localization/package.nls.qps-ploc.json +1 -0
  217. package/dist/localization/package.nls.ru.json +1 -0
  218. package/dist/localization/package.nls.tr.json +1 -0
  219. package/dist/localization/package.nls.zh-cn.json +1 -0
  220. package/dist/localization/package.nls.zh-tw.json +1 -0
  221. package/dist/nodeMain.d.ts +1 -1
  222. package/dist/nodeMain.js +2 -2
  223. package/dist/nodeMain.js.map +1 -1
  224. package/dist/parser/parser.d.ts +7 -4
  225. package/dist/parser/parser.js +7 -5
  226. package/dist/parser/parser.js.map +1 -1
  227. package/dist/pyright.js +6 -6
  228. package/dist/pyright.js.map +1 -1
  229. package/dist/pyrightFileSystem.d.ts +3 -1
  230. package/dist/pyrightFileSystem.js +14 -9
  231. package/dist/pyrightFileSystem.js.map +1 -1
  232. package/dist/readonlyAugmentedFileSystem.d.ts +0 -1
  233. package/dist/readonlyAugmentedFileSystem.js +0 -3
  234. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  235. package/dist/server.d.ts +4 -2
  236. package/dist/server.js +15 -11
  237. package/dist/server.js.map +1 -1
  238. package/dist/tests/cacheManager.test.js +35 -0
  239. package/dist/tests/cacheManager.test.js.map +1 -1
  240. package/dist/tests/chainedSourceFiles.test.js +18 -18
  241. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  242. package/dist/tests/completions.test.js +4 -4
  243. package/dist/tests/completions.test.js.map +1 -1
  244. package/dist/tests/config.test.js +19 -14
  245. package/dist/tests/config.test.js.map +1 -1
  246. package/dist/tests/documentSymbolCollector.test.js +2 -3
  247. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  248. package/dist/tests/envVarUtils.test.js +77 -2
  249. package/dist/tests/envVarUtils.test.js.map +1 -1
  250. package/dist/tests/filesystem.test.js +13 -13
  251. package/dist/tests/filesystem.test.js.map +1 -1
  252. package/dist/tests/fourSlashParser.test.js +10 -10
  253. package/dist/tests/fourSlashParser.test.js.map +1 -1
  254. package/dist/tests/harness/fourslash/fourSlashParser.js +12 -10
  255. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  256. package/dist/tests/harness/fourslash/fourSlashTypes.d.ts +1 -0
  257. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  258. package/dist/tests/harness/fourslash/testLanguageService.d.ts +3 -2
  259. package/dist/tests/harness/fourslash/testLanguageService.js +2 -2
  260. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  261. package/dist/tests/harness/fourslash/testState.d.ts +6 -6
  262. package/dist/tests/harness/fourslash/testState.js +42 -37
  263. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  264. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +1 -1
  265. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
  266. package/dist/tests/harness/testHost.d.ts +7 -0
  267. package/dist/tests/harness/testHost.js +33 -14
  268. package/dist/tests/harness/testHost.js.map +1 -1
  269. package/dist/tests/harness/vfs/factory.d.ts +3 -4
  270. package/dist/tests/harness/vfs/factory.js +7 -6
  271. package/dist/tests/harness/vfs/factory.js.map +1 -1
  272. package/dist/tests/harness/vfs/filesystem.d.ts +5 -3
  273. package/dist/tests/harness/vfs/filesystem.js +22 -15
  274. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  275. package/dist/tests/importResolver.test.js +35 -34
  276. package/dist/tests/importResolver.test.js.map +1 -1
  277. package/dist/tests/importStatementUtils.test.js +9 -10
  278. package/dist/tests/importStatementUtils.test.js.map +1 -1
  279. package/dist/tests/ipythonMode.test.js +1 -1
  280. package/dist/tests/ipythonMode.test.js.map +1 -1
  281. package/dist/tests/logger.test.js +1 -1
  282. package/dist/tests/logger.test.js.map +1 -1
  283. package/dist/tests/lsp/languageServer.js +6 -5
  284. package/dist/tests/lsp/languageServer.js.map +1 -1
  285. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  286. package/dist/tests/lsp/languageServerTestUtils.js +15 -10
  287. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  288. package/dist/tests/parseTreeUtils.test.js +1 -2
  289. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  290. package/dist/tests/parser.test.js +14 -14
  291. package/dist/tests/parser.test.js.map +1 -1
  292. package/dist/tests/pyrightFileSystem.test.js +6 -5
  293. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  294. package/dist/tests/serialization.test.js +5 -5
  295. package/dist/tests/serialization.test.js.map +1 -1
  296. package/dist/tests/service.test.js +16 -25
  297. package/dist/tests/service.test.js.map +1 -1
  298. package/dist/tests/signatureHelp.test.js +1 -1
  299. package/dist/tests/signatureHelp.test.js.map +1 -1
  300. package/dist/tests/sourceFile.test.js +8 -5
  301. package/dist/tests/sourceFile.test.js.map +1 -1
  302. package/dist/tests/sourceMapperUtils.test.js +4 -4
  303. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  304. package/dist/tests/testState.test.js +5 -5
  305. package/dist/tests/testState.test.js.map +1 -1
  306. package/dist/tests/testStateUtils.js +8 -6
  307. package/dist/tests/testStateUtils.js.map +1 -1
  308. package/dist/tests/testUtils.d.ts +4 -8
  309. package/dist/tests/testUtils.js +9 -10
  310. package/dist/tests/testUtils.js.map +1 -1
  311. package/dist/tests/textEditUtil.test.js +3 -3
  312. package/dist/tests/textEditUtil.test.js.map +1 -1
  313. package/dist/tests/typeEvaluator1.test.js +1 -1
  314. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  315. package/dist/tests/typeEvaluator3.test.js +11 -5
  316. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  317. package/dist/tests/typePrinter.test.js.map +1 -1
  318. package/dist/tests/uri.test.js +220 -199
  319. package/dist/tests/uri.test.js.map +1 -1
  320. package/dist/tests/workspaceEditUtils.test.js +7 -7
  321. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  322. package/dist/tests/zipfs.test.js +7 -5
  323. package/dist/tests/zipfs.test.js.map +1 -1
  324. package/dist/workspaceFactory.d.ts +15 -6
  325. package/dist/workspaceFactory.js +16 -10
  326. package/dist/workspaceFactory.js.map +1 -1
  327. package/package.json +5 -5
@@ -63,13 +63,13 @@ class TestLanguageService {
63
63
  constructor(workspace, console, fs, options) {
64
64
  this.console = console;
65
65
  this.fs = fs;
66
- this.rootUri = uri_1.Uri.file('/');
67
66
  this.window = new TestWindow();
68
67
  this.supportAdvancedEdits = true;
69
68
  this._workspace = workspace;
69
+ this.serviceProvider = this._workspace.service.serviceProvider;
70
70
  this._defaultWorkspace = {
71
71
  workspaceName: '',
72
- rootUri: uri_1.Uri.empty(),
72
+ rootUri: undefined,
73
73
  pythonPath: undefined,
74
74
  pythonPathKind: workspaceFactory_1.WorkspacePythonPathKind.Mutable,
75
75
  kinds: [workspaceFactory_1.WellKnownWorkspaceKinds.Test],
@@ -1 +1 @@
1
- {"version":3,"file":"testLanguageService.js","sourceRoot":"","sources":["../../../../../../../src/tests/harness/fourslash/testLanguageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testLanguageService.js","sourceRoot":"","sources":["../../../../../../../src/tests/harness/fourslash/testLanguageService.ts"],"names":[],"mappings":"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"}
@@ -7,16 +7,16 @@ import { ConfigOptions } from '../../../common/configOptions';
7
7
  import { ConsoleInterface } from '../../../common/console';
8
8
  import { FileEditAction } from '../../../common/editAction';
9
9
  import { ReadOnlyFileSystem } from '../../../common/fileSystem';
10
+ import { LanguageServerInterface } from '../../../common/languageServerInterface';
10
11
  import { ServiceProvider } from '../../../common/serviceProvider';
11
12
  import { DocumentRange, Position, Range as PositionRange, TextRange } from '../../../common/textRange';
12
13
  import { Uri } from '../../../common/uri/uri';
13
- import { LanguageServerInterface } from '../../../languageServerBase';
14
14
  import { DefinitionFilter } from '../../../languageService/definitionProvider';
15
15
  import { CollectionResult } from '../../../languageService/documentSymbolCollector';
16
16
  import { ParseNode } from '../../../parser/parseNodes';
17
- import { ParseResults } from '../../../parser/parser';
17
+ import { ParseFileResults } from '../../../parser/parser';
18
18
  import { PyrightFileSystem } from '../../../pyrightFileSystem';
19
- import { Workspace } from '../../../workspaceFactory';
19
+ import { NormalWorkspace, Workspace } from '../../../workspaceFactory';
20
20
  import * as vfs from '../vfs/filesystem';
21
21
  import { FourSlashData, FourSlashFile, Marker, MultiMap, Range } from './fourSlashTypes';
22
22
  export interface TextChange {
@@ -38,7 +38,7 @@ export declare class TestState {
38
38
  private readonly _hostSpecificFeatures;
39
39
  readonly testFS: vfs.TestFileSystem;
40
40
  readonly fs: PyrightFileSystem;
41
- readonly workspace: Workspace;
41
+ readonly workspace: NormalWorkspace;
42
42
  readonly console: ConsoleInterface;
43
43
  readonly rawConfigJson: any | undefined;
44
44
  readonly serviceProvider: ServiceProvider;
@@ -163,7 +163,7 @@ export declare class TestState {
163
163
  [marker: string]: {
164
164
  references: DocumentRange[];
165
165
  };
166
- }, createDocumentRange?: (fileUri: Uri, result: CollectionResult, parseResults: ParseResults) => DocumentRange, convertToLocation?: (fs: ReadOnlyFileSystem, ranges: DocumentRange) => Location | undefined): void;
166
+ }, createDocumentRange?: (fileUri: Uri, result: CollectionResult, parseResults: ParseFileResults) => DocumentRange, convertToLocation?: (fs: ReadOnlyFileSystem, ranges: DocumentRange) => Location | undefined): void;
167
167
  verifyShowCallHierarchyGetIncomingCalls(map: {
168
168
  [marker: string]: {
169
169
  items: _.FourSlashCallHierarchyItem[];
@@ -221,7 +221,7 @@ export declare class TestState {
221
221
  protected verifyCompletionItem(expected: _.FourSlashCompletionItem, actual: CompletionItem): void;
222
222
  private _convertGlobalOptionsToConfigOptions;
223
223
  private _applyTestConfigOptions;
224
- private _getParseResult;
224
+ private _getParserOutput;
225
225
  private _getTextRangeCollection;
226
226
  private _messageAtLastKnownMarker;
227
227
  private _checkPostEditInvariants;
@@ -78,7 +78,8 @@ const fourSlashTypes_1 = require("./fourSlashTypes");
78
78
  const testLanguageService_1 = require("./testLanguageService");
79
79
  const testStateUtils_1 = require("./testStateUtils");
80
80
  const workspaceEditTestUtils_1 = require("./workspaceEditTestUtils");
81
- const testAccessHost = new testAccessHost_1.TestAccessHost(uri_1.Uri.file(vfs.MODULE_PATH), [factory_1.libFolder, factory_1.distlibFolder]);
81
+ // Make sure everything is in lower case since it has hard coded `isCaseSensitive`: true.
82
+ const testAccessHost = new testAccessHost_1.TestAccessHost(uriUtils_1.UriEx.file(vfs.MODULE_PATH), [factory_1.libFolder, factory_1.distlibFolder]);
82
83
  class TestState {
83
84
  constructor(projectRoot, testData, mountPaths, hostSpecificFeatures, testFS,
84
85
  // Setting delayFileInitialization to true enables derived class constructors to execute
@@ -111,7 +112,7 @@ class TestState {
111
112
  const service = this._createAnalysisService(this.console, this._hostSpecificFeatures.importResolverFactory, this._hostSpecificFeatures.backgroundAnalysisProgramFactory, configOptions);
112
113
  this.workspace = {
113
114
  workspaceName: 'test workspace',
114
- rootUri: uri_1.Uri.file(vfsInfo.projectRoot),
115
+ rootUri: uri_1.Uri.file(vfsInfo.projectRoot, this.serviceProvider),
115
116
  pythonPath: undefined,
116
117
  pythonPathKind: workspaceFactory_1.WorkspacePythonPathKind.Mutable,
117
118
  kinds: [workspaceFactory_1.WellKnownWorkspaceKinds.Test],
@@ -134,7 +135,6 @@ class TestState {
134
135
  if (!delayFileInitialization) {
135
136
  this.initializeFiles();
136
137
  }
137
- (0, uriUtils_1.setTestingMode)(true);
138
138
  }
139
139
  get importResolver() {
140
140
  return this.workspace.service.getImportResolver();
@@ -162,7 +162,7 @@ class TestState {
162
162
  for (const filePath of this.files) {
163
163
  const file = this._vfsFiles[filePath];
164
164
  if ((_a = file.meta) === null || _a === void 0 ? void 0 : _a["ipythonmode" /* MetadataOptionNames.ipythonMode */]) {
165
- (_b = this.program.getSourceFile(uri_1.Uri.file(filePath))) === null || _b === void 0 ? void 0 : _b.test_enableIPythonMode(true);
165
+ (_b = this.program.getSourceFile(uri_1.Uri.file(filePath, this.serviceProvider))) === null || _b === void 0 ? void 0 : _b.test_enableIPythonMode(true);
166
166
  }
167
167
  }
168
168
  }
@@ -194,7 +194,7 @@ class TestState {
194
194
  }
195
195
  }
196
196
  getMappedFilePath(path) {
197
- const uri = uri_1.Uri.file(path);
197
+ const uri = uri_1.Uri.file(path, this.serviceProvider);
198
198
  this.importResolver.ensurePartialStubPackages(this.configOptions.findExecEnvironment(uri));
199
199
  return this.fs.getMappedUri(uri).getFilePath();
200
200
  }
@@ -271,7 +271,7 @@ class TestState {
271
271
  const lineEnd = lineStart + this._getLineContent(index).length;
272
272
  this.selectRange({
273
273
  fileName: this.activeFile.fileName,
274
- fileUri: uri_1.Uri.file(this.activeFile.fileName),
274
+ fileUri: this.activeFile.fileUri,
275
275
  pos: lineStart,
276
276
  end: lineEnd,
277
277
  });
@@ -325,7 +325,7 @@ class TestState {
325
325
  const fileToOpen = this.findFile(indexOrName);
326
326
  fileToOpen.fileName = (0, pathUtils_1.normalizeSlashes)(fileToOpen.fileName);
327
327
  this.activeFile = fileToOpen;
328
- this.program.setFileOpened(uri_1.Uri.file(this.activeFile.fileName), 1, fileToOpen.content);
328
+ this.program.setFileOpened(this.activeFile.fileUri, 1, fileToOpen.content);
329
329
  return fileToOpen;
330
330
  }
331
331
  openFiles(indexOrNames) {
@@ -493,6 +493,8 @@ class TestState {
493
493
  // make sure we don't use cache built from other tests
494
494
  this.workspace.service.invalidateAndForceReanalysis(backgroundAnalysisProgram_1.InvalidatedReason.Reanalyzed);
495
495
  this.analyze();
496
+ // Local copy to use in capture.
497
+ const serviceProvider = this.serviceProvider;
496
498
  for (const range of this.getRanges()) {
497
499
  const name = this.getMarkerName(range.marker);
498
500
  if (!map[name]) {
@@ -552,7 +554,7 @@ class TestState {
552
554
  // Might be a URI. For comparison purposes in a test, convert it into a
553
555
  // file path.
554
556
  if (a.startsWith('file://')) {
555
- return (0, pathUtils_1.normalizeSlashes)(uri_1.Uri.parse(a, true).getFilePath());
557
+ return (0, pathUtils_1.normalizeSlashes)(uri_1.Uri.parse(a, serviceProvider).getFilePath());
556
558
  }
557
559
  return (0, pathUtils_1.normalizeSlashes)(a);
558
560
  }
@@ -566,7 +568,7 @@ class TestState {
566
568
  // Convert command arguments to file Uri strings. That's the expected input for command arguments.
567
569
  const convertedArgs = (_a = command.arguments) === null || _a === void 0 ? void 0 : _a.map((arg) => {
568
570
  if (typeof arg === 'string' && (arg.endsWith('.py') || arg.endsWith('.pyi'))) {
569
- return uri_1.Uri.file(arg).toString();
571
+ return uri_1.Uri.file(arg, this.serviceProvider).toString();
570
572
  }
571
573
  return arg;
572
574
  });
@@ -604,7 +606,7 @@ class TestState {
604
606
  const codeActions = await this._getCodeActions(range);
605
607
  if (verifyCodeActionCount) {
606
608
  if (codeActions.length !== Object.keys(map).length) {
607
- this.raiseError(`doesn't contain expected result: ${(0, utils_1.stringify)(map[name])}, actual: ${(0, utils_1.stringify)(codeActions)}`);
609
+ this.raiseError(`doesn't contain expected result count: ${(0, utils_1.stringify)(map[name])}, actual: ${(0, utils_1.stringify)(codeActions)}`);
608
610
  }
609
611
  }
610
612
  const matches = codeActions.filter((c) => c.title === map[name].title);
@@ -769,7 +771,7 @@ class TestState {
769
771
  }
770
772
  const expected = map[name];
771
773
  const position = this.convertOffsetToPosition(fileName, marker.position);
772
- const actual = new signatureHelpProvider_1.SignatureHelpProvider(this.program, uri_1.Uri.file(fileName), position, docFormat,
774
+ const actual = new signatureHelpProvider_1.SignatureHelpProvider(this.program, uri_1.Uri.file(fileName, this.serviceProvider), position, docFormat,
773
775
  /* hasSignatureLabelOffsetCapability */ true,
774
776
  /* hasActiveParameterCapability */ true,
775
777
  /* context */ undefined, vscode_languageserver_1.CancellationToken.None).getSignatureHelp();
@@ -822,11 +824,11 @@ class TestState {
822
824
  var _a;
823
825
  return {
824
826
  ...c,
825
- uri: (_a = c.uri) !== null && _a !== void 0 ? _a : uri_1.Uri.file(c.path),
827
+ uri: (_a = c.uri) !== null && _a !== void 0 ? _a : uri_1.Uri.file(c.path, this.serviceProvider),
826
828
  };
827
829
  });
828
830
  const position = this.convertOffsetToPosition(fileName, marker.position);
829
- const actual = new referencesProvider_1.ReferencesProvider(this.program, vscode_languageserver_1.CancellationToken.None, createDocumentRange, convertToLocation).reportReferences(uri_1.Uri.file(fileName), position, /* includeDeclaration */ true);
831
+ const actual = new referencesProvider_1.ReferencesProvider(this.program, vscode_languageserver_1.CancellationToken.None, createDocumentRange, convertToLocation).reportReferences(uri_1.Uri.file(fileName, this.serviceProvider), position, /* includeDeclaration */ true);
830
832
  assert_1.default.strictEqual((_a = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _a !== void 0 ? _a : 0, expected.length, `${name} has failed`);
831
833
  for (const r of (0, navigationUtils_1.convertDocumentRangesToLocation)(this.program.fileSystem, expected, convertToLocation)) {
832
834
  assert_1.default.equal(actual === null || actual === void 0 ? void 0 : actual.filter((d) => this._deepEqual(d, r)).length, 1);
@@ -846,7 +848,7 @@ class TestState {
846
848
  const expectedRange = map[name].items.map((x) => x.range);
847
849
  const expectedName = map[name].items.map((x) => x.name);
848
850
  const position = this.convertOffsetToPosition(fileName, marker.position);
849
- const actual = new callHierarchyProvider_1.CallHierarchyProvider(this.program, uri_1.Uri.file(fileName), position, vscode_languageserver_1.CancellationToken.None).getIncomingCalls();
851
+ const actual = new callHierarchyProvider_1.CallHierarchyProvider(this.program, uri_1.Uri.file(fileName, this.serviceProvider), position, vscode_languageserver_1.CancellationToken.None).getIncomingCalls();
850
852
  assert_1.default.strictEqual((_a = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _a !== void 0 ? _a : 0, expectedFilePath.length, `${name} has failed`);
851
853
  assert_1.default.strictEqual((_b = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _b !== void 0 ? _b : 0, expectedRange.length, `${name} has failed`);
852
854
  assert_1.default.strictEqual((_c = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _c !== void 0 ? _c : 0, expectedName.length, `${name} has failed`);
@@ -854,7 +856,7 @@ class TestState {
854
856
  for (const a of actual) {
855
857
  assert_1.default.strictEqual(expectedRange === null || expectedRange === void 0 ? void 0 : expectedRange.filter((e) => this._deepEqual(a.from.range, e)).length, 1);
856
858
  assert_1.default.strictEqual(expectedName === null || expectedName === void 0 ? void 0 : expectedName.filter((e) => this._deepEqual(a.from.name, e)).length, 1);
857
- assert_1.default.ok((expectedFilePath === null || expectedFilePath === void 0 ? void 0 : expectedFilePath.filter((e) => this._deepEqual(a.from.uri, uri_1.Uri.file(e).toString())).length) >= 1);
859
+ assert_1.default.ok((expectedFilePath === null || expectedFilePath === void 0 ? void 0 : expectedFilePath.filter((e) => this._deepEqual(a.from.uri, uri_1.Uri.file(e, this.serviceProvider).toString())).length) >= 1);
858
860
  }
859
861
  }
860
862
  }
@@ -872,7 +874,7 @@ class TestState {
872
874
  const expectedRange = map[name].items.map((x) => x.range);
873
875
  const expectedName = map[name].items.map((x) => x.name);
874
876
  const position = this.convertOffsetToPosition(fileName, marker.position);
875
- const actual = new callHierarchyProvider_1.CallHierarchyProvider(this.program, uri_1.Uri.file(fileName), position, vscode_languageserver_1.CancellationToken.None).getOutgoingCalls();
877
+ const actual = new callHierarchyProvider_1.CallHierarchyProvider(this.program, uri_1.Uri.file(fileName, this.serviceProvider), position, vscode_languageserver_1.CancellationToken.None).getOutgoingCalls();
876
878
  assert_1.default.strictEqual((_a = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _a !== void 0 ? _a : 0, expectedFilePath.length, `${name} has failed`);
877
879
  assert_1.default.strictEqual((_b = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _b !== void 0 ? _b : 0, expectedRange.length, `${name} has failed`);
878
880
  assert_1.default.strictEqual((_c = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _c !== void 0 ? _c : 0, expectedName.length, `${name} has failed`);
@@ -880,7 +882,7 @@ class TestState {
880
882
  for (const a of actual) {
881
883
  assert_1.default.strictEqual(expectedRange === null || expectedRange === void 0 ? void 0 : expectedRange.filter((e) => this._deepEqual(a.to.range, e)).length, 1);
882
884
  assert_1.default.strictEqual(expectedName === null || expectedName === void 0 ? void 0 : expectedName.filter((e) => this._deepEqual(a.to.name, e)).length, 1);
883
- assert_1.default.ok((expectedFilePath === null || expectedFilePath === void 0 ? void 0 : expectedFilePath.filter((e) => this._deepEqual(a.to.uri, uri_1.Uri.file(e).toString())).length) >= 1);
885
+ assert_1.default.ok((expectedFilePath === null || expectedFilePath === void 0 ? void 0 : expectedFilePath.filter((e) => this._deepEqual(a.to.uri, uri_1.Uri.file(e, this.serviceProvider).toString())).length) >= 1);
884
886
  }
885
887
  }
886
888
  }
@@ -906,7 +908,7 @@ class TestState {
906
908
  const fileName = marker.fileName;
907
909
  const expected = map[name].references;
908
910
  const position = this.convertOffsetToPosition(fileName, marker.position);
909
- const actual = new documentHighlightProvider_1.DocumentHighlightProvider(this.program, uri_1.Uri.file(fileName), position, vscode_languageserver_1.CancellationToken.None).getDocumentHighlight();
911
+ const actual = new documentHighlightProvider_1.DocumentHighlightProvider(this.program, uri_1.Uri.file(fileName, this.serviceProvider), position, vscode_languageserver_1.CancellationToken.None).getDocumentHighlight();
910
912
  assert_1.default.equal((_a = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _a !== void 0 ? _a : 0, expected.length);
911
913
  for (const r of expected) {
912
914
  const match = actual === null || actual === void 0 ? void 0 : actual.filter((h) => this._deepEqual(h.range, r.range));
@@ -936,7 +938,7 @@ class TestState {
936
938
  continue;
937
939
  }
938
940
  const expected = map[name].definitions;
939
- const uri = uri_1.Uri.file(fileName);
941
+ const uri = uri_1.Uri.file(fileName, this.serviceProvider);
940
942
  // If we're going to def from a file, act like it's open.
941
943
  if (!this.program.getSourceFileInfo(uri)) {
942
944
  const file = this.testData.files.find((v) => v.fileName === fileName);
@@ -964,7 +966,7 @@ class TestState {
964
966
  }
965
967
  const expected = map[name].definitions;
966
968
  const position = this.convertOffsetToPosition(fileName, marker.position);
967
- let actual = new definitionProvider_1.TypeDefinitionProvider(this.program, uri_1.Uri.file(fileName), position, vscode_languageserver_1.CancellationToken.None).getDefinitions();
969
+ let actual = new definitionProvider_1.TypeDefinitionProvider(this.program, uri_1.Uri.file(fileName, this.serviceProvider), position, vscode_languageserver_1.CancellationToken.None).getDefinitions();
968
970
  actual = this.fixupDefinitionsToMatchExpected(actual);
969
971
  assert_1.default.strictEqual((_a = actual === null || actual === void 0 ? void 0 : actual.length) !== null && _a !== void 0 ? _a : 0, expected.length, name);
970
972
  for (const r of expected) {
@@ -985,11 +987,13 @@ class TestState {
985
987
  var _a;
986
988
  return {
987
989
  ...c,
988
- fileUri: (_a = c.fileUri) !== null && _a !== void 0 ? _a : uri_1.Uri.file(c.filePath),
990
+ fileUri: (_a = c.fileUri) !== null && _a !== void 0 ? _a : uri_1.Uri.file(c.filePath, this.serviceProvider),
989
991
  };
990
992
  });
991
993
  const position = this.convertOffsetToPosition(fileName, marker.position);
992
- const actual = new renameProvider_1.RenameProvider(this.program, isUntitled ? uri_1.Uri.parse(`untitled:${fileName.replace(/\\/g, '/')}`, true) : uri_1.Uri.file(fileName), position, vscode_languageserver_1.CancellationToken.None).renameSymbol(expected.newName, /* isDefaultWorkspace */ false, isUntitled);
994
+ const actual = new renameProvider_1.RenameProvider(this.program, isUntitled
995
+ ? uri_1.Uri.parse(`untitled:${fileName.replace(/\\/g, '/')}`, this.serviceProvider)
996
+ : uri_1.Uri.file(fileName, this.serviceProvider), position, vscode_languageserver_1.CancellationToken.None).renameSymbol(expected.newName, /* isDefaultWorkspace */ false, isUntitled);
993
997
  (0, workspaceEditTestUtils_1.verifyWorkspaceEdit)((0, workspaceEditUtils_1.convertToWorkspaceEdit)(this.program.fileSystem, { edits: expected.changes, fileOperations: [] }), actual !== null && actual !== void 0 ? actual : { documentChanges: [] });
994
998
  }
995
999
  }
@@ -1056,7 +1060,7 @@ class TestState {
1056
1060
  snippet: true,
1057
1061
  lazyEdit: false,
1058
1062
  };
1059
- const provider = new completionProvider_1.CompletionProvider(this.program, uri_1.Uri.file(filePath), completionPosition, options, vscode_languageserver_1.CancellationToken.None);
1063
+ const provider = new completionProvider_1.CompletionProvider(this.program, uri_1.Uri.file(filePath, this.serviceProvider), completionPosition, options, vscode_languageserver_1.CancellationToken.None);
1060
1064
  return {
1061
1065
  getCompletions: () => provider.getCompletions(),
1062
1066
  resolveCompletionItem: (i) => provider.resolveCompletionItem(i),
@@ -1131,7 +1135,7 @@ class TestState {
1131
1135
  }
1132
1136
  }
1133
1137
  _convertGlobalOptionsToConfigOptions(projectRoot, mountPaths) {
1134
- const configOptions = new configOptions_1.ConfigOptions(uri_1.Uri.file(projectRoot));
1138
+ const configOptions = new configOptions_1.ConfigOptions(uri_1.Uri.file(projectRoot, this.serviceProvider));
1135
1139
  // add more global options as we need them
1136
1140
  const newConfigOptions = this._applyTestConfigOptions(configOptions, mountPaths);
1137
1141
  // default tests to run use compact signatures.
@@ -1145,7 +1149,7 @@ class TestState {
1145
1149
  configOptions.checkOnlyOpenFiles = false;
1146
1150
  // make sure we set typing path
1147
1151
  if (configOptions.stubPath === undefined) {
1148
- configOptions.stubPath = uri_1.Uri.file(vfs.MODULE_PATH).combinePaths('typings');
1152
+ configOptions.stubPath = uri_1.Uri.file(vfs.MODULE_PATH, this.serviceProvider).combinePaths('typings');
1149
1153
  }
1150
1154
  configOptions.include.push((0, uriUtils_1.getFileSpec)(configOptions.projectRoot, '.'));
1151
1155
  configOptions.exclude.push((0, uriUtils_1.getFileSpec)(configOptions.projectRoot, factory_1.typeshedFolder.getFilePath()));
@@ -1161,19 +1165,20 @@ class TestState {
1161
1165
  }
1162
1166
  return configOptions;
1163
1167
  }
1164
- _getParseResult(fileName) {
1165
- const file = this.program.getBoundSourceFile(uri_1.Uri.file(fileName));
1168
+ _getParserOutput(fileName) {
1169
+ const file = this.program.getBoundSourceFile(uri_1.Uri.file(fileName, this.serviceProvider));
1166
1170
  return file === null || file === void 0 ? void 0 : file.getParseResults();
1167
1171
  }
1168
1172
  _getTextRangeCollection(fileName) {
1173
+ var _a;
1169
1174
  if (this.files.includes(fileName)) {
1170
- const parseResults = this._getParseResult(fileName);
1171
- if (parseResults) {
1172
- return parseResults.tokenizerOutput.lines;
1175
+ const tokenizerOutput = (_a = this._getParserOutput(fileName)) === null || _a === void 0 ? void 0 : _a.tokenizerOutput;
1176
+ if (tokenizerOutput) {
1177
+ return tokenizerOutput.lines;
1173
1178
  }
1174
1179
  }
1175
1180
  // slow path
1176
- const fileContents = this.fs.readFileSync(uri_1.Uri.file(fileName), 'utf8');
1181
+ const fileContents = this.fs.readFileSync(uri_1.Uri.file(fileName, this.serviceProvider), 'utf8');
1177
1182
  const tokenizer = new tokenizer_1.Tokenizer();
1178
1183
  return tokenizer.tokenize(fileContents).lines;
1179
1184
  }
@@ -1190,7 +1195,7 @@ class TestState {
1190
1195
  var _a, _b;
1191
1196
  let fileContent = this.getFileContent(fileName);
1192
1197
  fileContent = fileContent.slice(0, editStart) + newText + fileContent.slice(editEnd);
1193
- const uri = uri_1.Uri.file(fileName);
1198
+ const uri = uri_1.Uri.file(fileName, this.serviceProvider);
1194
1199
  this.testFS.writeFileSync(uri, fileContent, 'utf8');
1195
1200
  const newVersion = ((_b = (_a = this.program.getSourceFile(uri)) === null || _a === void 0 ? void 0 : _a.getClientVersion()) !== null && _b !== void 0 ? _b : -1) + 1;
1196
1201
  this.program.setFileOpened(uri, newVersion, fileContent);
@@ -1307,7 +1312,7 @@ class TestState {
1307
1312
  return position <= editStart ? position : position < editEnd ? -1 : position + length - +(editEnd - editStart);
1308
1313
  }
1309
1314
  _getDiagnosticsPerFile() {
1310
- const sourceFiles = this.files.map((f) => this.program.getSourceFile(uri_1.Uri.file(f)));
1315
+ const sourceFiles = this.files.map((f) => this.program.getSourceFile(uri_1.Uri.file(f, this.serviceProvider)));
1311
1316
  const results = sourceFiles.map((sourceFile, index) => {
1312
1317
  if (sourceFile) {
1313
1318
  const diagnostics = sourceFile.getDiagnostics(this.configOptions) || [];
@@ -1347,7 +1352,7 @@ class TestState {
1347
1352
  const fileExtension = (0, pathUtils_1.getFileExtension)(path).toLowerCase();
1348
1353
  return fileExtension === '.py' || fileExtension === '.pyi';
1349
1354
  })
1350
- .map((path) => uri_1.Uri.file(path))
1355
+ .map((path) => uri_1.Uri.file(path, this.serviceProvider))
1351
1356
  .filter((path) => service.isTracked(path)));
1352
1357
  return service;
1353
1358
  }
@@ -1362,7 +1367,7 @@ class TestState {
1362
1367
  return true;
1363
1368
  }
1364
1369
  async _waitForFile(filePath) {
1365
- const uri = uri_1.Uri.file(filePath);
1370
+ const uri = uri_1.Uri.file(filePath, this.serviceProvider);
1366
1371
  while (!this.fs.existsSync(uri)) {
1367
1372
  await new Promise((res) => setTimeout(() => {
1368
1373
  res();
@@ -1383,7 +1388,7 @@ class TestState {
1383
1388
  const normalizedFilePath = (0, pathUtils_1.normalizeSlashes)(filePath);
1384
1389
  // wait until the file exists
1385
1390
  await this._waitForFile(normalizedFilePath);
1386
- const actual = this.fs.readFileSync(uri_1.Uri.file(normalizedFilePath), 'utf8');
1391
+ const actual = this.fs.readFileSync(uri_1.Uri.file(normalizedFilePath, this.serviceProvider), 'utf8');
1387
1392
  if (actual !== expected) {
1388
1393
  this.raiseError(`doesn't contain expected result: ${(0, utils_1.stringify)(expected)}, actual: ${(0, utils_1.stringify)(actual)}`);
1389
1394
  }
@@ -1451,7 +1456,7 @@ function getNodeAtMarker(codeOrState, markerName = 'marker') {
1451
1456
  (0, assert_1.default)(sourceFile);
1452
1457
  const parserResults = sourceFile.getParseResults();
1453
1458
  (0, assert_1.default)(parserResults);
1454
- const node = (0, parseTreeUtils_1.findNodeByOffset)(parserResults.parseTree, marker.position);
1459
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parserResults.parserOutput.parseTree, marker.position);
1455
1460
  (0, assert_1.default)(node);
1456
1461
  return node;
1457
1462
  }