@zzzen/pyright-internal 1.2.0-dev.20230226 → 1.2.0-dev.20230312

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 (148) hide show
  1. package/dist/analyzer/binder.d.ts +0 -1
  2. package/dist/analyzer/binder.js +32 -95
  3. package/dist/analyzer/binder.js.map +1 -1
  4. package/dist/analyzer/checker.js +48 -31
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +4 -4
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/commentUtils.js +11 -1
  9. package/dist/analyzer/commentUtils.js.map +1 -1
  10. package/dist/analyzer/constructorTransform.d.ts +1 -0
  11. package/dist/analyzer/constructorTransform.js +19 -2
  12. package/dist/analyzer/constructorTransform.js.map +1 -1
  13. package/dist/analyzer/declaration.d.ts +2 -4
  14. package/dist/analyzer/declaration.js +6 -1
  15. package/dist/analyzer/declaration.js.map +1 -1
  16. package/dist/analyzer/declarationUtils.d.ts +1 -5
  17. package/dist/analyzer/declarationUtils.js +2 -47
  18. package/dist/analyzer/declarationUtils.js.map +1 -1
  19. package/dist/analyzer/docStringConversion.js +9 -3
  20. package/dist/analyzer/docStringConversion.js.map +1 -1
  21. package/dist/analyzer/packageTypeVerifier.js +40 -40
  22. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  23. package/dist/analyzer/parseTreeUtils.d.ts +4 -2
  24. package/dist/analyzer/parseTreeUtils.js +77 -2
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/patternMatching.js +20 -1
  27. package/dist/analyzer/patternMatching.js.map +1 -1
  28. package/dist/analyzer/program.d.ts +1 -0
  29. package/dist/analyzer/program.js +154 -13
  30. package/dist/analyzer/program.js.map +1 -1
  31. package/dist/analyzer/properties.js +3 -2
  32. package/dist/analyzer/properties.js.map +1 -1
  33. package/dist/analyzer/protocols.js +4 -2
  34. package/dist/analyzer/protocols.js.map +1 -1
  35. package/dist/analyzer/pythonPathUtils.js +27 -13
  36. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  37. package/dist/analyzer/service.js +6 -1
  38. package/dist/analyzer/service.js.map +1 -1
  39. package/dist/analyzer/sourceFile.js +12 -1
  40. package/dist/analyzer/sourceFile.js.map +1 -1
  41. package/dist/analyzer/symbol.js +1 -4
  42. package/dist/analyzer/symbol.js.map +1 -1
  43. package/dist/analyzer/symbolUtils.d.ts +0 -3
  44. package/dist/analyzer/symbolUtils.js +1 -14
  45. package/dist/analyzer/symbolUtils.js.map +1 -1
  46. package/dist/analyzer/typeDocStringUtils.js +5 -3
  47. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  48. package/dist/analyzer/typeEvaluator.js +642 -259
  49. package/dist/analyzer/typeEvaluator.js.map +1 -1
  50. package/dist/analyzer/typeEvaluatorTypes.d.ts +11 -2
  51. package/dist/analyzer/typeGuards.js +2 -2
  52. package/dist/analyzer/typeGuards.js.map +1 -1
  53. package/dist/analyzer/typePrinter.js +63 -55
  54. package/dist/analyzer/typePrinter.js.map +1 -1
  55. package/dist/analyzer/typeUtils.d.ts +2 -0
  56. package/dist/analyzer/typeUtils.js +22 -3
  57. package/dist/analyzer/typeUtils.js.map +1 -1
  58. package/dist/analyzer/typedDicts.d.ts +2 -1
  59. package/dist/analyzer/typedDicts.js +83 -57
  60. package/dist/analyzer/typedDicts.js.map +1 -1
  61. package/dist/analyzer/types.d.ts +3 -1
  62. package/dist/analyzer/types.js +8 -0
  63. package/dist/analyzer/types.js.map +1 -1
  64. package/dist/commands/dumpFileDebugInfoCommand.js +78 -0
  65. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  66. package/dist/common/collectionUtils.d.ts +1 -0
  67. package/dist/common/collectionUtils.js +8 -1
  68. package/dist/common/collectionUtils.js.map +1 -1
  69. package/dist/common/extensibility.js +25 -1
  70. package/dist/common/extensibility.js.map +1 -1
  71. package/dist/common/positionUtils.d.ts +2 -0
  72. package/dist/common/positionUtils.js +15 -1
  73. package/dist/common/positionUtils.js.map +1 -1
  74. package/dist/languageServerBase.js +9 -1
  75. package/dist/languageServerBase.js.map +1 -1
  76. package/dist/languageService/callHierarchyProvider.js +4 -2
  77. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  78. package/dist/languageService/completionProvider.d.ts +4 -2
  79. package/dist/languageService/completionProvider.js +252 -191
  80. package/dist/languageService/completionProvider.js.map +1 -1
  81. package/dist/languageService/completionProviderUtils.d.ts +1 -1
  82. package/dist/languageService/completionProviderUtils.js +3 -3
  83. package/dist/languageService/completionProviderUtils.js.map +1 -1
  84. package/dist/languageService/definitionProvider.js +2 -1
  85. package/dist/languageService/definitionProvider.js.map +1 -1
  86. package/dist/languageService/documentSymbolProvider.js +2 -1
  87. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  88. package/dist/languageService/hoverProvider.js +11 -3
  89. package/dist/languageService/hoverProvider.js.map +1 -1
  90. package/dist/languageService/importAdder.js +4 -1
  91. package/dist/languageService/importAdder.js.map +1 -1
  92. package/dist/languageService/indentationUtils.d.ts +1 -1
  93. package/dist/languageService/indentationUtils.js +22 -12
  94. package/dist/languageService/indentationUtils.js.map +1 -1
  95. package/dist/languageService/renameModuleProvider.d.ts +1 -1
  96. package/dist/languageService/renameModuleProvider.js +28 -8
  97. package/dist/languageService/renameModuleProvider.js.map +1 -1
  98. package/dist/languageService/tooltipUtils.js +2 -1
  99. package/dist/languageService/tooltipUtils.js.map +1 -1
  100. package/dist/localization/localize.d.ts +12 -2
  101. package/dist/localization/localize.js +5 -1
  102. package/dist/localization/localize.js.map +1 -1
  103. package/dist/localization/package.nls.en-us.json +6 -2
  104. package/dist/parser/parser.js +40 -25
  105. package/dist/parser/parser.js.map +1 -1
  106. package/dist/parser/tokenizer.js +1 -1
  107. package/dist/pyright.js +1 -1
  108. package/dist/pyright.js.map +1 -1
  109. package/dist/tests/completions.test.js +445 -0
  110. package/dist/tests/completions.test.js.map +1 -1
  111. package/dist/tests/docStringConversion.test.js +23 -0
  112. package/dist/tests/docStringConversion.test.js.map +1 -1
  113. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js +13 -3
  114. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
  115. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js +7 -2
  116. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
  117. package/dist/tests/fourslash/completions.errorNodes.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/completions.errorNodes.fourslash.js +24 -0
  119. package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -0
  120. package/dist/tests/fourslash/hover.slots.fourslash.d.ts +1 -0
  121. package/dist/tests/fourslash/hover.slots.fourslash.js +16 -0
  122. package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -0
  123. package/dist/tests/hoverProvider.test.js +1 -1
  124. package/dist/tests/hoverProvider.test.js.map +1 -1
  125. package/dist/tests/importAdder.test.js +13 -0
  126. package/dist/tests/importAdder.test.js.map +1 -1
  127. package/dist/tests/indentationUtils.reindent.test.js +21 -0
  128. package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
  129. package/dist/tests/moveSymbol.importAdder.test.js +137 -31
  130. package/dist/tests/moveSymbol.importAdder.test.js.map +1 -1
  131. package/dist/tests/moveSymbol.insertion.test.js +98 -0
  132. package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
  133. package/dist/tests/moveSymbol.misc.test.js +27 -0
  134. package/dist/tests/moveSymbol.misc.test.js.map +1 -1
  135. package/dist/tests/renameModuleTestUtils.d.ts +1 -1
  136. package/dist/tests/renameModuleTestUtils.js +9 -5
  137. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  138. package/dist/tests/typeEvaluator1.test.js +8 -0
  139. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  140. package/dist/tests/typeEvaluator2.test.js +5 -1
  141. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  142. package/dist/tests/typeEvaluator3.test.js +20 -4
  143. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  144. package/dist/tests/typeEvaluator4.test.js +4 -0
  145. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  146. package/dist/tests/typeEvaluator5.test.js +6 -0
  147. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  148. package/package.json +1 -1
