@zzzen/pyright-internal 1.2.0-dev.20240630 → 1.2.0-dev.20240714

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 (170) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +74 -46
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +507 -513
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +652 -633
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +143 -122
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/codeFlowTypes.js +30 -28
  11. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  12. package/dist/analyzer/constraintSolver.d.ts +1 -1
  13. package/dist/analyzer/constraintSolver.js +71 -67
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/constructorTransform.js +22 -22
  16. package/dist/analyzer/constructorTransform.js.map +1 -1
  17. package/dist/analyzer/constructors.js +85 -77
  18. package/dist/analyzer/constructors.js.map +1 -1
  19. package/dist/analyzer/dataClasses.js +113 -176
  20. package/dist/analyzer/dataClasses.js.map +1 -1
  21. package/dist/analyzer/declaration.d.ts +1 -1
  22. package/dist/analyzer/declarationUtils.js +14 -15
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/decorators.js +85 -85
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/enums.js +71 -57
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/functionTransform.js +8 -18
  29. package/dist/analyzer/functionTransform.js.map +1 -1
  30. package/dist/analyzer/importResolver.d.ts +2 -1
  31. package/dist/analyzer/importResolver.js +40 -29
  32. package/dist/analyzer/importResolver.js.map +1 -1
  33. package/dist/analyzer/importStatementUtils.js +27 -27
  34. package/dist/analyzer/importStatementUtils.js.map +1 -1
  35. package/dist/analyzer/namedTuples.js +33 -59
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/operations.d.ts +4 -4
  38. package/dist/analyzer/operations.js +70 -70
  39. package/dist/analyzer/operations.js.map +1 -1
  40. package/dist/analyzer/packageTypeVerifier.js +66 -62
  41. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  42. package/dist/analyzer/parameterUtils.d.ts +4 -4
  43. package/dist/analyzer/parameterUtils.js +28 -46
  44. package/dist/analyzer/parameterUtils.js.map +1 -1
  45. package/dist/analyzer/parseTreeUtils.js +268 -269
  46. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  47. package/dist/analyzer/parseTreeWalker.js +76 -76
  48. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  49. package/dist/analyzer/patternMatching.js +195 -147
  50. package/dist/analyzer/patternMatching.js.map +1 -1
  51. package/dist/analyzer/program.js +1 -1
  52. package/dist/analyzer/program.js.map +1 -1
  53. package/dist/analyzer/properties.js +78 -147
  54. package/dist/analyzer/properties.js.map +1 -1
  55. package/dist/analyzer/protocols.js +22 -22
  56. package/dist/analyzer/protocols.js.map +1 -1
  57. package/dist/analyzer/sourceFile.d.ts +3 -2
  58. package/dist/analyzer/sourceFile.js +8 -8
  59. package/dist/analyzer/sourceFile.js.map +1 -1
  60. package/dist/analyzer/sourceMapper.js +20 -19
  61. package/dist/analyzer/sourceMapper.js.map +1 -1
  62. package/dist/analyzer/staticExpressions.js +83 -84
  63. package/dist/analyzer/staticExpressions.js.map +1 -1
  64. package/dist/analyzer/testWalker.js +2 -2
  65. package/dist/analyzer/testWalker.js.map +1 -1
  66. package/dist/analyzer/tracePrinter.js +20 -20
  67. package/dist/analyzer/tracePrinter.js.map +1 -1
  68. package/dist/analyzer/typeDocStringUtils.js +25 -25
  69. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  70. package/dist/analyzer/typeEvaluator.js +2330 -2367
  71. package/dist/analyzer/typeEvaluator.js.map +1 -1
  72. package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -31
  73. package/dist/analyzer/typeEvaluatorTypes.js +48 -41
  74. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  75. package/dist/analyzer/typeGuards.js +221 -217
  76. package/dist/analyzer/typeGuards.js.map +1 -1
  77. package/dist/analyzer/typePrinter.js +118 -115
  78. package/dist/analyzer/typePrinter.js.map +1 -1
  79. package/dist/analyzer/typeStubWriter.js +104 -103
  80. package/dist/analyzer/typeStubWriter.js.map +1 -1
  81. package/dist/analyzer/typeUtils.d.ts +26 -9
  82. package/dist/analyzer/typeUtils.js +460 -404
  83. package/dist/analyzer/typeUtils.js.map +1 -1
  84. package/dist/analyzer/typeVarContext.js +8 -8
  85. package/dist/analyzer/typeVarContext.js.map +1 -1
  86. package/dist/analyzer/typeWalker.js +13 -10
  87. package/dist/analyzer/typeWalker.js.map +1 -1
  88. package/dist/analyzer/typedDicts.js +96 -198
  89. package/dist/analyzer/typedDicts.js.map +1 -1
  90. package/dist/analyzer/types.d.ts +147 -103
  91. package/dist/analyzer/types.js +668 -493
  92. package/dist/analyzer/types.js.map +1 -1
  93. package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
  94. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  95. package/dist/common/diagnostic.d.ts +14 -0
  96. package/dist/common/diagnostic.js +41 -1
  97. package/dist/common/diagnostic.js.map +1 -1
  98. package/dist/common/diagnosticSink.d.ts +4 -0
  99. package/dist/common/diagnosticSink.js +21 -1
  100. package/dist/common/diagnosticSink.js.map +1 -1
  101. package/dist/common/fileSystem.d.ts +1 -0
  102. package/dist/common/fileSystem.js.map +1 -1
  103. package/dist/common/fullAccessHost.js +6 -4
  104. package/dist/common/fullAccessHost.js.map +1 -1
  105. package/dist/common/realFileSystem.d.ts +1 -0
  106. package/dist/common/realFileSystem.js +4 -0
  107. package/dist/common/realFileSystem.js.map +1 -1
  108. package/dist/common/textEditTracker.js +14 -14
  109. package/dist/common/textEditTracker.js.map +1 -1
  110. package/dist/languageService/autoImporter.js +10 -10
  111. package/dist/languageService/autoImporter.js.map +1 -1
  112. package/dist/languageService/callHierarchyProvider.js +23 -23
  113. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  114. package/dist/languageService/completionProvider.d.ts +1 -1
  115. package/dist/languageService/completionProvider.js +156 -154
  116. package/dist/languageService/completionProvider.js.map +1 -1
  117. package/dist/languageService/definitionProvider.d.ts +1 -1
  118. package/dist/languageService/definitionProvider.js +3 -1
  119. package/dist/languageService/definitionProvider.js.map +1 -1
  120. package/dist/languageService/documentSymbolCollector.js +19 -19
  121. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  122. package/dist/languageService/hoverProvider.js +25 -24
  123. package/dist/languageService/hoverProvider.js.map +1 -1
  124. package/dist/languageService/importSorter.js +8 -8
  125. package/dist/languageService/importSorter.js.map +1 -1
  126. package/dist/languageService/referencesProvider.js +8 -8
  127. package/dist/languageService/referencesProvider.js.map +1 -1
  128. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  129. package/dist/languageService/signatureHelpProvider.js +6 -6
  130. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  131. package/dist/languageService/symbolIndexer.js +3 -3
  132. package/dist/languageService/symbolIndexer.js.map +1 -1
  133. package/dist/languageService/tooltipUtils.js +13 -13
  134. package/dist/languageService/tooltipUtils.js.map +1 -1
  135. package/dist/localization/localize.d.ts +3 -0
  136. package/dist/localization/localize.js +1 -0
  137. package/dist/localization/localize.js.map +1 -1
  138. package/dist/localization/package.nls.en-us.json +2 -1
  139. package/dist/parser/parseNodes.d.ts +468 -401
  140. package/dist/parser/parseNodes.js +626 -355
  141. package/dist/parser/parseNodes.js.map +1 -1
  142. package/dist/parser/parser.d.ts +1 -0
  143. package/dist/parser/parser.js +322 -297
  144. package/dist/parser/parser.js.map +1 -1
  145. package/dist/pyright.js +265 -5
  146. package/dist/pyright.js.map +1 -1
  147. package/dist/tests/classDeclaration.test.js +14 -14
  148. package/dist/tests/classDeclaration.test.js.map +1 -1
  149. package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
  150. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  151. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  152. package/dist/tests/harness/vfs/filesystem.js +6 -2
  153. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  154. package/dist/tests/importResolver.test.js +4 -3
  155. package/dist/tests/importResolver.test.js.map +1 -1
  156. package/dist/tests/parseTreeUtils.test.js +5 -5
  157. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  158. package/dist/tests/parser.test.js +8 -8
  159. package/dist/tests/parser.test.js.map +1 -1
  160. package/dist/tests/sourceMapperUtils.test.js +7 -7
  161. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  162. package/dist/tests/typeEvaluator2.test.js +2 -2
  163. package/dist/tests/typeEvaluator3.test.js +10 -5
  164. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  165. package/dist/tests/typeEvaluator4.test.js +1 -1
  166. package/dist/tests/typeEvaluator7.test.js +2 -2
  167. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  168. package/dist/tests/typePrinter.test.js +14 -39
  169. package/dist/tests/typePrinter.test.js.map +1 -1
  170. package/package.json +1 -1
