@zzzen/pyright-internal 1.2.0-dev.20240707 → 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 (147) 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 +506 -512
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +649 -634
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +87 -101
  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.js +68 -64
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constructorTransform.js +22 -22
  15. package/dist/analyzer/constructorTransform.js.map +1 -1
  16. package/dist/analyzer/constructors.js +51 -48
  17. package/dist/analyzer/constructors.js.map +1 -1
  18. package/dist/analyzer/dataClasses.js +109 -175
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/declarationUtils.js +14 -15
  21. package/dist/analyzer/declarationUtils.js.map +1 -1
  22. package/dist/analyzer/decorators.js +77 -77
  23. package/dist/analyzer/decorators.js.map +1 -1
  24. package/dist/analyzer/enums.js +70 -56
  25. package/dist/analyzer/enums.js.map +1 -1
  26. package/dist/analyzer/functionTransform.js +8 -18
  27. package/dist/analyzer/functionTransform.js.map +1 -1
  28. package/dist/analyzer/importResolver.d.ts +2 -1
  29. package/dist/analyzer/importResolver.js +40 -29
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/importStatementUtils.js +27 -27
  32. package/dist/analyzer/importStatementUtils.js.map +1 -1
  33. package/dist/analyzer/namedTuples.js +33 -59
  34. package/dist/analyzer/namedTuples.js.map +1 -1
  35. package/dist/analyzer/operations.js +66 -66
  36. package/dist/analyzer/operations.js.map +1 -1
  37. package/dist/analyzer/packageTypeVerifier.js +66 -62
  38. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  39. package/dist/analyzer/parameterUtils.d.ts +4 -4
  40. package/dist/analyzer/parameterUtils.js +28 -46
  41. package/dist/analyzer/parameterUtils.js.map +1 -1
  42. package/dist/analyzer/parseTreeUtils.js +268 -269
  43. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  44. package/dist/analyzer/parseTreeWalker.js +76 -76
  45. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  46. package/dist/analyzer/patternMatching.js +176 -143
  47. package/dist/analyzer/patternMatching.js.map +1 -1
  48. package/dist/analyzer/program.js +1 -1
  49. package/dist/analyzer/program.js.map +1 -1
  50. package/dist/analyzer/properties.js +78 -147
  51. package/dist/analyzer/properties.js.map +1 -1
  52. package/dist/analyzer/protocols.js +21 -21
  53. package/dist/analyzer/protocols.js.map +1 -1
  54. package/dist/analyzer/sourceFile.js +3 -3
  55. package/dist/analyzer/sourceFile.js.map +1 -1
  56. package/dist/analyzer/sourceMapper.js +20 -19
  57. package/dist/analyzer/sourceMapper.js.map +1 -1
  58. package/dist/analyzer/staticExpressions.js +83 -84
  59. package/dist/analyzer/staticExpressions.js.map +1 -1
  60. package/dist/analyzer/testWalker.js +2 -2
  61. package/dist/analyzer/testWalker.js.map +1 -1
  62. package/dist/analyzer/tracePrinter.js +20 -20
  63. package/dist/analyzer/tracePrinter.js.map +1 -1
  64. package/dist/analyzer/typeDocStringUtils.js +25 -25
  65. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  66. package/dist/analyzer/typeEvaluator.js +1884 -1937
  67. package/dist/analyzer/typeEvaluator.js.map +1 -1
  68. package/dist/analyzer/typeEvaluatorTypes.d.ts +6 -5
  69. package/dist/analyzer/typeEvaluatorTypes.js +4 -1
  70. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  71. package/dist/analyzer/typeGuards.js +211 -211
  72. package/dist/analyzer/typeGuards.js.map +1 -1
  73. package/dist/analyzer/typePrinter.js +118 -115
  74. package/dist/analyzer/typePrinter.js.map +1 -1
  75. package/dist/analyzer/typeStubWriter.js +104 -103
  76. package/dist/analyzer/typeStubWriter.js.map +1 -1
  77. package/dist/analyzer/typeUtils.d.ts +14 -3
  78. package/dist/analyzer/typeUtils.js +432 -402
  79. package/dist/analyzer/typeUtils.js.map +1 -1
  80. package/dist/analyzer/typeVarContext.js +8 -8
  81. package/dist/analyzer/typeVarContext.js.map +1 -1
  82. package/dist/analyzer/typeWalker.js +13 -10
  83. package/dist/analyzer/typeWalker.js.map +1 -1
  84. package/dist/analyzer/typedDicts.js +96 -198
  85. package/dist/analyzer/typedDicts.js.map +1 -1
  86. package/dist/analyzer/types.d.ts +144 -102
  87. package/dist/analyzer/types.js +662 -494
  88. package/dist/analyzer/types.js.map +1 -1
  89. package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
  90. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  91. package/dist/common/fileSystem.d.ts +1 -0
  92. package/dist/common/fileSystem.js.map +1 -1
  93. package/dist/common/fullAccessHost.js +6 -4
  94. package/dist/common/fullAccessHost.js.map +1 -1
  95. package/dist/common/realFileSystem.d.ts +1 -0
  96. package/dist/common/realFileSystem.js +4 -0
  97. package/dist/common/realFileSystem.js.map +1 -1
  98. package/dist/common/textEditTracker.js +14 -14
  99. package/dist/common/textEditTracker.js.map +1 -1
  100. package/dist/languageService/autoImporter.js +10 -10
  101. package/dist/languageService/autoImporter.js.map +1 -1
  102. package/dist/languageService/callHierarchyProvider.js +23 -23
  103. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  104. package/dist/languageService/completionProvider.js +153 -151
  105. package/dist/languageService/completionProvider.js.map +1 -1
  106. package/dist/languageService/definitionProvider.d.ts +1 -1
  107. package/dist/languageService/definitionProvider.js +3 -1
  108. package/dist/languageService/definitionProvider.js.map +1 -1
  109. package/dist/languageService/documentSymbolCollector.js +19 -19
  110. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  111. package/dist/languageService/hoverProvider.js +25 -24
  112. package/dist/languageService/hoverProvider.js.map +1 -1
  113. package/dist/languageService/importSorter.js +8 -8
  114. package/dist/languageService/importSorter.js.map +1 -1
  115. package/dist/languageService/referencesProvider.js +8 -8
  116. package/dist/languageService/referencesProvider.js.map +1 -1
  117. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  118. package/dist/languageService/signatureHelpProvider.js +6 -6
  119. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  120. package/dist/languageService/symbolIndexer.js +3 -3
  121. package/dist/languageService/symbolIndexer.js.map +1 -1
  122. package/dist/languageService/tooltipUtils.js +13 -13
  123. package/dist/languageService/tooltipUtils.js.map +1 -1
  124. package/dist/parser/parseNodes.d.ts +468 -401
  125. package/dist/parser/parseNodes.js +626 -355
  126. package/dist/parser/parseNodes.js.map +1 -1
  127. package/dist/parser/parser.d.ts +1 -0
  128. package/dist/parser/parser.js +316 -294
  129. package/dist/parser/parser.js.map +1 -1
  130. package/dist/tests/classDeclaration.test.js +14 -14
  131. package/dist/tests/classDeclaration.test.js.map +1 -1
  132. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  133. package/dist/tests/harness/vfs/filesystem.js +6 -2
  134. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  135. package/dist/tests/importResolver.test.js +4 -3
  136. package/dist/tests/importResolver.test.js.map +1 -1
  137. package/dist/tests/parseTreeUtils.test.js +5 -5
  138. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  139. package/dist/tests/parser.test.js +8 -8
  140. package/dist/tests/parser.test.js.map +1 -1
  141. package/dist/tests/sourceMapperUtils.test.js +7 -7
  142. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  143. package/dist/tests/typeEvaluator3.test.js +8 -3
  144. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  145. package/dist/tests/typePrinter.test.js +14 -39
  146. package/dist/tests/typePrinter.test.js.map +1 -1
  147. package/package.json +1 -1