@@ -36,13 +36,14 @@ const collectionUtils_1 = require("../common/collectionUtils");
36
36
  const configOptions_1 = require("../common/configOptions");
37
37
  const console_1 = require("../common/console");
38
38
  const debug_1 = require("../common/debug");
39
- const diagnosticSink_1 = require("../common/diagnosticSink");
40
39
  const extensibility_1 = require("../common/extensibility");
41
40
  const logTracker_1 = require("../common/logTracker");
42
41
  const pathUtils_1 = require("../common/pathUtils");
43
42
  const positionUtils_1 = require("../common/positionUtils");
44
43
  const stringUtils_1 = require("../common/stringUtils");
44
+ const textEditTracker_1 = require("../common/textEditTracker");
45
45
  const textRange_1 = require("../common/textRange");
46
+ const textRangeCollection_1 = require("../common/textRangeCollection");
46
47
  const timing_1 = require("../common/timing");
47
48
  const workspaceEditUtils_1 = require("../common/workspaceEditUtils");
48
49
  const autoImporter_1 = require("../languageService/autoImporter");
@@ -1383,6 +1384,7 @@ class Program {
1383
1384
  }
1384
1385
  moveSymbolAtPosition(filePath, newFilePath, position, options, token) {
1385
1386
  return this._runEvaluatorWithCancellationToken(token, () => {
1387
+ var _a, _b;
1386
1388
  const sourceFileExt = (0, pathUtils_1.getFileExtension)(filePath);
1387
1389
  const destFileExt = (0, pathUtils_1.getFileExtension)(newFilePath);
1388
1390
  if (sourceFileExt.toLowerCase() !== destFileExt.toLowerCase()) {
@@ -1412,9 +1414,22 @@ class Program {
1412
1414
  return undefined;
1413
1415
  }
1414
1416
  // If this isn't a name node, there are no references to be found.
1415
- if (node.nodeType !== 38 /* Name */ || !renameModuleProvider_1.RenameModuleProvider.canMoveSymbol(this._evaluator, node)) {
1417
+ if (node.nodeType !== 38 /* Name */ ||
1418
+ !renameModuleProvider_1.RenameModuleProvider.canMoveSymbol(this._configOptions, this._evaluator, node)) {
1416
1419
  return undefined;
1417
1420
  }
1421
+ // We will try to
1422
+ // 1. Find symbol to move.
1423
+ // 2. Update all references to the symbol to new location.
1424
+ // 3. Remove the existing symbol.
1425
+ // 4. Insert the symbol to the destination module.
1426
+ // 5. Insert imports required for the symbol moved to the destination module.
1427
+ // 6. Remove import no longer needed from the original module.
1428
+ //
1429
+ // Here all changes are done to edits, no features in LS will apply changes to
1430
+ // program directly. All modification is done through LSP by a edit request so
1431
+ // things like undo or edit stacks UI works.
1432
+ // 1. Find symbol to move.
1418
1433
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1419
1434
  const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(node, this._evaluator,
1420
1435
  /* resolveLocalNames */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Rename, token, this._createSourceMapper(execEnv, token, fileInfo));
@@ -1422,7 +1437,9 @@ class Program {
1422
1437
  if (!renameModuleProvider) {
1423
1438
  return undefined;
1424
1439
  }
1440
+ // 2. Update affected references.
1425
1441
  this._processModuleReferences(renameModuleProvider, node.value, filePath);
1442
+ // 3. Remove existing symbols.
1426
1443
  const sourceDecl = renameModuleProvider.declarations.find((d) => d.node && (0, pathUtils_1.getFileExtension)(d.path) === sourceFileExt);
1427
1444
  if (!sourceDecl) {
1428
1445
  // Can't find symbol we can move.
@@ -1430,7 +1447,7 @@ class Program {
1430
1447
  }
1431
1448
  const symbolRange = renameModuleProvider_1.RenameModuleProvider.getSymbolTextRange(parseResults, sourceDecl);
1432
1449
  const importAdder = new importAdder_1.ImportAdder(this._configOptions, this._importResolver, this._evaluator);
1433
- const collectedimports = importAdder.collectImportsForSymbolsUsed(parseResults, symbolRange, token);
1450
+ const collectedImports = importAdder.collectImportsForSymbolsUsed(parseResults, symbolRange, token);
1434
1451
  let insertionPoint = 0;
1435
1452
  let insertionIndentation = 0;
1436
1453
  const newFileParseResults = newFileInfo === null || newFileInfo === void 0 ? void 0 : newFileInfo.sourceFile.getParseResults();
@@ -1449,13 +1466,10 @@ class Program {
1449
1466
  const reindentResult = (0, indentationUtils_1.reindentSpan)(parseResults, symbolRange, insertionIndentation);
1450
1467
  const fullRange = renameModuleProvider_1.RenameModuleProvider.getSymbolFullStatementTextRange(parseResults, sourceDecl);
1451
1468
  renameModuleProvider.textEditTracker.addEdit(filePath, (0, positionUtils_1.convertTextRangeToRange)(textRange_1.TextRange.combine([reindentResult.originalSpan, fullRange]), parseResults.tokenizerOutput.lines), '');
1469
+ // 4. Add the symbol to the destination file.
1452
1470
  const fileOperations = [];
1453
1471
  let codeSnippetToInsert = reindentResult.text;
1454
1472
  if (newFileParseResults) {
1455
- // TODO: We need to "add import" statement for symbols defined in the destination file
1456
- // if we couldn't find insertion point where all constraints are met.
1457
- // For example, if the symbol we are moving is used before other symbols it references are declared.
1458
- importAdder.applyImportsTo(collectedimports, newFileParseResults, options.importFormat, renameModuleProvider.textEditTracker, token);
1459
1473
  const range = (0, positionUtils_1.convertTextRangeToRange)({ start: insertionPoint, length: 0 }, newFileParseResults.tokenizerOutput.lines);
1460
1474
  // If we are adding at the end of line (ex, end of a file),
1461
1475
  // add new lines.
@@ -1465,16 +1479,121 @@ class Program {
1465
1479
  }
1466
1480
  else {
1467
1481
  fileOperations.push({ kind: 'create', filePath: newFilePath });
1468
- const tempParseResults = (0, sourceFile_1.parseFile)(this._configOptions, newFilePath, codeSnippetToInsert, sourceFile_1.IPythonMode.None, new diagnosticSink_1.DiagnosticSink());
1469
- const insertAddEdits = importAdder.applyImports(collectedimports, newFilePath, tempParseResults, insertionPoint, options.importFormat, token);
1470
- const updateContent = (0, workspaceEditUtils_1.applyTextEditsToString)(insertAddEdits, tempParseResults.tokenizerOutput.lines, codeSnippetToInsert);
1471
- renameModuleProvider.textEditTracker.addEdit(newFilePath, (0, textRange_1.getEmptyRange)(), updateContent);
1472
- }
1482
+ renameModuleProvider.textEditTracker.addEdit(newFilePath, (0, textRange_1.getEmptyRange)(), codeSnippetToInsert);
1483
+ }
1484
+ // 5. Insert imports required for the symbol moved to the destination module.
1485
+ //
1486
+ // Since step 5 and 6 can create nested edits, we clone the program and apply all changes to re-calculate
1487
+ // edits we need to apply to the destination file. The same workflow as `fix all` but done in program level
1488
+ // not service level.
1489
+ const cloned = this.clone();
1490
+ let edits = renameModuleProvider.getEdits();
1491
+ const textAfterSymbolAdded = (0, workspaceEditUtils_1.applyTextEditsToString)(edits.filter((v) => v.filePath === newFilePath), (_a = newFileParseResults === null || newFileParseResults === void 0 ? void 0 : newFileParseResults.tokenizerOutput.lines) !== null && _a !== void 0 ? _a : new textRangeCollection_1.TextRangeCollection([]), (_b = newFileInfo === null || newFileInfo === void 0 ? void 0 : newFileInfo.sourceFile.getFileContent()) !== null && _b !== void 0 ? _b : '');
1492
+ _updateFileContent(cloned, newFilePath, textAfterSymbolAdded);
1493
+ const textAfterImportsAdded = _tryGetTextAfterImportsAdded(cloned, newFilePath, collectedImports, insertionPoint, token);
1494
+ edits = _updateFileEditActions(edits, newFilePath, newFileParseResults, textAfterSymbolAdded, textAfterImportsAdded);
1495
+ // 6. Remove imports no longer required from original module.
1496
+ const textAfterSymbolRemoved = (0, workspaceEditUtils_1.applyTextEditsToString)(edits.filter((v) => v.filePath === filePath), parseResults.tokenizerOutput.lines, fileInfo.sourceFile.getFileContent());
1497
+ _updateFileContent(cloned, filePath, textAfterSymbolRemoved);
1498
+ const textAfterUnusedImportsRemoved = _tryGetTextAfterUnusedImportsRemoved(cloned, filePath, collectedImports, 0, token);
1499
+ edits = _updateFileEditActions(edits, filePath, parseResults, textAfterSymbolRemoved, textAfterUnusedImportsRemoved);
1500
+ cloned.dispose();
1473
1501
  return {
1474
- edits: renameModuleProvider.getEdits(),
1502
+ edits,
1475
1503
  fileOperations,
1476
1504
  };
1505
+ function _updateFileEditActions(edits, filePath, parseResults, oldText, newText) {
1506
+ if (newText === undefined || oldText === newText) {
1507
+ return edits;
1508
+ }
1509
+ // There were nested edits. Replace whole file.
1510
+ edits = edits.filter((v) => v.filePath !== filePath);
1511
+ edits.push({
1512
+ filePath,
1513
+ range: parseResults
1514
+ ? (0, positionUtils_1.convertTextRangeToRange)(parseResults.parseTree, parseResults.tokenizerOutput.lines)
1515
+ : (0, textRange_1.getEmptyRange)(),
1516
+ replacementText: newText,
1517
+ });
1518
+ return edits;
1519
+ }
1520
+ function _tryGetTextAfterImportsAdded(cloned, filePath, importData, insertionPoint, token) {
1521
+ const sourceFile = cloned.getBoundSourceFile(filePath);
1522
+ const parseResults = sourceFile === null || sourceFile === void 0 ? void 0 : sourceFile.getParseResults();
1523
+ if (!parseResults) {
1524
+ return undefined;
1525
+ }
1526
+ const insertAddEdits = importAdder.applyImports(importData, filePath, parseResults, insertionPoint, options.importFormat, token);
1527
+ return (0, workspaceEditUtils_1.applyTextEditsToString)(insertAddEdits, parseResults.tokenizerOutput.lines, sourceFile.getFileContent());
1528
+ }
1529
+ function _tryGetTextAfterUnusedImportsRemoved(cloned, filePath, importData, attempt, token) {
1530
+ var _a;
1531
+ (0, cancellationUtils_1.throwIfCancellationRequested)(token);
1532
+ cloned.analyzeFile(filePath, token);
1533
+ const sourceFile = cloned.getBoundSourceFile(filePath);
1534
+ const parseResults = sourceFile === null || sourceFile === void 0 ? void 0 : sourceFile.getParseResults();
1535
+ if (!parseResults) {
1536
+ return undefined;
1537
+ }
1538
+ const tracker = new textEditTracker_1.TextEditTracker();
1539
+ for (const diagnostic of cloned
1540
+ .getDiagnosticsForRange(filePath, (0, positionUtils_1.convertTextRangeToRange)(parseResults.parseTree, parseResults.tokenizerOutput.lines))
1541
+ .filter((d) => {
1542
+ var _a;
1543
+ return d.category === 3 /* UnusedCode */ &&
1544
+ ((_a = d.getActions()) === null || _a === void 0 ? void 0 : _a.some((a) => a.action === "pyright.unusedImport" /* unusedImport */));
1545
+ })) {
1546
+ const nameNode = (0, parseTreeUtils_1.findNodeByPosition)(parseResults.parseTree, diagnostic.range.start, parseResults.tokenizerOutput.lines);
1547
+ if ((nameNode === null || nameNode === void 0 ? void 0 : nameNode.nodeType) !== 38 /* Name */) {
1548
+ continue;
1549
+ }
1550
+ // decl is synthesized. there is no node associated with the decl.
1551
+ // ex) import a or import a.b
1552
+ const dottedName1 = ((_a = nameNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 37 /* ModuleName */ ? nameNode.parent.nameParts : [nameNode];
1553
+ for (const [decl, names] of importData.declarations) {
1554
+ if (decl.node) {
1555
+ if (textRange_1.TextRange.containsRange(decl.node, nameNode)) {
1556
+ tracker.removeNodes({ node: nameNode, parseResults: parseResults });
1557
+ break;
1558
+ }
1559
+ }
1560
+ const dottedName2 = (0, parseTreeUtils_1.getDottedName)((0, parseTreeUtils_1.getDottedNameWithGivenNodeAsLastName)(names[0]));
1561
+ if (dottedName2 && (0, collectionUtils_1.arrayEquals)(dottedName1, dottedName2, (e1, e2) => e1.value === e2.value)) {
1562
+ tracker.removeNodes({ node: nameNode, parseResults: parseResults });
1563
+ break;
1564
+ }
1565
+ }
1566
+ }
1567
+ const oldText = sourceFile.getFileContent();
1568
+ const newText = (0, workspaceEditUtils_1.applyTextEditsToString)(tracker.getEdits(token).filter((v) => v.filePath === filePath), parseResults.tokenizerOutput.lines, oldText);
1569
+ // We will attempt to remove unused imports multiple times since removing 1 unused import
1570
+ // could make another import unused. This is due to how we calculate which import is not used.
1571
+ // ex) import os, os.path, os.path.xxx
1572
+ // `os.path` and `os.path.xxx` will be marked as used due to `import os`.
1573
+ // once `os` is removed `os.path` will be marked as unused and so on.
1574
+ // We will attempt to remove those chained unused imports up to 10 chain.
1575
+ if (attempt > 10 || oldText === newText) {
1576
+ return newText;
1577
+ }
1578
+ _updateFileContent(cloned, filePath, newText);
1579
+ return _tryGetTextAfterUnusedImportsRemoved(cloned, filePath, importData, attempt + 1, token);
1580
+ }
1477
1581
  });
1582
+ function _updateFileContent(cloned, filePath, text) {
1583
+ var _a, _b;
1584
+ const info = cloned.getSourceFileInfo(filePath);
1585
+ const version = info ? ((_a = info.sourceFile.getClientVersion()) !== null && _a !== void 0 ? _a : 0) + 1 : 0;
1586
+ const chainedFilePath = info ? (_b = info.chainedSourceFile) === null || _b === void 0 ? void 0 : _b.sourceFile.getFilePath() : undefined;
1587
+ const ipythonMode = info ? info.sourceFile.getIPythonMode() : sourceFile_1.IPythonMode.None;
1588
+ const isTracked = info ? info.isTracked : true;
1589
+ const realFilePath = info ? info.sourceFile.getRealFilePath() : filePath;
1590
+ cloned.setFileOpened(filePath, version, [{ text }], {
1591
+ chainedFilePath,
1592
+ ipythonMode,
1593
+ isTracked,
1594
+ realFilePath,
1595
+ });
1596
+ }
1478
1597
  function _getNumberOfBlankLinesToInsert(parseResults, position) {
1479
1598
  // This basically try to add 2 blanks lines before previous line with text.
1480
1599
  if (position.line === 0 && position.character === 0) {
@@ -1489,6 +1608,28 @@ class Program {
1489
1608
  return position.character !== 0 ? linesToAdd + 1 : linesToAdd;
1490
1609
  }
1491
1610
  }
1611
+ clone() {
1612
+ var _a;
1613
+ const program = new Program(this._importResolver, this._configOptions, this._console, new logTracker_1.LogTracker(this._console, 'Cloned'));
1614
+ // Cloned program will use whatever user files the program currently has.
1615
+ const userFiles = this.getUserFiles();
1616
+ program.setTrackedFiles(userFiles.map((i) => i.sourceFile.getFilePath()));
1617
+ program.markAllFilesDirty(true);
1618
+ // Make sure we keep editor content (open file) which could be different than one in the file system.
1619
+ for (const fileInfo of this.getOpened()) {
1620
+ const version = fileInfo.sourceFile.getClientVersion();
1621
+ if (version === undefined) {
1622
+ continue;
1623
+ }
1624
+ program.setFileOpened(fileInfo.sourceFile.getFilePath(), version, [{ text: fileInfo.sourceFile.getOpenFileContents() }], {
1625
+ chainedFilePath: (_a = fileInfo.chainedSourceFile) === null || _a === void 0 ? void 0 : _a.sourceFile.getFilePath(),
1626
+ ipythonMode: fileInfo.sourceFile.getIPythonMode(),
1627
+ isTracked: fileInfo.isTracked,
1628
+ realFilePath: fileInfo.sourceFile.getRealFilePath(),
1629
+ });
1630
+ }
1631
+ return program;
1632
+ }
1492
1633
  canRenameSymbolAtPosition(filePath, position, isDefaultWorkspace, allowModuleRename, token) {
1493
1634
  return this._runEvaluatorWithCancellationToken(token, () => {
1494
1635
  const sourceFileInfo = this.getSourceFileInfo(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
@@ -345,11 +345,12 @@ function assignProperty(evaluator, destPropertyType, srcPropertyType, destClass,
345
345
  },
346
346
  ];
347
347
  accessors.forEach((accessorInfo) => {
348
+ var _a, _b;
348
349
  const destAccessSymbol = destPropertyType.details.fields.get(accessorInfo.name);
349
- let destAccessType = destAccessSymbol ? evaluator.getDeclaredTypeOfSymbol(destAccessSymbol) : undefined;
350
+ let destAccessType = destAccessSymbol ? (_a = evaluator.getDeclaredTypeOfSymbol(destAccessSymbol)) === null || _a === void 0 ? void 0 : _a.type : undefined;
350
351
  if (destAccessType && (0, types_1.isFunction)(destAccessType)) {
351
352
  const srcAccessSymbol = srcPropertyType.details.fields.get(accessorInfo.name);
352
- let srcAccessType = srcAccessSymbol ? evaluator.getDeclaredTypeOfSymbol(srcAccessSymbol) : undefined;
353
+ let srcAccessType = srcAccessSymbol ? (_b = evaluator.getDeclaredTypeOfSymbol(srcAccessSymbol)) === null || _b === void 0 ? void 0 : _b.type : undefined;
353
354
  if (!srcAccessType || !(0, types_1.isFunction)(srcAccessType)) {
354
355
  diag === null || diag === void 0 ? void 0 : diag.addMessage(accessorInfo.missingDiagMsg());
355
356
  isAssignable = false;