@@ -37,6 +37,7 @@ const vscode_languageserver_1 = require("vscode-languageserver");
37
37
  const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
38
38
  const declaration_1 = require("../analyzer/declaration");
39
39
  const declarationUtils_1 = require("../analyzer/declarationUtils");
40
+ const enums_1 = require("../analyzer/enums");
40
41
  const importResolver_1 = require("../analyzer/importResolver");
41
42
  const parameterUtils_1 = require("../analyzer/parameterUtils");
42
43
  const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
@@ -57,6 +58,7 @@ const debug_1 = require("../common/debug");
57
58
  const lspUtils_1 = require("../common/lspUtils");
58
59
  const positionUtils_1 = require("../common/positionUtils");
59
60
  const pythonVersion_1 = require("../common/pythonVersion");
61
+ require("../common/serviceProviderExtensions");
60
62
  const StringUtils = __importStar(require("../common/stringUtils"));
61
63
  const textRange_1 = require("../common/textRange");
62
64
  const uri_1 = require("../common/uri/uri");
@@ -67,8 +69,6 @@ const autoImporter_1 = require("./autoImporter");
67
69
  const completionProviderUtils_1 = require("./completionProviderUtils");
68
70
  const documentSymbolCollector_1 = require("./documentSymbolCollector");
69
71
  const tooltipUtils_1 = require("./tooltipUtils");
70
- require("../common/serviceProviderExtensions");
71
- const enums_1 = require("../analyzer/enums");
72
72
  var Keywords;