@@ -169,8 +169,8 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
169
169
  return (0, typeUtils_1.mapSubtypes)(rightType, (rightSubtype) => {
170
170
  const leftClassSubtype = leftSubtype;
171
171
  const rightClassSubtype = rightSubtype;
172
- return types_1.ClassType.cloneWithLiteral(leftClassSubtype, (leftClassSubtype.literalValue +
173
- rightClassSubtype.literalValue));
172
+ return types_1.ClassType.cloneWithLiteral(leftClassSubtype, (leftClassSubtype.priv.literalValue +
173
+ rightClassSubtype.priv.literalValue));
174
174
  });
175
175
  });
176
176
  }
@@ -187,8 +187,8 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
187
187
  try {
188
188
  const leftClassSubtype = leftSubtype;
189
189
  const rightClassSubtype = rightSubtype;
190
- const leftLiteralValue = BigInt(leftClassSubtype.literalValue);
191
- const rightLiteralValue = BigInt(rightClassSubtype.literalValue);
190
+ const leftLiteralValue = BigInt(leftClassSubtype.priv.literalValue);
191
+ const rightLiteralValue = BigInt(rightClassSubtype.priv.literalValue);
192
192
  let newValue;
193
193
  if (operator === 0 /* OperatorType.Add */) {
194
194
  newValue = leftLiteralValue + rightLiteralValue;
@@ -254,10 +254,10 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
254
254
  operator === 0 /* OperatorType.Add */ &&
255
255
  (0, types_1.isClassInstance)(leftSubtypeExpanded) &&
256
256
  (0, typeUtils_1.isTupleClass)(leftSubtypeExpanded) &&
257
- leftSubtypeExpanded.tupleTypeArguments &&
257
+ leftSubtypeExpanded.priv.tupleTypeArguments &&
258
258
  (0, types_1.isClassInstance)(rightSubtypeExpanded) &&
259
259
  (0, typeUtils_1.isTupleClass)(rightSubtypeExpanded) &&
260
- rightSubtypeExpanded.tupleTypeArguments &&
260
+ rightSubtypeExpanded.priv.tupleTypeArguments &&
261
261
  tupleClassType &&
262
262
  (0, types_1.isInstantiableClass)(tupleClassType)) {
263
263
  // If at least one of the tuples is of fixed size, we can
@@ -268,8 +268,8 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
268
268
  if (!(0, typeUtils_1.isUnboundedTupleClass)(leftSubtypeExpanded) ||
269
269
  !(0, typeUtils_1.isUnboundedTupleClass)(rightSubtypeExpanded)) {
270
270
  return types_1.ClassType.cloneAsInstance((0, typeUtils_1.specializeTupleClass)(tupleClassType, [
271
- ...leftSubtypeExpanded.tupleTypeArguments,
272
- ...rightSubtypeExpanded.tupleTypeArguments,
271
+ ...leftSubtypeExpanded.priv.tupleTypeArguments,
272
+ ...rightSubtypeExpanded.priv.tupleTypeArguments,
273
273
  ]));
274
274
  }
275
275
  }
@@ -327,47 +327,47 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
327
327
  }
