@zzzen/pyright-internal 1.2.0-dev.20220703 → 1.2.0-dev.20220724

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 (177) hide show
  1. package/README.md +82 -1
  2. package/dist/analyzer/analysis.js +1 -1
  3. package/dist/analyzer/analysis.js.map +1 -1
  4. package/dist/analyzer/analyzerFileInfo.d.ts +2 -1
  5. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  6. package/dist/analyzer/binder.js +15 -1
  7. package/dist/analyzer/binder.js.map +1 -1
  8. package/dist/analyzer/checker.d.ts +1 -0
  9. package/dist/analyzer/checker.js +100 -51
  10. package/dist/analyzer/checker.js.map +1 -1
  11. package/dist/analyzer/codeFlowEngine.d.ts +0 -1
  12. package/dist/analyzer/codeFlowEngine.js +196 -197
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/codeFlowTypes.d.ts +1 -1
  15. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  16. package/dist/analyzer/constraintSolver.js +6 -7
  17. package/dist/analyzer/constraintSolver.js.map +1 -1
  18. package/dist/analyzer/dataClasses.js +13 -4
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/functionTransform.js +2 -1
  21. package/dist/analyzer/functionTransform.js.map +1 -1
  22. package/dist/analyzer/importResolver.js +5 -4
  23. package/dist/analyzer/importResolver.js.map +1 -1
  24. package/dist/analyzer/importStatementUtils.d.ts +1 -1
  25. package/dist/analyzer/importStatementUtils.js +47 -18
  26. package/dist/analyzer/importStatementUtils.js.map +1 -1
  27. package/dist/analyzer/parseTreeUtils.d.ts +6 -1
  28. package/dist/analyzer/parseTreeUtils.js +118 -10
  29. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  30. package/dist/analyzer/patternMatching.js +2 -2
  31. package/dist/analyzer/patternMatching.js.map +1 -1
  32. package/dist/analyzer/program.d.ts +2 -2
  33. package/dist/analyzer/program.js +1 -1
  34. package/dist/analyzer/program.js.map +1 -1
  35. package/dist/analyzer/service.d.ts +4 -3
  36. package/dist/analyzer/service.js +40 -39
  37. package/dist/analyzer/service.js.map +1 -1
  38. package/dist/analyzer/sourceFile.d.ts +6 -1
  39. package/dist/analyzer/sourceFile.js +57 -14
  40. package/dist/analyzer/sourceFile.js.map +1 -1
  41. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  42. package/dist/analyzer/typeEvaluator.js +754 -618
  43. package/dist/analyzer/typeEvaluator.js.map +1 -1
  44. package/dist/analyzer/typeEvaluatorTypes.d.ts +15 -15
  45. package/dist/analyzer/typeEvaluatorWithTracker.js +8 -7
  46. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  47. package/dist/analyzer/typeGuards.d.ts +2 -0
  48. package/dist/analyzer/typeGuards.js +47 -14
  49. package/dist/analyzer/typeGuards.js.map +1 -1
  50. package/dist/analyzer/typeUtils.d.ts +5 -3
  51. package/dist/analyzer/typeUtils.js +103 -27
  52. package/dist/analyzer/typeUtils.js.map +1 -1
  53. package/dist/analyzer/typedDicts.d.ts +1 -0
  54. package/dist/analyzer/typedDicts.js +27 -4
  55. package/dist/analyzer/typedDicts.js.map +1 -1
  56. package/dist/analyzer/types.d.ts +15 -5
  57. package/dist/analyzer/types.js +107 -9
  58. package/dist/analyzer/types.js.map +1 -1
  59. package/dist/backgroundAnalysisBase.d.ts +2 -1
  60. package/dist/backgroundAnalysisBase.js +7 -0
  61. package/dist/backgroundAnalysisBase.js.map +1 -1
  62. package/dist/backgroundThreadBase.js +1 -0
  63. package/dist/backgroundThreadBase.js.map +1 -1
  64. package/dist/common/chokidarFileWatcherProvider.d.ts +1 -2
  65. package/dist/common/chokidarFileWatcherProvider.js +0 -3
  66. package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
  67. package/dist/common/configOptions.d.ts +1 -0
  68. package/dist/common/configOptions.js +4 -0
  69. package/dist/common/configOptions.js.map +1 -1
  70. package/dist/common/diagnostic.d.ts +2 -1
  71. package/dist/common/diagnostic.js +2 -1
  72. package/dist/common/diagnostic.js.map +1 -1
  73. package/dist/common/diagnosticRules.d.ts +1 -0
  74. package/dist/common/diagnosticRules.js +1 -0
  75. package/dist/common/diagnosticRules.js.map +1 -1
  76. package/dist/common/diagnosticSink.d.ts +3 -0
  77. package/dist/common/diagnosticSink.js +15 -2
  78. package/dist/common/diagnosticSink.js.map +1 -1
  79. package/dist/common/editAction.d.ts +6 -0
  80. package/dist/common/editAction.js +15 -0
  81. package/dist/common/editAction.js.map +1 -1
  82. package/dist/common/fileSystem.d.ts +4 -1
  83. package/dist/common/fileSystem.js +6 -4
  84. package/dist/common/fileSystem.js.map +1 -1
  85. package/dist/common/realFileSystem.d.ts +2 -2
  86. package/dist/common/realFileSystem.js.map +1 -1
  87. package/dist/common/textEditUtils.d.ts +22 -2
  88. package/dist/common/textEditUtils.js +138 -1
  89. package/dist/common/textEditUtils.js.map +1 -1
  90. package/dist/common/uriParser.d.ts +2 -0
  91. package/dist/common/uriParser.js +11 -0
  92. package/dist/common/uriParser.js.map +1 -1
  93. package/dist/languageServerBase.d.ts +19 -18
  94. package/dist/languageServerBase.js +75 -61
  95. package/dist/languageServerBase.js.map +1 -1
  96. package/dist/languageService/codeActionProvider.d.ts +2 -2
  97. package/dist/languageService/codeActionProvider.js +1 -1
  98. package/dist/languageService/codeActionProvider.js.map +1 -1
  99. package/dist/languageService/completionProvider.d.ts +15 -11
  100. package/dist/languageService/completionProvider.js +76 -5
  101. package/dist/languageService/completionProvider.js.map +1 -1
  102. package/dist/languageService/indentationUtils.js +3 -2
  103. package/dist/languageService/indentationUtils.js.map +1 -1
  104. package/dist/languageService/insertionPointUtils.d.ts +9 -0
  105. package/dist/languageService/insertionPointUtils.js +110 -0
  106. package/dist/languageService/insertionPointUtils.js.map +1 -0
  107. package/dist/languageService/renameModuleProvider.d.ts +1 -4
  108. package/dist/languageService/renameModuleProvider.js +10 -46
  109. package/dist/languageService/renameModuleProvider.js.map +1 -1
  110. package/dist/languageService/signatureHelpProvider.js +4 -2
  111. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  112. package/dist/languageService/tooltipUtils.js +1 -3
  113. package/dist/languageService/tooltipUtils.js.map +1 -1
  114. package/dist/localization/localize.d.ts +13 -0
  115. package/dist/localization/localize.js +4 -0
  116. package/dist/localization/localize.js.map +1 -1
  117. package/dist/localization/package.nls.en-us.json +4 -0
  118. package/dist/parser/parser.d.ts +2 -1
  119. package/dist/parser/parser.js +11 -2
  120. package/dist/parser/parser.js.map +1 -1
  121. package/dist/parser/tokenizer.d.ts +2 -1
  122. package/dist/parser/tokenizer.js +3 -2
  123. package/dist/parser/tokenizer.js.map +1 -1
  124. package/dist/pyright.js +3 -1
  125. package/dist/pyright.js.map +1 -1
  126. package/dist/pyrightFileSystem.d.ts +20 -2
  127. package/dist/pyrightFileSystem.js +29 -2
  128. package/dist/pyrightFileSystem.js.map +1 -1
  129. package/dist/server.js +4 -4
  130. package/dist/server.js.map +1 -1
  131. package/dist/tests/chainedSourceFiles.test.js +4 -1
  132. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  133. package/dist/tests/checker.test.js +9 -0
  134. package/dist/tests/checker.test.js.map +1 -1
  135. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +1 -0
  136. package/dist/tests/fourslash/completions.commitChars.fourslash.js +47 -0
  137. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +1 -0
  138. package/dist/tests/fourslash/completions.triggers.fourslash.d.ts +1 -0
  139. package/dist/tests/fourslash/completions.triggers.fourslash.js +29 -0
  140. package/dist/tests/fourslash/completions.triggers.fourslash.js.map +1 -0
  141. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  142. package/dist/tests/fourslash/import.multipart.fourslash.d.ts +1 -0
  143. package/dist/tests/fourslash/import.multipart.fourslash.js +18 -0
  144. package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -0
  145. package/dist/tests/fourslash/signature.simple.fourslash.js +16 -0
  146. package/dist/tests/fourslash/signature.simple.fourslash.js.map +1 -1
  147. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  148. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  149. package/dist/tests/harness/fourslash/testState.js +12 -3
  150. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  151. package/dist/tests/insertionPointUtils.test.d.ts +1 -0
  152. package/dist/tests/insertionPointUtils.test.js +74 -0
  153. package/dist/tests/insertionPointUtils.test.js.map +1 -0
  154. package/dist/tests/pyrightFileSystem.test.js +28 -0
  155. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  156. package/dist/tests/renameModuleTestUtils.js +5 -87
  157. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  158. package/dist/tests/testStateUtils.d.ts +8 -0
  159. package/dist/tests/testStateUtils.js +110 -0
  160. package/dist/tests/testStateUtils.js.map +1 -0
  161. package/dist/tests/testUtils.d.ts +2 -1
  162. package/dist/tests/testUtils.js +11 -7
  163. package/dist/tests/testUtils.js.map +1 -1
  164. package/dist/tests/typeEvaluator1.test.js +2 -6
  165. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  166. package/dist/tests/typeEvaluator2.test.js +16 -4
  167. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  168. package/dist/tests/typeEvaluator3.test.js +9 -1
  169. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  170. package/dist/tests/typeEvaluator4.test.js +26 -0
  171. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  172. package/dist/tests/typeEvaluator5.test.js +6 -0
  173. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  174. package/dist/workspaceMap.d.ts +1 -0
  175. package/dist/workspaceMap.js +10 -0
  176. package/dist/workspaceMap.js.map +1 -1
  177. package/package.json +4 -3