73
73
  (function (Keywords) {
74
74
  const base = [
@@ -271,8 +271,8 @@ class CompletionProvider {
271
271
  return undefined;
272
272
  }
273
273
  const symbolTable = new Map();
274
- for (let i = 1; i < classResults.classType.details.mro.length; i++) {
275
- const mroClass = classResults.classType.details.mro[i];
274
+ for (let i = 1; i < classResults.classType.shared.mro.length; i++) {
275
+ const mroClass = classResults.classType.shared.mro[i];
276
276
  if ((0, types_1.isInstantiableClass)(mroClass)) {
277
277
  (0, typeUtils_1.getMembersForClass)(mroClass, symbolTable, /* includeInstanceVars */ false);
278
278
  }
@@ -284,7 +284,7 @@ class CompletionProvider {
284
284
  var _a;
285
285
  let decl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(symbol);
286
286
  if (decl && decl.type === 5 /* DeclarationType.Function */) {
287
- if (StringUtils.isPatternInSymbol(partialName.value, name)) {
287
+ if (StringUtils.isPatternInSymbol(partialName.d.value, name)) {
288
288
  const declaredType = (_a = this.evaluator.getTypeForDeclaration(decl)) === null || _a === void 0 ? void 0 : _a.type;
289
289
  if (!declaredType) {
290
290
  return;
@@ -320,11 +320,11 @@ class CompletionProvider {
320
320
  text = `${methodSignature}: ...`;
321
321
  }
322
322
  else {
323
- const methodBody = this.printOverriddenMethodBody(classResults.classType, isDeclaredStaticMethod, isProperty, decl, decl.node.isAsync);
323
+ const methodBody = this.printOverriddenMethodBody(classResults.classType, isDeclaredStaticMethod, isProperty, decl, decl.node.d.isAsync);
324
324
  text = `${methodSignature}:\n${methodBody}`;
325
325
  }
326
326
  const textEdit = this.createReplaceEdits(priorWord, partialName, text);
327
- this.addSymbol(name, symbol, partialName.value, completionMap, {
327
+ this.addSymbol(name, symbol, partialName.d.value, completionMap, {
328
328
  // method signature already contains ()
329
329
  funcParensDisabled: true,
330
330
  edits: {
@@ -339,40 +339,42 @@ class CompletionProvider {
339
339
  }
340
340
  printOverriddenMethodBody(classType, isStaticMethod, isProperty, decl, insertAwait) {
341
341
  let sb = this.parseResults.tokenizerOutput.predominantTabSequence;
342
- if (classType.details.baseClasses.length === 1 &&
343
- (0, types_1.isClass)(classType.details.baseClasses[0]) &&
344
- classType.details.baseClasses[0].details.fullName === 'builtins.object') {
342
+ if (classType.shared.baseClasses.length === 1 &&
343
+ (0, types_1.isClass)(classType.shared.baseClasses[0]) &&
344
+ classType.shared.baseClasses[0].shared.fullName === 'builtins.object') {
345
345
  sb += this.options.snippet ? '${0:pass}' : 'pass';
346
346
  return sb;
347
347
  }
348
- if (decl.node.parameters.length === 0) {
348
+ if (decl.node.d.params.length === 0) {
349
349
  sb += this.options.snippet ? '${0:pass}' : 'pass';
350
350
  return sb;
351
351
  }
352
- const parameters = getParameters(isStaticMethod ? decl.node.parameters : decl.node.parameters.slice(1));
353
- if (decl.node.name.value !== '__init__') {
352
+ const parameters = getParameters(isStaticMethod ? decl.node.d.params : decl.node.d.params.slice(1));
353
+ if (decl.node.d.name.d.value !== '__init__') {
354
354
  sb += 'return ';
355
355
  }
356
356
  if (insertAwait) {
357
357
  sb += 'await ';
358
358
  }
359
359
  if (isProperty) {
360
- return sb + `super().${decl.node.name.value}`;
360
+ return sb + `super().${decl.node.d.name.d.value}`;
361
361
  }
362
- return sb + `super().${decl.node.name.value}(${parameters.map(convertToString).join(', ')})`;
362
+ return sb + `super().${decl.node.d.name.d.value}(${parameters.map(convertToString).join(', ')})`;
363
363
  function getParameters(parameters) {
364
364
  const results = [];
365
365
  let sawKeywordOnlySeparator = false;
366
366
  for (const parameter of parameters) {
367
- if (parameter.name) {
367
+ if (parameter.d.name) {
368
368
  results.push([
369
369
  parameter,
370
- parameter.category === 0 /* ParameterCategory.Simple */ && !!parameter.name && sawKeywordOnlySeparator,
370
+ parameter.d.category === 0 /* ParameterCategory.Simple */ &&
371
+ !!parameter.d.name &&
372
+ sawKeywordOnlySeparator,
371
373
  ]);
372
374
  }
373
375
  // All simple parameters after a `*` or `*args` parameter
374
376
  // are considered keyword only.
375
- if (parameter.category === 1 /* ParameterCategory.ArgsList */) {
377
+ if (parameter.d.category === 1 /* ParameterCategory.ArgsList */) {
376
378
  sawKeywordOnlySeparator = true;
377
379
  }
378
380
  }
@@ -380,11 +382,11 @@ class CompletionProvider {
380
382
  }
381
383
  function convertToString(parameter) {
382
384
  var _a;
383
- const name = (_a = parameter[0].name) === null || _a === void 0 ? void 0 : _a.value;
384
- if (parameter[0].category === 1 /* ParameterCategory.ArgsList */) {
385
+ const name = (_a = parameter[0].d.name) === null || _a === void 0 ? void 0 : _a.d.value;
386
+ if (parameter[0].d.category === 1 /* ParameterCategory.ArgsList */) {
385
387
  return `*${name}`;
386
388
  }
387
- if (parameter[0].category === 2 /* ParameterCategory.KwargsDict */) {
389
+ if (parameter[0].d.category === 2 /* ParameterCategory.KwargsDict */) {
388
390
  return `**${name}`;
389
391
  }
390
392
  return parameter[1] ? `${name}=${name}` : name;
@@ -392,7 +394,7 @@ class CompletionProvider {
392
394
  }
393
395
  createReplaceEdits(priorWord, node, text) {
394
396
  const replaceOrInsertEndChar = (node === null || node === void 0 ? void 0 : node.nodeType) === 38 /* ParseNodeType.Name */
395
- ? this.position.character - priorWord.length + node.value.length
397
+ ? this.position.character - priorWord.length + node.d.value.length
396
398
  : this.position.character;
397
399
  const range = {
398
400
  start: { line: this.position.line, character: this.position.character - priorWord.length },
@@ -499,8 +501,8 @@ class CompletionProvider {
499
501
  leftType = this.evaluator.makeTopLevelTypeVarsConcrete(leftType);
500
502
  // If this is an unknown type with a "possible type" associated with
501
503
  // it, use the possible type.
502
- if ((0, types_1.isUnknown)(leftType) && leftType.possibleType) {
503
- leftType = this.evaluator.makeTopLevelTypeVarsConcrete(leftType.possibleType);
504
+ if ((0, types_1.isUnknown)(leftType) && leftType.priv.possibleType) {
505
+ leftType = this.evaluator.makeTopLevelTypeVarsConcrete(leftType.priv.possibleType);
504
506
  }
505
507
  (0, typeUtils_1.doForEachSubtype)(leftType, (subtype) => {
506
508
  subtype = this.evaluator.makeTopLevelTypeVarsConcrete(subtype);
@@ -752,7 +754,7 @@ class CompletionProvider {
752
754
  else if (node) {
753
755
  const fStringContainer = ParseTreeUtils.getParentNodeOfType(node, 30 /* ParseNodeType.FormatString */);
754
756
  if (fStringContainer) {
755
- this._stringLiteralContainer = fStringContainer.token;
757
+ this._stringLiteralContainer = fStringContainer.d.token;
756
758
  }
757
759
  }
758
760
  // See if we can get to a "better" node by backing up a few columns.
@@ -828,7 +830,7 @@ class CompletionProvider {
828
830
  return this._getExpressionErrorCompletions(curNode, offset, priorWord, priorText, postText);
829
831
  }
830
832
  if (curNode.nodeType === 35 /* ParseNodeType.MemberAccess */) {
831
- return this.getMemberAccessCompletions(curNode.leftExpression, priorWord);
833
+ return this.getMemberAccessCompletions(curNode.d.leftExpr, priorWord);
832
834
  }
833
835
  if (curNode.nodeType === 18 /* ParseNodeType.Dictionary */) {
834
836
  const completionMap = new CompletionMap();
@@ -841,7 +843,7 @@ class CompletionProvider {
841
843
  if (dictionaryEntry) {
842
844
  if (((_b = dictionaryEntry.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 18 /* ParseNodeType.Dictionary */) {
843
845
  const dictionaryNode = dictionaryEntry.parent;
844
- if (dictionaryNode.trailingCommaToken && dictionaryNode.trailingCommaToken.start < offset) {
846
+ if (dictionaryNode.d.trailingCommaToken && dictionaryNode.d.trailingCommaToken.start < offset) {
845
847
  const completionMap = new CompletionMap();
846
848
  if (this._tryAddTypedDictKeysFromDictionary(dictionaryNode,
847
849
  /* stringNode */ undefined, priorWord, priorText, postText, completionMap)) {
@@ -872,18 +874,18 @@ class CompletionProvider {
872
874
  if (curNode.nodeType === 50 /* ParseNodeType.Suite */) {
873
875
  if (curNode.parent &&
874
876
  curNode.parent.nodeType === 28 /* ParseNodeType.Except */ &&
875
- !curNode.parent.name &&
876
- curNode.parent.typeExpression &&
877
- textRange_1.TextRange.getEnd(curNode.parent.typeExpression) < offset &&
878
- offset <= curNode.parent.exceptSuite.start) {
877
+ !curNode.parent.d.name &&
878
+ curNode.parent.d.typeExpr &&
879
+ textRange_1.TextRange.getEnd(curNode.parent.d.typeExpr) < offset &&
880
+ offset <= curNode.parent.d.exceptSuite.start) {
879
881
  // except Exception as [<empty>]
880
882
  return undefined;
881
883
  }
882
884
  if (curNode.parent &&
883
885
  curNode.parent.nodeType === 10 /* ParseNodeType.Class */ &&
884
- (!curNode.parent.name || !curNode.parent.name.value) &&
885
- curNode.parent.arguments.length === 0 &&
886
- offset <= curNode.parent.suite.start) {
886
+ (!curNode.parent.d.name || !curNode.parent.d.name.d.value) &&
887
+ curNode.parent.d.arguments.length === 0 &&
888
+ offset <= curNode.parent.d.suite.start) {
887
889
  // class [<empty>]
888
890
  return undefined;
889
891
  }
@@ -914,7 +916,7 @@ class CompletionProvider {
914
916
  if (!curNode.parent) {
915
917
  return false;
916
918
  }
917
- if (curNode.parent.nodeType === 24 /* ParseNodeType.ImportAs */ && curNode.parent.alias === curNode) {
919
+ if (curNode.parent.nodeType === 24 /* ParseNodeType.ImportAs */ && curNode.parent.d.alias === curNode) {
918
920
  // Are we within a "import Y as [Z]"?
919
921
  return undefined;
920
922
  }
@@ -922,7 +924,7 @@ class CompletionProvider {
922
924
  // Are we within a "import Y as [<empty>]"?
923
925
  if (curNode.parent.parent &&
924
926
  curNode.parent.parent.nodeType === 24 /* ParseNodeType.ImportAs */ &&
925
- !curNode.parent.parent.alias &&
927
+ !curNode.parent.parent.d.alias &&
926
928
  textRange_1.TextRange.getEnd(curNode.parent.parent) < offset) {
927
929
  return undefined;
928
930
  }
@@ -931,55 +933,55 @@ class CompletionProvider {
931
933
  return this._getImportModuleCompletions(curNode.parent);
932
934
  }
933
935
  if (curNode.parent.nodeType === 26 /* ParseNodeType.ImportFromAs */) {
934
- if (curNode.parent.alias === curNode) {
936
+ if (curNode.parent.d.alias === curNode) {
935
937
  // Are we within a "from X import Y as [Z]"?
936
938
  return undefined;
937
939
  }
938
940
  const parentNode = curNode.parent.parent;
939
941
  if (parentNode && parentNode.nodeType === 25 /* ParseNodeType.ImportFrom */) {
940
942
  // Are we within a "from X import Y as [<empty>]"?
941
- if (!curNode.parent.alias && textRange_1.TextRange.getEnd(curNode.parent) < offset) {
943
+ if (!curNode.parent.d.alias && textRange_1.TextRange.getEnd(curNode.parent) < offset) {
942
944
  return undefined;
943
945
  }
944
- if (curNode.parent.name === curNode) {
946
+ if (curNode.parent.d.name === curNode) {
945
947
  return this._getImportFromCompletions(parentNode, offset, priorWord);
946
948
  }
947
949
  return this._getImportFromCompletions(parentNode, offset, '');
948
950
  }
949
951
  return false;
950
952
  }
951
- if (curNode.parent.nodeType === 35 /* ParseNodeType.MemberAccess */ && curNode === curNode.parent.memberName) {
952
- return this.getMemberAccessCompletions(curNode.parent.leftExpression, priorWord);
953
+ if (curNode.parent.nodeType === 35 /* ParseNodeType.MemberAccess */ && curNode === curNode.parent.d.member) {
954
+ return this.getMemberAccessCompletions(curNode.parent.d.leftExpr, priorWord);
953
955
  }
954
- if (curNode.parent.nodeType === 28 /* ParseNodeType.Except */ && curNode === curNode.parent.name) {
956
+ if (curNode.parent.nodeType === 28 /* ParseNodeType.Except */ && curNode === curNode.parent.d.name) {
955
957
  return undefined;
956
958
  }
957
- if (curNode.parent.nodeType === 31 /* ParseNodeType.Function */ && curNode === curNode.parent.name) {
958
- if ((_a = curNode.parent.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
959
+ if (curNode.parent.nodeType === 31 /* ParseNodeType.Function */ && curNode === curNode.parent.d.name) {
960
+ if ((_a = curNode.parent.d.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
959
961
  return this._getMethodOverloadsCompletions(priorWord, curNode);
960
962
  }
961
963
  return undefined;
962
964
  }
963
- if (curNode.parent.nodeType === 41 /* ParseNodeType.Parameter */ && curNode === curNode.parent.name) {
965
+ if (curNode.parent.nodeType === 41 /* ParseNodeType.Parameter */ && curNode === curNode.parent.d.name) {
964
966
  return undefined;
965
967
  }
966
- if (curNode.parent.nodeType === 10 /* ParseNodeType.Class */ && curNode === curNode.parent.name) {
968
+ if (curNode.parent.nodeType === 10 /* ParseNodeType.Class */ && curNode === curNode.parent.d.name) {
967
969
  return undefined;
968
970
  }
969
971
  if (curNode.parent.nodeType === 29 /* ParseNodeType.For */ &&
970
- textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
972
+ textRange_1.TextRange.contains(curNode.parent.d.targetExpr, curNode.start)) {
971
973
  return undefined;
972
974
  }
973
975
  if (curNode.parent.nodeType === 12 /* ParseNodeType.ComprehensionFor */ &&
974
- textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
976
+ textRange_1.TextRange.contains(curNode.parent.d.targetExpr, curNode.start)) {
975
977
  return undefined;
976
978
  }
977
979
  // For assignments that implicitly declare variables, remove itself (var decl) from completion.
978
980
  if (curNode.parent.nodeType === 3 /* ParseNodeType.Assignment */ ||
979
981
  curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
980
982
  const leftNode = curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */
981
- ? curNode.parent.name
982
- : curNode.parent.leftExpression;
983
+ ? curNode.parent.d.name
984
+ : curNode.parent.d.leftExpr;
983
985
  if (leftNode !== curNode || priorWord.length === 0) {
984
986
  return false;
985
987
  }
@@ -989,7 +991,7 @@ class CompletionProvider {
989
991
  }
990
992
  const completionMap = this._getExpressionCompletions(curNode, priorWord, priorText, postText);
991
993
  if (completionMap) {
992
- completionMap.delete(curNode.value);
994
+ completionMap.delete(curNode.d.value);
993
995
  }
994
996
  return completionMap;
995
997
  }
@@ -1048,7 +1050,7 @@ class CompletionProvider {
1048
1050
  // Is the error due to a missing member access name? If so,
1049
1051
  // we can evaluate the left side of the member access expression
1050
1052
  // to determine its type and offer suggestions based on it.
1051
- switch (node.category) {
1053
+ switch (node.d.category) {
1052
1054
  case 0 /* ErrorExpressionCategory.MissingIn */: {
1053
1055
  return this._createSingleKeywordCompletion('in');
1054
1056
  }
@@ -1063,7 +1065,7 @@ class CompletionProvider {
1063
1065
  const index = ParseTreeUtils.getTokenIndexAtLeft(tokenizerOutput.tokens, offset);
1064
1066
  const token = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index);
1065
1067
  const prevToken = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index - 1);
1066
- if (node.category === 2 /* ErrorExpressionCategory.MissingExpression */) {
1068
+ if (node.d.category === 2 /* ErrorExpressionCategory.MissingExpression */) {
1067
1069
  // Skip dots on expressions.
1068
1070
  if ((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) {
1069
1071
  break;
@@ -1086,7 +1088,7 @@ class CompletionProvider {
1086
1088
  const previousOffset = textRange_1.TextRange.getEnd(prevToken);
1087
1089
  const previousNode = ParseTreeUtils.findNodeByOffset(this.parseResults.parserOutput.parseTree, previousOffset);
1088
1090
  if ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeType) !== 0 /* ParseNodeType.Error */ ||
1089
- previousNode.category !== 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1091
+ previousNode.d.category !== 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1090
1092
  return this._getExpressionCompletions(node, priorWord, priorText, postText);
1091
1093
  }
1092
1094
  else {
@@ -1094,7 +1096,7 @@ class CompletionProvider {
1094
1096
  node = previousNode;
1095
1097
  }
1096
1098
  }
1097
- else if (node.category === 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1099
+ else if (node.d.category === 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1098
1100
  // Skip double dots on member access.
1099
1101
  if (((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) &&
1100
1102
  ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 20 /* TokenType.Dot */ || (prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 19 /* TokenType.Ellipsis */)) {
@@ -1115,13 +1117,13 @@ class CompletionProvider {
1115
1117
  return completionResults;
1116
1118
  }
1117
1119
  case 10 /* ErrorExpressionCategory.MissingFunctionParameterList */: {
1118
- if (node.child && node.child.nodeType === 38 /* ParseNodeType.Name */) {
1119
- if ((_a = node.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
1120
- return this._getMethodOverloadsCompletions(priorWord, node.child);
1120
+ if (node.d.child && node.d.child.nodeType === 38 /* ParseNodeType.Name */) {
1121
+ if ((_a = node.d.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
1122
+ return this._getMethodOverloadsCompletions(priorWord, node.d.child);
1121
1123
  }
1122
1124
  // Determine if the partial name is a method that's overriding
1123
1125
  // a method in a base class.
1124
- return this.getMethodOverrideCompletions(priorWord, node.child, node.decorators);
1126
+ return this.getMethodOverrideCompletions(priorWord, node.d.child, node.d.decorators);
1125
1127
  }
1126
1128
  break;
1127
1129
  }
@@ -1129,10 +1131,10 @@ class CompletionProvider {
1129
1131
  return undefined;
1130
1132
  }
1131
1133
  _getMissingMemberAccessNameCompletions(node, priorWord) {
1132
- if (!node.child || !(0, parseNodes_1.isExpressionNode)(node.child)) {
1134
+ if (!node.d.child || !(0, parseNodes_1.isExpressionNode)(node.d.child)) {
1133
1135
  return undefined;
1134
1136
  }
1135
- return this.getMemberAccessCompletions(node.child, priorWord);
1137
+ return this.getMemberAccessCompletions(node.d.child, priorWord);
1136
1138
  }
1137
1139
  _isOverload(node) {
1138
1140
  return ParseTreeUtils.checkDecorator(node, 'overload');
@@ -1150,8 +1152,8 @@ class CompletionProvider {
1150
1152
  // class T:
1151
1153
  // f: |<= here
1152
1154
  const isTypeAnnotationOfClassVariable = ((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ &&
1153
- parseNode.parent.valueExpression.nodeType === 38 /* ParseNodeType.Name */ &&
1154
- parseNode.parent.typeAnnotation === parseNode &&
1155
+ parseNode.parent.d.valueExpr.nodeType === 38 /* ParseNodeType.Name */ &&
1156
+ parseNode.parent.d.annotation === parseNode &&
1155
1157
  ((_b = parseNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 47 /* ParseNodeType.StatementList */ &&
1156
1158
  ((_c = parseNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 50 /* ParseNodeType.Suite */ &&
1157
1159
  ((_d = parseNode.parent.parent.parent.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 10 /* ParseNodeType.Class */;
@@ -1166,7 +1168,7 @@ class CompletionProvider {
1166
1168
  if (!classResults) {
1167
1169
  return undefined;
1168
1170
  }
1169
- const classVariableName = parseNode.parent.valueExpression.value;
1171
+ const classVariableName = parseNode.parent.d.valueExpr.d.value;
1170
1172
  const classMember = (0, typeUtils_1.lookUpClassMember)(classResults.classType, classVariableName, 16 /* MemberAccessFlags.SkipInstanceMembers */ | 1 /* MemberAccessFlags.SkipOriginalClass */);
1171
1173
  // First, see whether we can use semantic info to get variable type.
1172
1174
  if (classMember) {
@@ -1182,7 +1184,7 @@ class CompletionProvider {
1182
1184
  }
1183
1185
  // If we can't do that using semantic info, then try syntactic info.
1184
1186
  const symbolTable = new Map();
1185
- for (const mroClass of classResults.classType.details.mro) {
1187
+ for (const mroClass of classResults.classType.shared.mro) {
1186
1188
  if (mroClass === classResults.classType) {
1187
1189
  // Ignore current type.
1188
1190
  continue;
@@ -1226,7 +1228,7 @@ class CompletionProvider {
1226
1228
  return undefined;
1227
1229
  }
1228
1230
  const symbolTable = new Map();
1229
- for (const mroClass of classResults.classType.details.mro) {
1231
+ for (const mroClass of classResults.classType.shared.mro) {
1230
1232
  if ((0, types_1.isInstantiableClass)(mroClass)) {
1231
1233
  (0, typeUtils_1.getMembersForClass)(mroClass, symbolTable, /* includeInstanceVars */ false);
1232
1234
  }
@@ -1236,7 +1238,7 @@ class CompletionProvider {
1236
1238
  if (SymbolNameUtils.isPrivateName(name) ||
1237
1239
  symbol.isPrivateMember() ||
1238
1240
  symbol.isExternallyHidden() ||
1239
- !StringUtils.isPatternInSymbol(partialName.value, name)) {
1241
+ !StringUtils.isPatternInSymbol(partialName.d.value, name)) {
1240
1242
  return;
1241
1243
  }
1242
1244
  const decls = symbol
@@ -1247,7 +1249,7 @@ class CompletionProvider {
1247
1249
  decls.some((d) => d.node && ParseTreeUtils.getEnclosingClass(d.node, false) === enclosingClass)) {
1248
1250
  return;
1249
1251
  }
1250
- this.addSymbol(name, symbol, partialName.value, completionMap, {});
1252
+ this.addSymbol(name, symbol, partialName.d.value, completionMap, {});
1251
1253
  });
1252
1254
  return completionMap.size > 0 ? completionMap : undefined;
1253
1255
  }
@@ -1265,7 +1267,7 @@ class CompletionProvider {
1265
1267
  if (!decl || decl.type !== 5 /* DeclarationType.Function */) {
1266
1268
  return;
1267
1269
  }
1268
- if (!decl.node.decorators.some((d) => this._isOverload(d))) {
1270
+ if (!decl.node.d.decorators.some((d) => this._isOverload(d))) {
1269
1271
  // Only consider ones that have overload decorator.
1270
1272
  return;
1271
1273
  }
@@ -1274,9 +1276,9 @@ class CompletionProvider {
1274
1276
  // Don't show itself.
1275
1277
  return;
1276
1278
  }
1277
- if (StringUtils.isPatternInSymbol(partialName.value, name)) {
1278
- const textEdit = this.createReplaceEdits(priorWord, partialName, decl.node.name.value);
1279
- this.addSymbol(name, symbol, partialName.value, completionMap, {
1279
+ if (StringUtils.isPatternInSymbol(partialName.d.value, name)) {
1280
+ const textEdit = this.createReplaceEdits(priorWord, partialName, decl.node.d.name.d.value);
1281
+ this.addSymbol(name, symbol, partialName.d.value, completionMap, {
1280
1282
  funcParensDisabled,
1281
1283
  edits: { textEdit },
1282
1284
  });
@@ -1291,7 +1293,7 @@ class CompletionProvider {
1291
1293
  return undefined;
1292
1294
  }
1293
1295
  const symbolTable = new Map();
1294
- for (const mroClass of classResults.classType.details.mro) {
1296
+ for (const mroClass of classResults.classType.shared.mro) {
1295
1297
  if ((0, types_1.isInstantiableClass)(mroClass)) {
1296
1298
  (0, typeUtils_1.getMembersForClass)(mroClass, symbolTable, /* includeInstanceVars */ false);
1297
1299
  }
@@ -1314,7 +1316,7 @@ class CompletionProvider {
1314
1316
  // In stubs, always use "...".
1315
1317
  ellipsisForDefault = true;
1316
1318
  }
1317
- else if (classType.details.moduleName === decl.moduleName) {
1319
+ else if (classType.shared.moduleName === decl.moduleName) {
1318
1320
  // In the same file, always print the full default.
1319
1321
  ellipsisForDefault = false;
1320
1322
  }
@@ -1322,17 +1324,17 @@ class CompletionProvider {
1322
1324
  ? 1 /* ParseTreeUtils.PrintExpressionFlags.ForwardDeclarations */ |
1323
1325
  2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */
1324
1326
  : 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */;
1325
- const paramList = node.parameters
1327
+ const paramList = node.d.params
1326
1328
  .map((param, index) => {
1327
1329
  let paramString = '';
1328
- if (param.category === 1 /* ParameterCategory.ArgsList */) {
1330
+ if (param.d.category === 1 /* ParameterCategory.ArgsList */) {
1329
1331
  paramString += '*';
1330
1332
  }
1331
- else if (param.category === 2 /* ParameterCategory.KwargsDict */) {
1333
+ else if (param.d.category === 2 /* ParameterCategory.KwargsDict */) {
1332
1334
  paramString += '**';
1333
1335
  }
1334
- if (param.name) {
1335
- paramString += param.name.value;
1336
+ if (param.d.name) {
1337
+ paramString += param.d.name.d.value;
1336
1338
  }
1337
1339
  // Currently, we don't automatically add import if the type used in the annotation is not imported
1338
1340
  // in current file.
@@ -1340,25 +1342,26 @@ class CompletionProvider {
1340
1342
  if (paramTypeAnnotation) {
1341
1343
  paramString += ': ' + ParseTreeUtils.printExpression(paramTypeAnnotation, printFlags);
1342
1344
  }
1343
- if (param.defaultValue) {
1345
+ if (param.d.defaultValue) {
1344
1346
  paramString += paramTypeAnnotation ? ' = ' : '=';
1345
- const useEllipsis = ellipsisForDefault !== null && ellipsisForDefault !== void 0 ? ellipsisForDefault : !ParseTreeUtils.isSimpleDefault(param.defaultValue);
1346
- paramString += useEllipsis ? '...' : ParseTreeUtils.printExpression(param.defaultValue, printFlags);
1347
+ const useEllipsis = ellipsisForDefault !== null && ellipsisForDefault !== void 0 ? ellipsisForDefault : !ParseTreeUtils.isSimpleDefault(param.d.defaultValue);
1348
+ paramString += useEllipsis
1349
+ ? '...'
1350
+ : ParseTreeUtils.printExpression(param.d.defaultValue, printFlags);
1347
1351
  }
1348
- if (!paramString && !param.name && param.category === 0 /* ParameterCategory.Simple */) {
1352
+ if (!paramString && !param.d.name && param.d.category === 0 /* ParameterCategory.Simple */) {
1349
1353
  return '/';
1350
1354
  }
1351
1355
  return paramString;
1352
1356
  })
1353
1357
  .join(', ');
1354
- let methodSignature = node.name.value + '(' + paramList + ')';
1355
- if (node.returnTypeAnnotation) {
1356
- methodSignature += ' -> ' + ParseTreeUtils.printExpression(node.returnTypeAnnotation, printFlags);
1358
+ let methodSignature = node.d.name.d.value + '(' + paramList + ')';
1359
+ if (node.d.returnAnnotation) {
1360
+ methodSignature += ' -> ' + ParseTreeUtils.printExpression(node.d.returnAnnotation, printFlags);
1357
1361
  }
1358
- else if (node.functionAnnotationComment) {
1362
+ else if (node.d.funcAnnotationComment) {
1359
1363
  methodSignature +=
1360
- ' -> ' +
1361
- ParseTreeUtils.printExpression(node.functionAnnotationComment.returnTypeAnnotation, printFlags);
1364
+ ' -> ' + ParseTreeUtils.printExpression(node.d.funcAnnotationComment.d.returnAnnotation, printFlags);
1362
1365
  }
1363
1366
  return methodSignature;
1364
1367
  }
@@ -1377,7 +1380,7 @@ class CompletionProvider {
1377
1380
  // Are we within a "with Y as []"?
1378
1381
  // Don't add any completion options.
1379
1382
  if (((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 59 /* ParseNodeType.WithItem */ &&
1380
- parseNode.parent === ((_b = parseNode.parent.target) === null || _b === void 0 ? void 0 : _b.parent)) {
1383
+ parseNode.parent === ((_b = parseNode.parent.d.target) === null || _b === void 0 ? void 0 : _b.parent)) {
1381
1384
  return undefined;
1382
1385
  }
1383
1386
  const completionMap = new CompletionMap();
@@ -1417,11 +1420,11 @@ class CompletionProvider {
1417
1420
  const currentNode = node.parent;
1418
1421
  return (currentNode &&
1419
1422
  currentNode.nodeType === 1 /* ParseNodeType.Argument */ &&
1420
- currentNode.argumentCategory === 0 /* ArgumentCategory.Simple */ &&
1423
+ currentNode.d.argCategory === 0 /* ArgumentCategory.Simple */ &&
1421
1424
  currentNode.parent &&
1422
1425
  currentNode.parent.nodeType === 27 /* ParseNodeType.Index */ &&
1423
- currentNode.parent.baseExpression &&
1424
- currentNode.parent.baseExpression.nodeType === 38 /* ParseNodeType.Name */);
1426
+ currentNode.parent.d.leftExpr &&
1427
+ currentNode.parent.d.leftExpr.nodeType === 38 /* ParseNodeType.Name */);
1425
1428
  }
1426
1429
  _addCallArgumentCompletions(parseNode, priorWord, priorText, postText, atArgument, completionMap) {
1427
1430
  // If we're within the argument list of a call, add parameter names.
@@ -1433,7 +1436,7 @@ class CompletionProvider {
1433
1436
  const signatureInfo = this.evaluator.getCallSignatureInfo(callInfo.callNode, callInfo.activeIndex, callInfo.activeOrFake);
1434
1437
  if (signatureInfo) {
1435
1438
  // Are we past the call expression and within the argument list?
1436
- const callNameEnd = (0, positionUtils_1.convertOffsetToPosition)(signatureInfo.callNode.leftExpression.start + signatureInfo.callNode.leftExpression.length, this.parseResults.tokenizerOutput.lines);
1439
+ const callNameEnd = (0, positionUtils_1.convertOffsetToPosition)(signatureInfo.callNode.d.leftExpr.start + signatureInfo.callNode.d.leftExpr.length, this.parseResults.tokenizerOutput.lines);
1437
1440
  if ((0, textRange_1.comparePositions)(this.position, callNameEnd) > 0) {
1438
1441
  if (!atArgument) {
1439
1442
  this._addNamedParameters(signatureInfo, priorWord, completionMap);
@@ -1449,11 +1452,11 @@ class CompletionProvider {
1449
1452
  return undefined;
1450
1453
  }
1451
1454
  const type = signature.type;
1452
- const paramIndex = type.details.parameters.indexOf(signature.activeParam);
1455
+ const paramIndex = type.shared.parameters.indexOf(signature.activeParam);
1453
1456
  if (paramIndex < 0) {
1454
1457
  return undefined;
1455
1458
  }
1456
- const paramType = type.details.parameters[paramIndex].type;
1459
+ const paramType = type.shared.parameters[paramIndex].type;
1457
1460
  this._addLiteralValuesForTargetType(paramType, priorWord, priorText, postText, completionMap);
1458
1461
  return undefined;
1459
1462
  });
@@ -1465,7 +1468,7 @@ class CompletionProvider {
1465
1468
  const value = (0, typePrinter_1.printLiteralValue)(v, quoteValue.quoteCharacter);
1466
1469
  if (quoteValue.stringValue === undefined) {
1467
1470
  this.addNameToCompletions(value, vscode_languageserver_1.CompletionItemKind.Constant, priorWord, completionMap, {
1468
- sortText: this._makeSortText(SortCategory.LiteralValue, v.literalValue),
1471
+ sortText: this._makeSortText(SortCategory.LiteralValue, v.priv.literalValue),
1469
1472
  });
1470
1473
  }
1471
1474
  else {
@@ -1479,12 +1482,12 @@ class CompletionProvider {
1479
1482
  if (!node) {
1480
1483
  return [];
1481
1484
  }
1482
- return node.entries.flatMap((entry) => {
1483
- if (entry.nodeType !== 20 /* ParseNodeType.DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.keyExpression.id))) {
1485
+ return node.d.items.flatMap((entry) => {
1486
+ if (entry.nodeType !== 20 /* ParseNodeType.DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.d.keyExpr.id))) {
1484
1487
  return [];
1485
1488
  }
1486
- if (entry.keyExpression.nodeType === 48 /* ParseNodeType.StringList */) {
1487
- return [entry.keyExpression.strings.map((s) => s.value).join('')];
1489
+ if (entry.d.keyExpr.nodeType === 48 /* ParseNodeType.StringList */) {
1490
+ return [entry.d.keyExpr.d.strings.map((s) => s.d.value).join('')];
1488
1491
  }
1489
1492
  return [];
1490
1493
  });
@@ -1519,8 +1522,8 @@ class CompletionProvider {
1519
1522
  const typesToCombine = [];
1520
1523
  // Handle both overloaded and non-overloaded functions.
1521
1524
  (0, typeUtils_1.doForEachSignature)(getItemType, (signature) => {
1522
- if (signature.details.parameters.length >= 1 &&
1523
- signature.details.parameters[0].category === 0 /* ParameterCategory.Simple */) {
1525
+ if (signature.shared.parameters.length >= 1 &&
1526
+ signature.shared.parameters[0].category === 0 /* ParameterCategory.Simple */) {
1524
1527
  typesToCombine.push(types_1.FunctionType.getEffectiveParameterType(signature, 0));
1525
1528
  }
1526
1529
  });
@@ -1532,7 +1535,7 @@ class CompletionProvider {
1532
1535
  }
1533
1536
  _getIndexKeys(indexNode, invocationNode) {
1534
1537
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1535
- const baseType = this.evaluator.getType(indexNode.baseExpression);
1538
+ const baseType = this.evaluator.getType(indexNode.d.leftExpr);
1536
1539
  if (!baseType || !(0, types_1.isClassInstance)(baseType)) {
1537
1540
  return [];
1538
1541
  }
@@ -1554,12 +1557,12 @@ class CompletionProvider {
1554
1557
  return keys;
1555
1558
  }
1556
1559
  }
1557
- if (indexNode.baseExpression.nodeType !== 38 /* ParseNodeType.Name */) {
1560
+ if (indexNode.d.leftExpr.nodeType !== 38 /* ParseNodeType.Name */) {
1558
1561
  // This completion only supports simple name case
1559
1562
  return [];
1560
1563
  }
1561
1564
  // Must be local variable/parameter
1562
- const declarations = (_a = this.evaluator.getDeclarationsForNameNode(indexNode.baseExpression)) !== null && _a !== void 0 ? _a : [];
1565
+ const declarations = (_a = this.evaluator.getDeclarationsForNameNode(indexNode.d.leftExpr)) !== null && _a !== void 0 ? _a : [];
1563
1566
  const declaration = declarations.length > 0 ? declarations[0] : undefined;
1564
1567
  if (!declaration ||
1565
1568
  (declaration.type !== 1 /* DeclarationType.Variable */ && declaration.type !== 2 /* DeclarationType.Parameter */)) {
@@ -1568,7 +1571,7 @@ class CompletionProvider {
1568
1571
  if (!declaration.uri.equals(this.fileUri)) {
1569
1572
  return [];
1570
1573
  }
1571
- let startingNode = indexNode.baseExpression;
1574
+ let startingNode = indexNode.d.leftExpr;
1572
1575
  if (declaration.node) {
1573
1576
  const scopeRoot = ParseTreeUtils.getEvaluationScopeNode(declaration.node).node;
1574
1577
  // Find the lowest tree to search the symbol.
@@ -1576,30 +1579,28 @@ class CompletionProvider {
1576
1579
  startingNode = scopeRoot;
1577
1580
  }
1578
1581
  }
1579
- const results = documentSymbolCollector_1.DocumentSymbolCollector.collectFromNode(this.program, indexNode.baseExpression, this.cancellationToken, startingNode);
1582
+ const results = documentSymbolCollector_1.DocumentSymbolCollector.collectFromNode(this.program, indexNode.d.leftExpr, this.cancellationToken, startingNode);
1580
1583
  const keys = new Set();
1581
1584
  for (const result of results) {
1582
1585
  const node = ((_d = result.node.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ ? result.node.parent : result.node;
1583
1586
  if (((_e = node.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 3 /* ParseNodeType.Assignment */ ||
1584
1587
  ((_f = node.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 4 /* ParseNodeType.AssignmentExpression */) {
1585
- if (node.parent.rightExpression.nodeType === 18 /* ParseNodeType.Dictionary */) {
1586
- const dictionary = node.parent.rightExpression;
1587
- for (const entry of dictionary.entries.filter((e) => e.nodeType === 20 /* ParseNodeType.DictionaryKeyEntry */)) {
1588
- const key = this.parseResults.text
1589
- .substr(entry.keyExpression.start, entry.keyExpression.length)
1590
- .trim();
1588
+ if (node.parent.d.rightExpr.nodeType === 18 /* ParseNodeType.Dictionary */) {
1589
+ const dictionary = node.parent.d.rightExpr;
1590
+ for (const entry of dictionary.d.items.filter((e) => e.nodeType === 20 /* ParseNodeType.DictionaryKeyEntry */)) {
1591
+ const key = this.parseResults.text.substr(entry.d.keyExpr.start, entry.d.keyExpr.length).trim();
1591
1592
  if (key.length > 0)
1592
1593
  keys.add(key);
1593
1594
  }
1594
1595
  }
1595
- if (node.parent.rightExpression.nodeType === 9 /* ParseNodeType.Call */) {
1596
- const call = node.parent.rightExpression;
1597
- const type = this.evaluator.getType(call.leftExpression);
1596
+ if (node.parent.d.rightExpr.nodeType === 9 /* ParseNodeType.Call */) {
1597
+ const call = node.parent.d.rightExpr;
1598
+ const type = this.evaluator.getType(call.d.leftExpr);
1598
1599
  if (!type || !(0, types_1.isInstantiableClass)(type) || !types_1.ClassType.isBuiltIn(type, 'dict')) {
1599
1600
  continue;
1600
1601
  }
1601
- for (const arg of call.arguments) {
1602
- const key = (_h = (_g = arg.name) === null || _g === void 0 ? void 0 : _g.value.trim()) !== null && _h !== void 0 ? _h : '';
1602
+ for (const arg of call.d.args) {
1603
+ const key = (_h = (_g = arg.d.name) === null || _g === void 0 ? void 0 : _g.d.value.trim()) !== null && _h !== void 0 ? _h : '';
1603
1604
  const quote = this.parseResults.tokenizerOutput.predominantSingleQuoteCharacter;
1604
1605
  if (key.length > 0) {
1605
1606
  keys.add(`${quote}${key}${quote}`);
@@ -1608,12 +1609,12 @@ class CompletionProvider {
1608
1609
  }
1609
1610
  }
1610
1611
  if (((_j = node.parent) === null || _j === void 0 ? void 0 : _j.nodeType) === 27 /* ParseNodeType.Index */ &&
1611
- node.parent.items.length === 1 &&
1612
- node.parent.items[0].valueExpression.nodeType !== 0 /* ParseNodeType.Error */ &&
1612
+ node.parent.d.items.length === 1 &&
1613
+ node.parent.d.items[0].d.valueExpr.nodeType !== 0 /* ParseNodeType.Error */ &&
1613
1614
  !textRange_1.TextRange.containsRange(node.parent, invocationNode)) {
1614
- const indexArgument = node.parent.items[0];
1615
+ const indexArgument = node.parent.d.items[0];
1615
1616
  const key = this.parseResults.text
1616
- .substr(indexArgument.valueExpression.start, indexArgument.valueExpression.length)
1617
+ .substr(indexArgument.d.valueExpr.start, indexArgument.d.valueExpr.length)
1617
1618
  .trim();
1618
1619
  if (key.length > 0)
1619
1620
  keys.add(key);
@@ -1644,7 +1645,7 @@ class CompletionProvider {
1644
1645
  // See if the type evaluator can determine the expected type for this node.
1645
1646
  // ex) a: Literal["str"] = /* here */
1646
1647
  const nodeForExpectedType = parentAndChild.parent.nodeType === 3 /* ParseNodeType.Assignment */
1647
- ? parentAndChild.parent.rightExpression === parentAndChild.child
1648
+ ? parentAndChild.parent.d.rightExpr === parentAndChild.child
1648
1649
  ? parentAndChild.child
1649
1650
  : undefined
1650
1651
  : (0, parseNodes_1.isExpressionNode)(parentAndChild.child)
@@ -1664,7 +1665,7 @@ class CompletionProvider {
1664
1665
  // a set initially.
1665
1666
  let dictOrSet;
1666
1667
  if (nodeForKey.nodeType === 20 /* ParseNodeType.DictionaryKeyEntry */ &&
1667
- nodeForKey.keyExpression === parentAndChild.child &&
1668
+ nodeForKey.d.keyExpr === parentAndChild.child &&
1668
1669
  ((_a = nodeForKey.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 18 /* ParseNodeType.Dictionary */) {
1669
1670
  dictOrSet = nodeForKey.parent;
1670
1671
  }
@@ -1719,8 +1720,9 @@ class CompletionProvider {
1719
1720
  // if c == "/* here */"
1720
1721
  const comparison = parentAndChild.parent;
1721
1722
  const supportedOperators = [2 /* OperatorType.Assign */, 12 /* OperatorType.Equals */, 28 /* OperatorType.NotEquals */];
1722
- if (comparison.nodeType === 7 /* ParseNodeType.BinaryOperation */ && supportedOperators.includes(comparison.operator)) {
1723
- const type = this.evaluator.getType(comparison.leftExpression);
1723
+ if (comparison.nodeType === 7 /* ParseNodeType.BinaryOperation */ &&
1724
+ supportedOperators.includes(comparison.d.operator)) {
1725
+ const type = this.evaluator.getType(comparison.d.leftExpr);
1724
1726
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1725
1727
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
1726
1728
  return true;
@@ -1729,8 +1731,8 @@ class CompletionProvider {
1729
1731
  // if c := "/* here */"
1730
1732
  const assignmentExpression = parentAndChild.parent;
1731
1733
  if (assignmentExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */ &&
1732
- assignmentExpression.rightExpression === parentAndChild.child) {
1733
- const type = this.evaluator.getType(assignmentExpression.name);
1734
+ assignmentExpression.d.rightExpr === parentAndChild.child) {
1735
+ const type = this.evaluator.getType(assignmentExpression.d.name);
1734
1736
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1735
1737
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
1736
1738
  return true;
@@ -1741,11 +1743,11 @@ class CompletionProvider {
1741
1743
  // case /* here */
1742
1744
  const caseNode = parentAndChild.parent;
1743
1745
  if (caseNode.nodeType === 64 /* ParseNodeType.Case */ &&
1744
- caseNode.pattern.nodeType === 0 /* ParseNodeType.Error */ &&
1745
- caseNode.pattern.category === 11 /* ErrorExpressionCategory.MissingPattern */ &&
1746
- caseNode.suite === parentAndChild.child &&
1746
+ caseNode.d.pattern.nodeType === 0 /* ParseNodeType.Error */ &&
1747
+ caseNode.d.pattern.d.category === 11 /* ErrorExpressionCategory.MissingPattern */ &&
1748
+ caseNode.d.suite === parentAndChild.child &&
1747
1749
  ((_c = caseNode.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 63 /* ParseNodeType.Match */) {
1748
- const type = this.evaluator.getType(caseNode.parent.subjectExpression);
1750
+ const type = this.evaluator.getType(caseNode.parent.d.expr);
1749
1751
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1750
1752
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
1751
1753
  return true;
@@ -1760,7 +1762,7 @@ class CompletionProvider {
1760
1762
  ((_d = patternLiteral.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 66 /* ParseNodeType.PatternAs */ &&
1761
1763
  ((_e = patternLiteral.parent.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 64 /* ParseNodeType.Case */ &&
1762
1764
  ((_f = patternLiteral.parent.parent.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 63 /* ParseNodeType.Match */) {
1763
- const type = this.evaluator.getType(patternLiteral.parent.parent.parent.subjectExpression);
1765
+ const type = this.evaluator.getType(patternLiteral.parent.parent.parent.d.expr);
1764
1766
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1765
1767
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
1766
1768
  return true;
@@ -1784,7 +1786,7 @@ class CompletionProvider {
1784
1786
  if (!node.parent.parent) {
1785
1787
  return undefined;
1786
1788
  }
1787
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* ParseNodeType.StringList */ || node.parent.strings.length > 1) {
1789
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* ParseNodeType.StringList */ || node.parent.d.strings.length > 1) {
1788
1790
  return undefined;
1789
1791
  }
1790
1792
  return { parent: node.parent.parent, child: node.parent };
@@ -1893,7 +1895,7 @@ class CompletionProvider {
1893
1895
  if (!indexNode) {
1894
1896
  return false;
1895
1897
  }
1896
- const baseType = this.evaluator.getType(indexNode.baseExpression);
1898
+ const baseType = this.evaluator.getType(indexNode.d.leftExpr);
1897
1899
  if (!baseType) {
1898
1900
  return false;
1899
1901
  }
@@ -1936,12 +1938,12 @@ class CompletionProvider {
1936
1938
  _getImportFromCompletions(importFromNode, offset, priorWord) {
1937
1939
  var _a;
1938
1940
  // Don't attempt to provide completions for "from X import *".
1939
- if (importFromNode.isWildcardImport) {
1941
+ if (importFromNode.d.isWildcardImport) {
1940
1942
  return undefined;
1941
1943
  }
1942
1944
  // Access the imported module information, which is hanging
1943
1945
  // off the ImportFromNode.
1944
- const importInfo = AnalyzerNodeInfo.getImportInfo(importFromNode.module);
1946
+ const importInfo = AnalyzerNodeInfo.getImportInfo(importFromNode.d.module);
1945
1947
  if (!importInfo) {
1946
1948
  return undefined;
1947
1949
  }
@@ -1965,7 +1967,7 @@ class CompletionProvider {
1965
1967
  symbol.getDeclarations().some((d) => !(0, declaration_1.isIntrinsicDeclaration)(d)) &&
1966
1968
  // Don't suggest symbols that have already been imported elsewhere
1967
1969
  // in this import statement.
1968
- !importFromNode.imports.find((imp) => imp.name.value === name &&
1970
+ !importFromNode.d.imports.find((imp) => imp.d.name.d.value === name &&
1969
1971
  !(textRange_1.TextRange.contains(imp, offset) || textRange_1.TextRange.getEnd(imp) === offset)));
1970
1972
  }, priorWord, importFromNode,
1971
1973
  /* isInImport */ true,
@@ -1976,7 +1978,7 @@ class CompletionProvider {
1976
1978
  }
1977
1979
  _addImplicitImportsToCompletion(importInfo, importFromNode, priorWord, completionMap) {
1978
1980
  importInfo.implicitImports.forEach((implImport) => {
1979
- if (!importFromNode.imports.find((imp) => imp.name.value === implImport.name)) {
1981
+ if (!importFromNode.d.imports.find((imp) => imp.d.name.d.value === implImport.name)) {
1980
1982
  this.addNameToCompletions(implImport.name, vscode_languageserver_1.CompletionItemKind.Module, priorWord, completionMap, {
1981
1983
  moduleUri: implImport.uri,
1982
1984
  });
@@ -2001,15 +2003,15 @@ class CompletionProvider {
2001
2003
  // Add keys from typed dict outside signatures.
2002
2004
  signatureInfo.signatures.forEach((signature) => {
2003
2005
  var _a;
2004
- if (signature.type.boundToType) {
2005
- const keys = Array.from(((_a = signature.type.boundToType.details.typedDictEntries) === null || _a === void 0 ? void 0 : _a.knownItems.keys()) || []);
2006
+ if (signature.type.priv.boundToType) {
2007
+ const keys = Array.from(((_a = signature.type.priv.boundToType.shared.typedDictEntries) === null || _a === void 0 ? void 0 : _a.knownItems.keys()) || []);
2006
2008
  keys.forEach((key) => argNameSet.add(key));
2007
2009
  }
2008
2010
  });
2009
2011
  // Remove any named parameters that are already provided.
2010
- signatureInfo.callNode.arguments.forEach((arg) => {
2011
- if (arg.name) {
2012
- argNameSet.delete(arg.name.value);
2012
+ signatureInfo.callNode.d.args.forEach((arg) => {
2013
+ if (arg.d.name) {
2014
+ argNameSet.delete(arg.d.name.d.value);
2013
2015
  }
2014
2016
  });
2015
2017
  // Add the remaining unique parameter names to the completion list.
@@ -2058,7 +2060,7 @@ class CompletionProvider {
2058
2060
  if (curNode.nodeType === 10 /* ParseNodeType.Class */) {
2059
2061
  const classType = this.evaluator.getTypeOfClass(curNode);
2060
2062
  if (classType && (0, types_1.isInstantiableClass)(classType.classType)) {
2061
- classType.classType.details.mro.forEach((baseClass, index) => {
2063
+ classType.classType.shared.mro.forEach((baseClass, index) => {
2062
2064
  if ((0, types_1.isInstantiableClass)(baseClass)) {
2063
2065
  this._addSymbolsForSymbolTable(types_1.ClassType.getSymbolTable(baseClass), (symbol) => {
2064
2066
  if (!symbol.isClassMember()) {
@@ -2168,7 +2170,7 @@ class CompletionProvider {
2168
2170
  }
2169
2171
  switch (resolvedDeclaration.type) {
2170
2172
  case 0 /* DeclarationType.Intrinsic */:
2171
- return resolvedDeclaration.intrinsicType === 'class'
2173
+ return resolvedDeclaration.intrinsicType === 'type[self]'
2172
2174
  ? vscode_languageserver_1.CompletionItemKind.Class
2173
2175
  : vscode_languageserver_1.CompletionItemKind.Variable;
2174
2176
  case 2 /* DeclarationType.Parameter */:
@@ -2218,19 +2220,19 @@ class CompletionProvider {
2218
2220
  }
2219
2221
  _getImportModuleCompletions(node) {
2220
2222
  const moduleDescriptor = {
2221
- leadingDots: node.leadingDots,
2222
- hasTrailingDot: node.hasTrailingDot || false,
2223
- nameParts: node.nameParts.map((part) => part.value),
2223
+ leadingDots: node.d.leadingDots,
2224
+ hasTrailingDot: node.d.hasTrailingDot || false,
2225
+ nameParts: node.d.nameParts.map((part) => part.d.value),
2224
2226
  importedSymbols: new Set(),
2225
2227
  };
2226
2228
  const completions = this.importResolver.getCompletionSuggestions(this.fileUri, this.execEnv, moduleDescriptor);
2227
2229
  const completionMap = new CompletionMap();
2228
2230
  // If we're in the middle of a "from X import Y" statement, offer
2229
2231
  // the "import" keyword as a completion.
2230
- if (!node.hasTrailingDot &&
2232
+ if (!node.d.hasTrailingDot &&
2231
2233
  node.parent &&
2232
2234
  node.parent.nodeType === 25 /* ParseNodeType.ImportFrom */ &&
2233
- node.parent.missingImportKeyword) {
2235
+ node.parent.d.missingImport) {
2234
2236
  const keyword = 'import';
2235
2237
  const completionItem = vscode_languageserver_1.CompletionItem.create(keyword);
2236
2238
  completionItem.kind = vscode_languageserver_1.CompletionItemKind.Keyword;
@@ -2248,7 +2250,7 @@ class CompletionProvider {
2248
2250
  _isPossiblePropertyDeclaration(decl) {
2249
2251
  // Do cheap check using only nodes that will cover 99.9% cases
2250
2252
  // before doing more expensive type evaluation.
2251
- return decl.isMethod && decl.node.decorators.length > 0;
2253
+ return decl.isMethod && decl.node.d.decorators.length > 0;
2252
2254
  }
2253
2255
  _isEnumMember(containingType, name) {
2254
2256
  if (!containingType || !types_1.ClassType.isEnumClass(containingType)) {
@@ -2258,7 +2260,7 @@ class CompletionProvider {
2258
2260
  return (symbolType &&
2259
2261
  (0, types_1.isClassInstance)(symbolType) &&
2260
2262
  types_1.ClassType.isSameGenericClass(symbolType, containingType) &&
2261
- symbolType.literalValue instanceof types_1.EnumLiteral);
2263
+ symbolType.priv.literalValue instanceof types_1.EnumLiteral);
2262
2264
  }
2263
2265
  }
2264
2266
  exports.CompletionProvider = CompletionProvider;