328
328
  exports.validateBinaryOperation = validateBinaryOperation;
329
329
  function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
330
- const leftExpression = node.leftExpression;
331
- let rightExpression = node.rightExpression;
330
+ const leftExpression = node.d.leftExpr;
331
+ let rightExpression = node.d.rightExpr;
332
332
  let isIncomplete = false;
333
333
  let typeErrors = false;
334
334
  // If this is a comparison and the left expression is also a comparison,
335
335
  // we need to change the behavior to accommodate python's "chained
336
336
  // comparisons" feature.
337
- if ((0, parseTreeUtils_1.operatorSupportsChaining)(node.operator)) {
337
+ if ((0, parseTreeUtils_1.operatorSupportsChaining)(node.d.operator)) {
338
338
  if (rightExpression.nodeType === 7 /* ParseNodeType.BinaryOperation */ &&
339
- !rightExpression.parenthesized &&
340
- (0, parseTreeUtils_1.operatorSupportsChaining)(rightExpression.operator)) {
339
+ !rightExpression.d.hasParens &&
340
+ (0, parseTreeUtils_1.operatorSupportsChaining)(rightExpression.d.operator)) {
341
341
  // Evaluate the right expression so it is type checked.
342
342
  getTypeOfBinaryOperation(evaluator, rightExpression, flags, inferenceContext);
343
343
  // Use the left side of the right expression for comparison purposes.
344
- rightExpression = rightExpression.leftExpression;
344
+ rightExpression = rightExpression.d.leftExpr;
345
345
  }
346
346
  }
347
347
  // For most binary operations, the "expected type" is applied to the output
348
348
  // of the magic method for that operation. However, the "or" and "and" operators
349
349
  // have no magic method, so we apply the expected type directly to both operands.
350
- let expectedOperandType = node.operator === 37 /* OperatorType.Or */ || node.operator === 36 /* OperatorType.And */
350
+ let expectedOperandType = node.d.operator === 37 /* OperatorType.Or */ || node.d.operator === 36 /* OperatorType.And */
351
351
  ? inferenceContext === null || inferenceContext === void 0 ? void 0 : inferenceContext.expectedType
352
352
  : undefined;
353
353
  // Handle the very special case where the expected type is a list
354
354
  // and the operator is a multiply. This comes up in the common case
355
355
  // of "x: List[Optional[X]] = [None] * y" where y is an integer literal.
356
356
  let expectedLeftOperandType;
357
- if (node.operator === 26 /* OperatorType.Multiply */ &&
357
+ if (node.d.operator === 26 /* OperatorType.Multiply */ &&
358
358
  inferenceContext &&
359
359
  (0, types_1.isClassInstance)(inferenceContext.expectedType) &&
360
360
  types_1.ClassType.isBuiltIn(inferenceContext.expectedType, 'list') &&
361
- inferenceContext.expectedType.typeArguments &&
362
- inferenceContext.expectedType.typeArguments.length >= 1 &&
363
- node.leftExpression.nodeType === 34 /* ParseNodeType.List */) {
361
+ inferenceContext.expectedType.priv.typeArguments &&
362
+ inferenceContext.expectedType.priv.typeArguments.length >= 1 &&
363
+ node.d.leftExpr.nodeType === 34 /* ParseNodeType.List */) {
364
364
  expectedLeftOperandType = inferenceContext.expectedType;
365
365
  }
366
366
  const effectiveExpectedType = expectedOperandType !== null && expectedOperandType !== void 0 ? expectedOperandType : expectedLeftOperandType;
367
367
  const leftTypeResult = evaluator.getTypeOfExpression(leftExpression, flags, (0, typeUtils_1.makeInferenceContext)(effectiveExpectedType));
368
368
  let leftType = leftTypeResult.type;
369
369
  if (!expectedOperandType) {
370
- if (node.operator === 37 /* OperatorType.Or */ || node.operator === 36 /* OperatorType.And */) {
370
+ if (node.d.operator === 37 /* OperatorType.Or */ || node.d.operator === 36 /* OperatorType.And */) {
371
371
  // For "or" and "and", use the type of the left operand under certain
372
372
  // circumstances. This allows us to infer a better type for expressions
373
373
  // like `x or []`. Do this only if it's a generic class (like list or dict)
@@ -376,17 +376,17 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
376
376
  if (!(0, types_1.isClassInstance)(subtype)) {
377
377
  return false;
378
378
  }
379
- return types_1.ClassType.isTypedDictClass(subtype) || subtype.details.typeParameters.length > 0;
379
+ return types_1.ClassType.isTypedDictClass(subtype) || subtype.shared.typeParameters.length > 0;
380
380
  })) {
381
381
  expectedOperandType = leftType;
382
382
  }
383
383
  }
384
- else if (node.operator === 0 /* OperatorType.Add */ && node.rightExpression.nodeType === 34 /* ParseNodeType.List */) {
384
+ else if (node.d.operator === 0 /* OperatorType.Add */ && node.d.rightExpr.nodeType === 34 /* ParseNodeType.List */) {
385
385
  // For the "+" operator , use this technique only if the right operand is
386
386
  // a list expression. This heuristic handles the common case of `my_list + [0]`.
387
387
  expectedOperandType = leftType;
388
388
  }
389
- else if (node.operator === 6 /* OperatorType.BitwiseOr */) {
389
+ else if (node.d.operator === 6 /* OperatorType.BitwiseOr */) {
390
390
  // If this is a bitwise or ("|"), use the type of the left operand. This allows
391
391
  // us to support the case where a TypedDict is being updated with a dict expression.
392
392
  if ((0, types_1.isClassInstance)(leftType) && types_1.ClassType.isTypedDictClass(leftType)) {
@@ -401,7 +401,7 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
401
401
  }
402
402
  // Is this a "|" operator used in a context where it is supposed to be
403
403
  // interpreted as a union operator?
404
- if (node.operator === 6 /* OperatorType.BitwiseOr */ &&
404
+ if (node.d.operator === 6 /* OperatorType.BitwiseOr */ &&
405
405
  !customMetaclassSupportsMethod(leftType, '__or__') &&
406
406
  !customMetaclassSupportsMethod(rightType, '__ror__')) {
407
407
  let adjustedRightType = rightType;
@@ -425,7 +425,7 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
425
425
  // If the left type is Any, we can't say for sure whether this
426
426
  // is an illegal syntax or a valid application of the "|" operator.
427
427
  if (!(0, types_1.isAnyOrUnknown)(adjustedLeftType)) {
428
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.unionSyntaxIllegal(), node, node.operatorToken);
428
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.unionSyntaxIllegal(), node, node.d.operatorToken);
429
429
  }
430
430
  }
431
431
  const isLeftTypeArgValid = evaluator.validateTypeArg({ ...leftTypeResult, node: leftExpression });
@@ -433,9 +433,9 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
433
433
  if (!isLeftTypeArgValid || !isRightTypeArgValid) {
434
434
  return { type: types_1.UnknownType.create() };
435
435
  }
436
- adjustedLeftType = evaluator.reportMissingTypeArguments(node.leftExpression, adjustedLeftType, flags | 128 /* EvalFlags.InstantiableType */);
437
- adjustedRightType = evaluator.reportMissingTypeArguments(node.rightExpression, adjustedRightType, flags | 128 /* EvalFlags.InstantiableType */);
438
- let newUnion = (0, types_1.combineTypes)([adjustedLeftType, adjustedRightType]);
436
+ adjustedLeftType = evaluator.reportMissingTypeArguments(node.d.leftExpr, adjustedLeftType, flags | 128 /* EvalFlags.InstantiableType */);
437
+ adjustedRightType = evaluator.reportMissingTypeArguments(node.d.rightExpr, adjustedRightType, flags | 128 /* EvalFlags.InstantiableType */);
438
+ let newUnion = (0, types_1.combineTypes)([adjustedLeftType, adjustedRightType], { skipElideRedundantLiterals: true });
439
439
  const unionClass = evaluator.getUnionClassType();
440
440
  if (unionClass && (0, types_1.isInstantiableClass)(unionClass)) {
441
441
  newUnion = types_1.TypeBase.cloneAsSpecialForm(newUnion, types_1.ClassType.cloneAsInstance(unionClass));
@@ -460,7 +460,7 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
460
460
  if (stringNode && otherNode && otherType) {
461
461
  let isAllowed = true;
462
462
  if ((0, types_1.isClass)(otherType)) {
463
- if (!otherType.isTypeArgumentExplicit || (0, types_1.isClassInstance)(otherType)) {
463
+ if (!otherType.priv.isTypeArgumentExplicit || (0, types_1.isClassInstance)(otherType)) {
464
464
  isAllowed = false;
465
465
  }
466
466
  }
@@ -474,23 +474,23 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
474
474
  }
475
475
  if ((flags & 256 /* EvalFlags.TypeExpression */) !== 0) {
476
476
  // Exempt "|" because it might be a union operation involving unknowns.
477
- if (node.operator !== 6 /* OperatorType.BitwiseOr */) {
477
+ if (node.d.operator !== 6 /* OperatorType.BitwiseOr */) {
478
478
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.binaryOperationNotAllowed(), node);
479
479
  return { type: types_1.UnknownType.create() };
480
480
  }
481
481
  }
482
482
  // Optional checks apply to all operations except for boolean operations.
483
483
  let isLeftOptionalType = false;
484
- if (booleanOperatorMap[node.operator] === undefined) {
484
+ if (booleanOperatorMap[node.d.operator] === undefined) {
485
485
  // None is a valid operand for == and != even if the type stub says otherwise.
486
- if (node.operator === 12 /* OperatorType.Equals */ || node.operator === 28 /* OperatorType.NotEquals */) {
486
+ if (node.d.operator === 12 /* OperatorType.Equals */ || node.d.operator === 28 /* OperatorType.NotEquals */) {
487
487
  leftType = (0, typeUtils_1.removeNoneFromUnion)(leftType);
488
488
  }
489
489
  else {
490
490
  isLeftOptionalType = (0, typeUtils_1.isOptionalType)(leftType);
491
491
  }
492
492
  // None is a valid operand for == and != even if the type stub says otherwise.
493
- if (node.operator === 12 /* OperatorType.Equals */ || node.operator === 28 /* OperatorType.NotEquals */) {
493
+ if (node.d.operator === 12 /* OperatorType.Equals */ || node.d.operator === 28 /* OperatorType.NotEquals */) {
494
494
  rightType = (0, typeUtils_1.removeNoneFromUnion)(rightType);
495
495
  }
496
496
  }
@@ -504,7 +504,7 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
504
504
  // can result in an infinite loop if we keep creating new tuple types
505
505
  // within a loop construct using __add__.
506
506
  const isTupleAddAllowed = !(0, types_1.isUnion)(leftType);
507
- const type = validateBinaryOperation(evaluator, node.operator, { type: leftType, isIncomplete: leftTypeResult.isIncomplete }, { type: rightType, isIncomplete: rightTypeResult.isIncomplete }, node, inferenceContext, diag, { isLiteralMathAllowed, isTupleAddAllowed });
507
+ const type = validateBinaryOperation(evaluator, node.d.operator, { type: leftType, isIncomplete: leftTypeResult.isIncomplete }, { type: rightType, isIncomplete: rightTypeResult.isIncomplete }, node, inferenceContext, diag, { isLiteralMathAllowed, isTupleAddAllowed });
508
508
  if (!diag.isEmpty()) {
509
509
  typeErrors = true;
510
510
  if (!isIncomplete) {
@@ -514,8 +514,8 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
514
514
  // this as a reportOptionalOperand diagnostic rather than a
515
515
  // reportGeneralTypeIssues diagnostic.
516
516
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOptionalOperand, localize_1.LocMessage.noneOperator().format({
517
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
518
- }), node.leftExpression);
517
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
518
+ }), node.d.leftExpr);
519
519
  }
520
520
  else {
521
521
  // If neither the LHS or RHS are unions, don't include a diagnostic addendum
@@ -527,7 +527,7 @@ function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
527
527
  diagString = diag.getString();
528
528
  }
529
529
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOperatorIssue, localize_1.LocMessage.typeNotSupportBinaryOperator().format({
530
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
530
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
531
531
  leftType: evaluator.printType(leftType),
532
532
  rightType: evaluator.printType(rightType),
533
533
  }) + diagString, node);
@@ -556,15 +556,15 @@ function getTypeOfAugmentedAssignment(evaluator, node, inferenceContext) {
556
556
  let type;
557
557
  let typeResult;
558
558
  const diag = new diagnostic_1.DiagnosticAddendum();
559
- const leftTypeResult = evaluator.getTypeOfExpression(node.leftExpression);
559
+ const leftTypeResult = evaluator.getTypeOfExpression(node.d.leftExpr);
560
560
  const leftType = leftTypeResult.type;
561
561
  let expectedOperandType;
562
- if (node.operator === 7 /* OperatorType.BitwiseOrEqual */) {
562
+ if (node.d.operator === 7 /* OperatorType.BitwiseOrEqual */) {
563
563
  // If this is a bitwise or ("|="), use the type of the left operand. This allows
564
564
  // us to support the case where a TypedDict is being updated with a dict expression.
565
565
  expectedOperandType = leftType;
566
566
  }
567
- const rightTypeResult = evaluator.getTypeOfExpression(node.rightExpression,
567
+ const rightTypeResult = evaluator.getTypeOfExpression(node.d.rightExpr,
568
568
  /* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(expectedOperandType));
569
569
  const rightType = rightTypeResult.type;
570
570
  const isIncomplete = !!rightTypeResult.isIncomplete || !!leftTypeResult.isIncomplete;
@@ -578,7 +578,7 @@ function getTypeOfAugmentedAssignment(evaluator, node, inferenceContext) {
578
578
  if ((0, types_1.isAnyOrUnknown)(leftSubtypeUnexpanded) || (0, types_1.isAnyOrUnknown)(rightSubtypeUnexpanded)) {
579
579
  return (0, typeUtils_1.preserveUnknown)(leftSubtypeUnexpanded, rightSubtypeUnexpanded);
580
580
  }
581
- const magicMethodName = operatorMap[node.operator][0];
581
+ const magicMethodName = operatorMap[node.d.operator][0];
582
582
  let returnType = evaluator.getTypeOfMagicMethodCall(leftSubtypeUnexpanded, magicMethodName, [{ type: rightSubtypeUnexpanded, isIncomplete: rightTypeResult.isIncomplete }], node, inferenceContext);
583
583
  if (!returnType && leftSubtypeUnexpanded !== leftSubtypeExpanded) {
584
584
  // Try with the expanded left type.
@@ -591,11 +591,11 @@ function getTypeOfAugmentedAssignment(evaluator, node, inferenceContext) {
591
591
  if (!returnType) {
592
592
  // If the LHS class didn't support the magic method for augmented
593
593
  // assignment, fall back on the normal binary expression evaluator.
594
- const binaryOperator = operatorMap[node.operator][1];
594
+ const binaryOperator = operatorMap[node.d.operator][1];
595
595
  // Don't use literal math if the operation is within a loop
596
596
  // because the literal values may change each time.
597
597
  const isLiteralMathAllowed = !(0, parseTreeUtils_1.isWithinLoop)(node) &&
598
- isExpressionLocalVariable(evaluator, node.leftExpression) &&
598
+ isExpressionLocalVariable(evaluator, node.d.leftExpr) &&
599
599
  (0, typeUtils_1.getUnionSubtypeCount)(leftType) * (0, typeUtils_1.getUnionSubtypeCount)(rightType) <
600
600
  maxLiteralMathSubtypeCount;
601
601
  // Don't special-case tuple __add__ if the left type is a union. This
@@ -612,7 +612,7 @@ function getTypeOfAugmentedAssignment(evaluator, node, inferenceContext) {
612
612
  if (!diag.isEmpty() || !type || (0, types_1.isNever)(type)) {
613
613
  if (!isIncomplete) {
614
614
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOperatorIssue, localize_1.LocMessage.typeNotSupportBinaryOperator().format({
615
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
615
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
616
616
  leftType: evaluator.printType(leftType),
617
617
  rightType: evaluator.printType(rightType),
618
618
  }) + diag.getString(), node);
@@ -620,7 +620,7 @@ function getTypeOfAugmentedAssignment(evaluator, node, inferenceContext) {
620
620
  }
621
621
  typeResult = { type, isIncomplete };
622
622
  }
623
- evaluator.assignTypeToExpression(node.destExpression, typeResult, node.rightExpression);
623
+ evaluator.assignTypeToExpression(node.d.destExpr, typeResult, node.d.rightExpr);
624
624
  return typeResult;
625
625
  }
626
626
  exports.getTypeOfAugmentedAssignment = getTypeOfAugmentedAssignment;
@@ -629,7 +629,7 @@ function getTypeOfUnaryOperation(evaluator, node, flags, inferenceContext) {
629
629
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.unaryOperationNotAllowed(), node);
630
630
  return { type: types_1.UnknownType.create() };
631
631
  }
632
- const exprTypeResult = evaluator.getTypeOfExpression(node.expression);
632
+ const exprTypeResult = evaluator.getTypeOfExpression(node.d.expr);
633
633
  let exprType = evaluator.makeTopLevelTypeVarsConcrete((0, typeUtils_1.transformPossibleRecursiveTypeAlias)(exprTypeResult.type));
634
634
  const isIncomplete = exprTypeResult.isIncomplete;
635
635
  if ((0, types_1.isNever)(exprType)) {
@@ -643,11 +643,11 @@ function getTypeOfUnaryOperation(evaluator, node, flags, inferenceContext) {
643
643
  [5 /* OperatorType.BitwiseInvert */]: '__invert__',
644
644
  };
645
645
  let type;
646
- if (node.operator !== 38 /* OperatorType.Not */) {
646
+ if (node.d.operator !== 38 /* OperatorType.Not */) {
647
647
  if ((0, typeUtils_1.isOptionalType)(exprType)) {
648
648
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOptionalOperand, localize_1.LocMessage.noneOperator().format({
649
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
650
- }), node.expression);
649
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
650
+ }), node.d.expr);
651
651
  exprType = (0, typeUtils_1.removeNoneFromUnion)(exprType);
652
652
  }
653
653
  }
@@ -658,28 +658,28 @@ function getTypeOfUnaryOperation(evaluator, node, flags, inferenceContext) {
658
658
  if (!exprTypeResult.isIncomplete) {
659
659
  const literalClassName = (0, typeUtils_1.getLiteralTypeClassName)(exprType);
660
660
  if (literalClassName === 'int') {
661
- if (node.operator === 0 /* OperatorType.Add */) {
661
+ if (node.d.operator === 0 /* OperatorType.Add */) {
662
662
  type = exprType;
663
663
  }
664
- else if (node.operator === 33 /* OperatorType.Subtract */) {
664
+ else if (node.d.operator === 33 /* OperatorType.Subtract */) {
665
665
  type = (0, typeUtils_1.mapSubtypes)(exprType, (subtype) => {
666
666
  const classSubtype = subtype;
667
- return types_1.ClassType.cloneWithLiteral(classSubtype, -classSubtype.literalValue);
667
+ return types_1.ClassType.cloneWithLiteral(classSubtype, -classSubtype.priv.literalValue);
668
668
  });
669
669
  }
670
670
  }
671
671
  else if (literalClassName === 'bool') {
672
- if (node.operator === 38 /* OperatorType.Not */) {
672
+ if (node.d.operator === 38 /* OperatorType.Not */) {
673
673
  type = (0, typeUtils_1.mapSubtypes)(exprType, (subtype) => {
674
674
  const classSubtype = subtype;
675
- return types_1.ClassType.cloneWithLiteral(classSubtype, !classSubtype.literalValue);
675
+ return types_1.ClassType.cloneWithLiteral(classSubtype, !classSubtype.priv.literalValue);
676
676
  });
677
677
  }
678
678
  }
679
679
  }
680
680
  if (!type) {
681
681
  // __not__ always returns a boolean.
682
- if (node.operator === 38 /* OperatorType.Not */) {
682
+ if (node.d.operator === 38 /* OperatorType.Not */) {
683
683
  type = evaluator.getBuiltInObject(node, 'bool');
684
684
  if (!type) {
685
685
  type = types_1.UnknownType.create();
@@ -690,7 +690,7 @@ function getTypeOfUnaryOperation(evaluator, node, flags, inferenceContext) {
690
690
  type = exprType;
691
691
  }
692
692
  else {
693
- const magicMethodName = unaryOperatorMap[node.operator];
693
+ const magicMethodName = unaryOperatorMap[node.d.operator];
694
694
  let isResultValid = true;
695
695
  type = evaluator.mapSubtypesExpandTypeVars(exprType, /* options */ undefined, (subtypeExpanded) => {
696
696
  const result = evaluator.getTypeOfMagicMethodCall(subtypeExpanded, magicMethodName, [], node, inferenceContext);
@@ -707,14 +707,14 @@ function getTypeOfUnaryOperation(evaluator, node, flags, inferenceContext) {
707
707
  if (!isIncomplete) {
708
708
  if (inferenceContext) {
709
709
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOperatorIssue, localize_1.LocMessage.typeNotSupportUnaryOperatorBidirectional().format({
710
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
710
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
711
711
  type: evaluator.printType(exprType),
712
712
  expectedType: evaluator.printType(inferenceContext.expectedType),
713
713
  }), node);
714
714
  }
715
715
  else {
716
716
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportOperatorIssue, localize_1.LocMessage.typeNotSupportUnaryOperator().format({
717
- operator: (0, parseTreeUtils_1.printOperator)(node.operator),
717
+ operator: (0, parseTreeUtils_1.printOperator)(node.d.operator),
718
718
  type: evaluator.printType(exprType),
719
719
  }), node);
720
720
  }
@@ -732,13 +732,13 @@ function getTypeOfTernaryOperation(evaluator, node, flags, inferenceContext) {
732
732
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.ternaryNotAllowed(), node);
733
733
  return { type: types_1.UnknownType.create() };
734
734
  }
735
- evaluator.getTypeOfExpression(node.testExpression);
735
+ evaluator.getTypeOfExpression(node.d.testExpr);
736
736
  const typesToCombine = [];
737
737
  let isIncomplete = false;
738
738
  let typeErrors = false;
739
- const constExprValue = (0, staticExpressions_1.evaluateStaticBoolExpression)(node.testExpression, fileInfo.executionEnvironment, fileInfo.definedConstants);
740
- if (constExprValue !== false && evaluator.isNodeReachable(node.ifExpression)) {
741
- const ifType = evaluator.getTypeOfExpression(node.ifExpression, flags, inferenceContext);
739
+ const constExprValue = (0, staticExpressions_1.evaluateStaticBoolExpression)(node.d.testExpr, fileInfo.executionEnvironment, fileInfo.definedConstants);
740
+ if (constExprValue !== false && evaluator.isNodeReachable(node.d.ifExpr)) {
741
+ const ifType = evaluator.getTypeOfExpression(node.d.ifExpr, flags, inferenceContext);
742
742
  typesToCombine.push(ifType.type);
743
743
  if (ifType.isIncomplete) {
744
744
  isIncomplete = true;
@@ -747,8 +747,8 @@ function getTypeOfTernaryOperation(evaluator, node, flags, inferenceContext) {
747
747
  typeErrors = true;
748
748
  }
749
749
  }
750
- if (constExprValue !== true && evaluator.isNodeReachable(node.elseExpression)) {
751
- const elseType = evaluator.getTypeOfExpression(node.elseExpression, flags, inferenceContext);
750
+ if (constExprValue !== true && evaluator.isNodeReachable(node.d.elseExpr)) {
751
+ const elseType = evaluator.getTypeOfExpression(node.d.elseExpr, flags, inferenceContext);
752
752
  typesToCombine.push(elseType.type);
753
753
  if (elseType.isIncomplete) {
754
754
  isIncomplete = true;
@@ -764,7 +764,7 @@ function customMetaclassSupportsMethod(type, methodName) {
764
764
  if (!(0, types_1.isInstantiableClass)(type)) {
765
765
  return false;
766
766
  }
767
- const metaclass = type.details.effectiveMetaclass;
767
+ const metaclass = type.shared.effectiveMetaclass;
768
768
  if (!metaclass || !(0, types_1.isInstantiableClass)(metaclass)) {
769
769
  return false;
770
770
  }
@@ -801,7 +801,7 @@ function isExpressionLocalVariable(evaluator, node) {
801
801
  if (node.nodeType !== 38 /* ParseNodeType.Name */) {
802
802
  return false;
803
803
  }
804
- const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.value, /* honorCodeFlow */ false);
804
+ const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.d.value, /* honorCodeFlow */ false);
805
805
  if (!symbolWithScope) {
806
806
  return false;
807
807
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../../src/analyzer/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../../src/analyzer/operations.ts"],"names":[],"mappings":"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"}