@@ -28,7 +28,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  return result;
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.getTypeOfIndexedTypedDict = exports.assignToTypedDict = exports.assignTypedDictToTypedDict = exports.getTypedDictMembersForClass = exports.synthesizeTypedDictClassMethods = exports.createTypedDictType = void 0;
31
+ exports.narrowForKeyAssignment = exports.getTypeOfIndexedTypedDict = exports.assignToTypedDict = exports.assignTypedDictToTypedDict = exports.getTypedDictMembersForClass = exports.synthesizeTypedDictClassMethods = exports.createTypedDictType = void 0;
32
32
  const collectionUtils_1 = require("../common/collectionUtils");
33
33
  const debug_1 = require("../common/debug");
34
34
  const diagnostic_1 = require("../common/diagnostic");
@@ -432,7 +432,9 @@ function getTypedDictMembersForClassRecursive(evaluator, classType, keyMap, recu
432
432
  recursionCount++;
433
433
  classType.details.baseClasses.forEach((baseClassType) => {
434
434
  if ((0, types_1.isInstantiableClass)(baseClassType) && types_1.ClassType.isTypedDictClass(baseClassType)) {
435
- getTypedDictMembersForClassRecursive(evaluator, baseClassType, keyMap, recursionCount);
435
+ const specializedBaseClassType = (0, typeUtils_1.partiallySpecializeType)(baseClassType, classType);
436
+ (0, debug_1.assert)((0, types_1.isClass)(specializedBaseClassType));
437
+ getTypedDictMembersForClassRecursive(evaluator, specializedBaseClassType, keyMap, recursionCount);
436
438
  }
437
439
  });
438
440
  const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(classType);
@@ -609,7 +611,7 @@ exports.assignToTypedDict = assignToTypedDict;
609
611
  function getTypeOfIndexedTypedDict(evaluator, node, baseType, usage) {
610
612
  if (node.items.length !== 1) {
611
613
  evaluator.addError(localize_1.Localizer.Diagnostic.typeArgsMismatchOne().format({ received: node.items.length }), node);
612
- return { node, type: types_1.UnknownType.create() };
614
+ return { type: types_1.UnknownType.create() };
613
615
  }
614
616
  // Look for subscript types that are not supported by TypedDict.
615
617
  if (node.trailingComma || node.items[0].name || node.items[0].argumentCategory !== 0 /* Simple */) {
@@ -690,7 +692,28 @@ function getTypeOfIndexedTypedDict(evaluator, node, baseType, usage) {
690
692
  ? diagnosticRules_1.DiagnosticRule.reportTypedDictNotRequiredAccess
691
693
  : diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, typedDictDiag + diag.getString(), node);
692
694
  }
693
- return { node, type: resultingType, isIncomplete: !!indexTypeResult.isIncomplete };
695
+ return { type: resultingType, isIncomplete: !!indexTypeResult.isIncomplete };
694
696
  }
695
697
  exports.getTypeOfIndexedTypedDict = getTypeOfIndexedTypedDict;
698
+ // If the specified type has a non-required key, this method marks the
699
+ // key as present.
700
+ function narrowForKeyAssignment(classType, key) {
701
+ var _a;
702
+ (0, debug_1.assert)(types_1.ClassType.isTypedDictClass(classType));
703
+ (0, debug_1.assert)(classType.details.typedDictEntries);
704
+ const tdEntry = classType.details.typedDictEntries.get(key);
705
+ if (!tdEntry || tdEntry.isRequired) {
706
+ return classType;
707
+ }
708
+ const narrowedTdEntry = (_a = classType.typedDictNarrowedEntries) === null || _a === void 0 ? void 0 : _a.get(key);
709
+ if (narrowedTdEntry === null || narrowedTdEntry === void 0 ? void 0 : narrowedTdEntry.isProvided) {
710
+ return classType;
711
+ }
712
+ const narrowedEntries = classType.typedDictNarrowedEntries
713
+ ? new Map(classType.typedDictNarrowedEntries)
714
+ : new Map();
715
+ narrowedEntries.set(key, { isProvided: true, isRequired: false, valueType: tdEntry.valueType });
716
+ return types_1.ClassType.cloneForNarrowedTypedDictEntries(classType, narrowedEntries);
717
+ }
718
+ exports.narrowForKeyAssignment = narrowForKeyAssignment;
696
719
  //# sourceMappingURL=typedDicts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedDicts.js","sourceRoot":"","sources":["../../../src/analyzer/typedDicts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typedDicts.js","sourceRoot":"","sources":["../../../src/analyzer/typedDicts.ts"],"names":[],"mappings":"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"}
@@ -188,7 +188,7 @@ export interface ClassType extends TypeBase {
188
188
  }
189
189
  export declare namespace ClassType {
190
190
  function createInstantiable(name: string, fullName: string, moduleName: string, filePath: string, flags: ClassTypeFlags, typeSourceId: TypeSourceId, declaredMetaclass: ClassType | UnknownType | undefined, effectiveMetaclass: ClassType | UnknownType | undefined, docString?: string): ClassType;
191
- function cloneAsInstance(type: ClassType): ClassType;
191
+ function cloneAsInstance(type: ClassType, includeSubclasses?: boolean): ClassType;
192
192
  function cloneAsInstantiable(objectType: ClassType): ClassType;
193
193
  function cloneForSpecialization(classType: ClassType, typeArguments: Type[] | undefined, isTypeArgumentExplicit: boolean, includeSubclasses?: boolean, tupleTypeArguments?: TupleTypeArgument[], isEmptyContainer?: boolean): ClassType;
194
194
  function cloneWithLiteral(classType: ClassType, value: LiteralValue | undefined): ClassType;
@@ -199,6 +199,8 @@ export declare namespace ClassType {
199
199
  function cloneForSymbolTableUpdate(classType: ClassType): ClassType;
200
200
  function cloneForUnpacked(classType: ClassType, isUnpacked?: boolean): ClassType;
201
201
  function isLiteralValueSame(type1: ClassType, type2: ClassType): boolean;
202
+ function isTypedDictNarrowedEntriesSame(type1: ClassType, type2: ClassType): boolean;
203
+ function isTypedDictNarrower(type1: ClassType, type2: ClassType): boolean;
202
204
  function isUnspecialized(classType: ClassType): boolean;
203
205
  function isSpecialBuiltIn(classType: ClassType, className?: string): boolean;
204
206
  function isBuiltIn(classType: ClassType, className?: string | string[]): boolean;
@@ -291,11 +293,16 @@ export interface SpecializedFunctionTypes {
291
293
  parameterDefaultArgs?: (Type | undefined)[];
292
294
  returnType?: Type | undefined;
293
295
  }
296
+ export interface CallSiteInferenceTypeCacheEntry {
297
+ paramTypes: Type[];
298
+ returnType: Type;
299
+ }
294
300
  export interface FunctionType extends TypeBase {
295
301
  category: TypeCategory.Function;
296
302
  details: FunctionDetails;
297
303
  specializedTypes?: SpecializedFunctionTypes | undefined;
298
304
  inferredReturnType?: Type | undefined;
305
+ callSiteReturnTypeCache?: CallSiteInferenceTypeCacheEntry[];
299
306
  strippedFirstParamType?: Type | undefined;
300
307
  boundToType?: ClassType | undefined;
301
308
  preBoundFlags?: FunctionTypeFlags;
@@ -354,6 +361,8 @@ export interface OverloadedFunctionType extends TypeBase {
354
361
  export declare namespace OverloadedFunctionType {
355
362
  function create(overloads: FunctionType[]): OverloadedFunctionType;
356
363
  function addOverload(type: OverloadedFunctionType, functionType: FunctionType): void;
364
+ function getOverloads(type: OverloadedFunctionType): FunctionType[];
365
+ function getImplementation(type: OverloadedFunctionType): FunctionType | undefined;
357
366
  }
358
367
  export interface NoneType extends TypeBase {
359
368
  category: TypeCategory.None;
@@ -402,9 +411,10 @@ export declare namespace UnionType {
402
411
  }
403
412
  export declare const enum Variance {
404
413
  Auto = 0,
405
- Invariant = 1,
406
- Covariant = 2,
407
- Contravariant = 3
414
+ Unknown = 1,
415
+ Invariant = 2,
416
+ Covariant = 3,
417
+ Contravariant = 4
408
418
  }
409
419
  export interface TypeVarDetails {
410
420
  name: string;
@@ -456,7 +466,7 @@ export declare namespace TypeVarType {
456
466
  function addConstraint(typeVarType: TypeVarType, constraintType: Type): void;
457
467
  function getNameWithScope(typeVarType: TypeVarType): string;
458
468
  function getReadableName(typeVarType: TypeVarType): string;
459
- function getVariance(type: TypeVarType): Variance.Invariant | Variance.Covariant | Variance.Contravariant;
469
+ function getVariance(type: TypeVarType): Variance.Unknown | Variance.Invariant | Variance.Covariant | Variance.Contravariant;
460
470
  }
461
471
  export declare function isNever(type: Type): type is NeverType;
462
472
  export declare function isNoneInstance(type: Type): type is NoneType;
@@ -218,7 +218,7 @@ var ModuleType;
218
218
  if (!symbol) {
219
219
  symbol = moduleType.loaderFields.get(name);
220
220
  }
221
- else if (symbol.isExternallyHidden()) {
221
+ else {
222
222
  // If the symbol is hidden when accessed via the module but is
223
223
  // also accessible through a loader field, use the latter so it
224
224
  // isn't flagged as an error.
@@ -336,13 +336,15 @@ var ClassType;
336
336
  return newClass;
337
337
  }
338
338
  ClassType.createInstantiable = createInstantiable;
339
- function cloneAsInstance(type) {
339
+ function cloneAsInstance(type, includeSubclasses = true) {
340
340
  if (TypeBase.isInstance(type)) {
341
341
  return type;
342
342
  }
343
343
  const newInstance = TypeBase.cloneTypeAsInstance(type);
344
344
  newInstance.flags &= ~8 /* SpecialForm */;
345
- newInstance.includeSubclasses = true;
345
+ if (includeSubclasses) {
346
+ newInstance.includeSubclasses = true;
347
+ }
346
348
  return newInstance;
347
349
  }
348
350
  ClassType.cloneAsInstance = cloneAsInstance;
@@ -433,6 +435,60 @@ var ClassType;
433
435
  return type1.literalValue === type2.literalValue;
434
436
  }
435
437
  ClassType.isLiteralValueSame = isLiteralValueSame;
438
+ // Determines whether two typed dict classes are equivalent given
439
+ // that one or both have narrowed entries (i.e. entries that are
440
+ // guaranteed to be present).
441
+ function isTypedDictNarrowedEntriesSame(type1, type2) {
442
+ if (type1.typedDictNarrowedEntries) {
443
+ if (!type2.typedDictNarrowedEntries) {
444
+ return false;
445
+ }
446
+ const tdEntries1 = type1.typedDictNarrowedEntries;
447
+ const tdEntries2 = type2.typedDictNarrowedEntries;
448
+ if (tdEntries1.size !== tdEntries2.size) {
449
+ return false;
450
+ }
451
+ let key;
452
+ let entry1;
453
+ for ([key, entry1] of tdEntries1.entries()) {
454
+ const entry2 = tdEntries2.get(key);
455
+ if (!entry2) {
456
+ return false;
457
+ }
458
+ if (entry1.isProvided !== entry2.isProvided) {
459
+ return false;
460
+ }
461
+ }
462
+ }
463
+ else if (type2.typedDictNarrowedEntries) {
464
+ return false;
465
+ }
466
+ return true;
467
+ }
468
+ ClassType.isTypedDictNarrowedEntriesSame = isTypedDictNarrowedEntriesSame;
469
+ // Determines whether typed dict class type1 is a narrower form of type2,
470
+ // i.e. all of the "narrowed entries" found within type2 are also found
471
+ // within type1.
472
+ function isTypedDictNarrower(type1, type2) {
473
+ var _a;
474
+ const tdEntries2 = type2.typedDictNarrowedEntries;
475
+ if (!tdEntries2) {
476
+ return false;
477
+ }
478
+ const tdEntries1 = (_a = type1.typedDictNarrowedEntries) !== null && _a !== void 0 ? _a : new Map();
479
+ let key;
480
+ let entry2;
481
+ for ([key, entry2] of tdEntries2.entries()) {
482
+ if (entry2.isProvided) {
483
+ const entry1 = tdEntries1.get(key);
484
+ if (!(entry1 === null || entry1 === void 0 ? void 0 : entry1.isProvided)) {
485
+ return false;
486
+ }
487
+ }
488
+ }
489
+ return true;
490
+ }
491
+ ClassType.isTypedDictNarrower = isTypedDictNarrower;
436
492
  // Is the class generic but not specialized?
437
493
  function isUnspecialized(classType) {
438
494
  return classType.details.typeParameters.length > 0 && classType.typeArguments === undefined;
@@ -917,6 +973,11 @@ var FunctionType;
917
973
  newFunction.details = { ...type.details };
918
974
  // Remove the last two parameters, which are the *args and **kwargs.
919
975
  newFunction.details.parameters = newFunction.details.parameters.slice(0, newFunction.details.parameters.length - 2);
976
+ // Update the flags of the function.
977
+ newFunction.details.flags &= ~32768 /* SkipArgsKwargsCompatibilityCheck */;
978
+ if (paramSpecValue.flags & 32768 /* SkipArgsKwargsCompatibilityCheck */) {
979
+ newFunction.details.flags |= 32768 /* SkipArgsKwargsCompatibilityCheck */;
980
+ }
920
981
  // If there is a position-only separator in the captured param spec signature,
921
982
  // remove the position-only separator in the existing signature. Otherwise,
922
983
  // we'll end up with redundant position-only separators.
@@ -1136,10 +1197,19 @@ var OverloadedFunctionType;
1136
1197
  return newType;
1137
1198
  }
1138
1199
  OverloadedFunctionType.create = create;
1200
+ // Adds a new overload or an implementation.
1139
1201
  function addOverload(type, functionType) {
1140
1202
  type.overloads.push(functionType);
1141
1203
  }
1142
1204
  OverloadedFunctionType.addOverload = addOverload;
1205
+ function getOverloads(type) {
1206
+ return type.overloads.filter((func) => FunctionType.isOverloaded(func));
1207
+ }
1208
+ OverloadedFunctionType.getOverloads = getOverloads;
1209
+ function getImplementation(type) {
1210
+ return type.overloads.find((func) => !FunctionType.isOverloaded(func));
1211
+ }
1212
+ OverloadedFunctionType.getImplementation = getImplementation;
1143
1213
  })(OverloadedFunctionType = exports.OverloadedFunctionType || (exports.OverloadedFunctionType = {}));
1144
1214
  var NoneType;
1145
1215
  (function (NoneType) {
@@ -1336,9 +1406,10 @@ var UnionType;
1336
1406
  var Variance;
1337
1407
  (function (Variance) {
1338
1408
  Variance[Variance["Auto"] = 0] = "Auto";
1339
- Variance[Variance["Invariant"] = 1] = "Invariant";
1340
- Variance[Variance["Covariant"] = 2] = "Covariant";
1341
- Variance[Variance["Contravariant"] = 3] = "Contravariant";
1409
+ Variance[Variance["Unknown"] = 1] = "Unknown";
1410
+ Variance[Variance["Invariant"] = 2] = "Invariant";
1411
+ Variance[Variance["Covariant"] = 3] = "Covariant";
1412
+ Variance[Variance["Contravariant"] = 4] = "Contravariant";
1342
1413
  })(Variance = exports.Variance || (exports.Variance = {}));
1343
1414
  var TypeVarScopeType;
1344
1415
  (function (TypeVarScopeType) {
@@ -1404,14 +1475,14 @@ var TypeVarType;
1404
1475
  if (type.details.declaredVariance === 0 /* Auto */) {
1405
1476
  return type;
1406
1477
  }
1407
- if (type.details.declaredVariance === 1 /* Invariant */) {
1478
+ if (type.details.declaredVariance === 2 /* Invariant */) {
1408
1479
  if (type.details.boundType === undefined && type.details.constraints.length === 0) {
1409
1480
  return type;
1410
1481
  }
1411
1482
  }
1412
1483
  const newInstance = TypeBase.cloneType(type);
1413
1484
  newInstance.details = { ...newInstance.details };
1414
- newInstance.details.declaredVariance = 1 /* Invariant */;
1485
+ newInstance.details.declaredVariance = 2 /* Invariant */;
1415
1486
  newInstance.details.boundType = undefined;
1416
1487
  newInstance.details.constraints = [];
1417
1488
  return newInstance;
@@ -1441,7 +1512,7 @@ var TypeVarType;
1441
1512
  details: {
1442
1513
  name,
1443
1514
  constraints: [],
1444
- declaredVariance: 1 /* Invariant */,
1515
+ declaredVariance: 2 /* Invariant */,
1445
1516
  isParamSpec,
1446
1517
  isVariadic: false,
1447
1518
  isSynthesized: false,
@@ -1654,6 +1725,9 @@ function isTypeSame(type1, type2, ignorePseudoGeneric = false, ignoreTypeFlags =
1654
1725
  if (!ClassType.isLiteralValueSame(type1, classType2)) {
1655
1726
  return false;
1656
1727
  }
1728
+ if (!ClassType.isTypedDictNarrowedEntriesSame(type1, classType2)) {
1729
+ return false;
1730
+ }
1657
1731
  return true;
1658
1732
  }
1659
1733
  case 5 /* Function */: {
@@ -2014,12 +2088,25 @@ function _addTypeIfUnique(unionType, typeToAdd) {
2014
2088
  return;
2015
2089
  }
2016
2090
  }
2091
+ const isPseudoGeneric = isClass(typeToAdd) && ClassType.isPseudoGenericClass(typeToAdd);
2017
2092
  for (let i = 0; i < unionType.subtypes.length; i++) {
2018
2093
  const type = unionType.subtypes[i];
2019
2094
  // Does this type already exist in the types array?
2020
2095
  if (isTypeSame(type, typeToAdd)) {
2021
2096
  return;
2022
2097
  }
2098
+ // Handle the case where pseudo-generic classes with different
2099
+ // type arguments are being combined. Rather than add multiple
2100
+ // specialized types, we will replace them with a single specialized
2101
+ // type that is specialized with Unknowns. This is important because
2102
+ // we can hit recursive cases (where a pseudo-generic class is
2103
+ // parameterized with its own class) ad infinitum.
2104
+ if (isPseudoGeneric) {
2105
+ if (isTypeSame(type, typeToAdd, /* ignorePseudoGeneric */ true)) {
2106
+ unionType.subtypes[i] = ClassType.cloneForSpecialization(typeToAdd, typeToAdd.details.typeParameters.map(() => UnknownType.create()),
2107
+ /* isTypeArgumentExplicit */ true);
2108
+ }
2109
+ }
2023
2110
  // If the typeToAdd is a literal value and there's already
2024
2111
  // a non-literal type that matches, don't add the literal value.
2025
2112
  if (isClassInstance(type) && isClassInstance(typeToAdd)) {
@@ -2039,6 +2126,17 @@ function _addTypeIfUnique(unionType, typeToAdd) {
2039
2126
  return;
2040
2127
  }
2041
2128
  }
2129
+ // If the typeToAdd is a TypedDict that is the same class as the
2130
+ // existing type, see if one of them is a proper subset of the other.
2131
+ if (ClassType.isTypedDictClass(type) && ClassType.isSameGenericClass(type, typeToAdd)) {
2132
+ if (ClassType.isTypedDictNarrower(typeToAdd, type)) {
2133
+ return;
2134
+ }
2135
+ else if (ClassType.isTypedDictNarrower(type, typeToAdd)) {
2136
+ unionType.subtypes[i] = typeToAdd;
2137
+ return;
2138
+ }
2139
+ }
2042
2140
  }
2043
2141
  // If the typeToAdd is an empty container and there's already
2044
2142
  // non-empty container of the same type, don't add the empty container.