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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +0 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +11 -7
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/cacheManager.d.ts +11 -0
  6. package/dist/analyzer/cacheManager.js +59 -2
  7. package/dist/analyzer/cacheManager.js.map +1 -1
  8. package/dist/analyzer/checker.d.ts +2 -2
  9. package/dist/analyzer/checker.js +8 -8
  10. package/dist/analyzer/checker.js.map +1 -1
  11. package/dist/analyzer/codeFlowEngine.js +14 -2
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowTypes.d.ts +1 -0
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +20 -3
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/constructorTransform.js +2 -2
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/dataClasses.js +5 -6
  20. package/dist/analyzer/dataClasses.js.map +1 -1
  21. package/dist/analyzer/enums.js +7 -3
  22. package/dist/analyzer/enums.js.map +1 -1
  23. package/dist/analyzer/functionTransform.js +1 -1
  24. package/dist/analyzer/functionTransform.js.map +1 -1
  25. package/dist/analyzer/importStatementUtils.d.ts +6 -6
  26. package/dist/analyzer/importStatementUtils.js +42 -42
  27. package/dist/analyzer/importStatementUtils.js.map +1 -1
  28. package/dist/analyzer/namedTuples.js +1 -1
  29. package/dist/analyzer/namedTuples.js.map +1 -1
  30. package/dist/analyzer/packageTypeVerifier.js +6 -6
  31. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  32. package/dist/analyzer/parseTreeUtils.d.ts +6 -5
  33. package/dist/analyzer/parseTreeUtils.js +12 -13
  34. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  35. package/dist/analyzer/patternMatching.js +1 -1
  36. package/dist/analyzer/patternMatching.js.map +1 -1
  37. package/dist/analyzer/program.d.ts +4 -3
  38. package/dist/analyzer/program.js +21 -12
  39. package/dist/analyzer/program.js.map +1 -1
  40. package/dist/analyzer/properties.js +10 -10
  41. package/dist/analyzer/properties.js.map +1 -1
  42. package/dist/analyzer/protocols.js +5 -5
  43. package/dist/analyzer/protocols.js.map +1 -1
  44. package/dist/analyzer/service.d.ts +3 -2
  45. package/dist/analyzer/service.js +7 -4
  46. package/dist/analyzer/service.js.map +1 -1
  47. package/dist/analyzer/sourceFile.d.ts +5 -3
  48. package/dist/analyzer/sourceFile.js +108 -71
  49. package/dist/analyzer/sourceFile.js.map +1 -1
  50. package/dist/analyzer/sourceFileInfoUtils.js +1 -1
  51. package/dist/analyzer/sourceMapper.js +6 -6
  52. package/dist/analyzer/symbol.d.ts +4 -1
  53. package/dist/analyzer/symbol.js +10 -0
  54. package/dist/analyzer/symbol.js.map +1 -1
  55. package/dist/analyzer/symbolUtils.d.ts +1 -0
  56. package/dist/analyzer/symbolUtils.js +11 -1
  57. package/dist/analyzer/symbolUtils.js.map +1 -1
  58. package/dist/analyzer/typeDocStringUtils.js +1 -1
  59. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  60. package/dist/analyzer/typeEvaluator.js +106 -49
  61. package/dist/analyzer/typeEvaluator.js.map +1 -1
  62. package/dist/analyzer/typeGuards.js +2 -2
  63. package/dist/analyzer/typeGuards.js.map +1 -1
  64. package/dist/analyzer/typeStubWriter.js +1 -1
  65. package/dist/analyzer/typeStubWriter.js.map +1 -1
  66. package/dist/analyzer/typeUtils.js +13 -16
  67. package/dist/analyzer/typeUtils.js.map +1 -1
  68. package/dist/analyzer/typedDicts.js +29 -20
  69. package/dist/analyzer/typedDicts.js.map +1 -1
  70. package/dist/analyzer/types.d.ts +5 -1
  71. package/dist/analyzer/types.js +20 -0
  72. package/dist/analyzer/types.js.map +1 -1
  73. package/dist/backgroundAnalysis.d.ts +1 -0
  74. package/dist/backgroundAnalysis.js +5 -1
  75. package/dist/backgroundAnalysis.js.map +1 -1
  76. package/dist/backgroundAnalysisBase.d.ts +2 -1
  77. package/dist/backgroundAnalysisBase.js +5 -0
  78. package/dist/backgroundAnalysisBase.js.map +1 -1
  79. package/dist/backgroundThreadBase.d.ts +1 -0
  80. package/dist/backgroundThreadBase.js +5 -1
  81. package/dist/backgroundThreadBase.js.map +1 -1
  82. package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
  83. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  84. package/dist/common/extensibility.d.ts +3 -2
  85. package/dist/common/extensibility.js.map +1 -1
  86. package/dist/common/serviceProviderExtensions.d.ts +2 -0
  87. package/dist/common/serviceProviderExtensions.js +4 -0
  88. package/dist/common/serviceProviderExtensions.js.map +1 -1
  89. package/dist/common/textEditTracker.d.ts +5 -5
  90. package/dist/common/textEditTracker.js +33 -33
  91. package/dist/common/textEditTracker.js.map +1 -1
  92. package/dist/common/workspaceEditUtils.js +2 -2
  93. package/dist/common/workspaceEditUtils.js.map +1 -1
  94. package/dist/languageServerBase.d.ts +4 -4
  95. package/dist/languageServerBase.js +1 -1
  96. package/dist/languageServerBase.js.map +1 -1
  97. package/dist/languageService/autoImporter.d.ts +3 -3
  98. package/dist/languageService/autoImporter.js +2 -1
  99. package/dist/languageService/autoImporter.js.map +1 -1
  100. package/dist/languageService/callHierarchyProvider.js +2 -2
  101. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  102. package/dist/languageService/completionProvider.d.ts +2 -2
  103. package/dist/languageService/completionProvider.js +8 -9
  104. package/dist/languageService/completionProvider.js.map +1 -1
  105. package/dist/languageService/definitionProvider.js +1 -1
  106. package/dist/languageService/definitionProvider.js.map +1 -1
  107. package/dist/languageService/documentHighlightProvider.js +2 -2
  108. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  109. package/dist/languageService/documentSymbolCollector.js +1 -1
  110. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  111. package/dist/languageService/documentSymbolProvider.js +1 -1
  112. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  113. package/dist/languageService/hoverProvider.js +2 -2
  114. package/dist/languageService/hoverProvider.js.map +1 -1
  115. package/dist/languageService/importSorter.d.ts +2 -2
  116. package/dist/languageService/importSorter.js +1 -1
  117. package/dist/languageService/importSorter.js.map +1 -1
  118. package/dist/languageService/referencesProvider.d.ts +4 -4
  119. package/dist/languageService/referencesProvider.js +2 -2
  120. package/dist/languageService/referencesProvider.js.map +1 -1
  121. package/dist/languageService/signatureHelpProvider.js +2 -2
  122. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  123. package/dist/languageService/symbolIndexer.d.ts +2 -2
  124. package/dist/languageService/symbolIndexer.js +1 -1
  125. package/dist/languageService/symbolIndexer.js.map +1 -1
  126. package/dist/languageService/workspaceSymbolProvider.js +1 -1
  127. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  128. package/dist/localization/localize.d.ts +3 -0
  129. package/dist/localization/localize.js +1 -0
  130. package/dist/localization/localize.js.map +1 -1
  131. package/dist/localization/package.nls.en-us.json +1 -0
  132. package/dist/nodeMain.d.ts +1 -1
  133. package/dist/nodeMain.js +2 -2
  134. package/dist/nodeMain.js.map +1 -1
  135. package/dist/parser/parser.d.ts +7 -4
  136. package/dist/parser/parser.js +7 -5
  137. package/dist/parser/parser.js.map +1 -1
  138. package/dist/server.d.ts +3 -3
  139. package/dist/server.js +3 -3
  140. package/dist/server.js.map +1 -1
  141. package/dist/tests/cacheManager.test.js +35 -0
  142. package/dist/tests/cacheManager.test.js.map +1 -1
  143. package/dist/tests/chainedSourceFiles.test.js +7 -7
  144. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  145. package/dist/tests/harness/fourslash/testState.d.ts +4 -4
  146. package/dist/tests/harness/fourslash/testState.js +6 -5
  147. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  148. package/dist/tests/importStatementUtils.test.js +4 -4
  149. package/dist/tests/importStatementUtils.test.js.map +1 -1
  150. package/dist/tests/ipythonMode.test.js +1 -1
  151. package/dist/tests/ipythonMode.test.js.map +1 -1
  152. package/dist/tests/lsp/languageServer.js +1 -1
  153. package/dist/tests/lsp/languageServer.js.map +1 -1
  154. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  155. package/dist/tests/parser.test.js +14 -14
  156. package/dist/tests/parser.test.js.map +1 -1
  157. package/dist/tests/signatureHelp.test.js +1 -1
  158. package/dist/tests/signatureHelp.test.js.map +1 -1
  159. package/dist/tests/testStateUtils.js +5 -3
  160. package/dist/tests/testStateUtils.js.map +1 -1
  161. package/dist/tests/testUtils.d.ts +4 -8
  162. package/dist/tests/testUtils.js +4 -7
  163. package/dist/tests/testUtils.js.map +1 -1
  164. package/dist/tests/textEditUtil.test.js +3 -3
  165. package/dist/tests/textEditUtil.test.js.map +1 -1
  166. package/dist/tests/typeEvaluator1.test.js +1 -1
  167. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  168. package/dist/tests/typeEvaluator3.test.js +10 -4
  169. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  170. package/package.json +1 -1
@@ -13,7 +13,8 @@ export declare const enum SymbolFlags {
13
13
  PrivatePyTypedImport = 512,
14
14
  InitVar = 1024,
15
15
  NamedTupleMember = 2048,
16
- IgnoredForOverrideChecks = 4096
16
+ IgnoredForOverrideChecks = 4096,
17
+ FinalVarInClassBody = 8192
17
18
  }
18
19
  export declare const indeterminateSymbolId = 0;
19
20
  export declare class Symbol {
@@ -34,6 +35,8 @@ export declare class Symbol {
34
35
  isInstanceMember(): boolean;
35
36
  setIsClassVar(): void;
36
37
  isClassVar(): boolean;
38
+ setIsFinalVarInClassBody(): void;
39
+ isFinalVarInClassBody(): boolean;
37
40
  setIsInitVar(): void;
38
41
  isInitVar(): boolean;
39
42
  setIsInDunderAll(): void;
@@ -48,6 +48,10 @@ var SymbolFlags;
48
48
  SymbolFlags[SymbolFlags["NamedTupleMember"] = 2048] = "NamedTupleMember";
49
49
  // Indicates that the symbol should be exempt from override type checks.
50
50
  SymbolFlags[SymbolFlags["IgnoredForOverrideChecks"] = 4096] = "IgnoredForOverrideChecks";
51
+ // Indicates that the symbol is marked Final and is assigned a value
52
+ // in the class body. The typing spec indicates that these should be
53
+ // considered ClassVars unless they are found in a dataclass.
54
+ SymbolFlags[SymbolFlags["FinalVarInClassBody"] = 8192] = "FinalVarInClassBody";
51
55
  })(SymbolFlags || (exports.SymbolFlags = SymbolFlags = {}));
52
56
  let nextSymbolId = 1;
53
57
  function getUniqueSymbolId() {
@@ -98,6 +102,12 @@ class Symbol {
98
102
  isClassVar() {
99
103
  return !!(this._flags & 128 /* SymbolFlags.ClassVar */);
100
104
  }
105
+ setIsFinalVarInClassBody() {
106
+ this._flags |= 8192 /* SymbolFlags.FinalVarInClassBody */;
107
+ }
108
+ isFinalVarInClassBody() {
109
+ return !!(this._flags & 8192 /* SymbolFlags.FinalVarInClassBody */);
110
+ }
101
111
  setIsInitVar() {
102
112
  this._flags |= 1024 /* SymbolFlags.InitVar */;
103
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbol.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ import { Symbol } from './symbol';
3
3
  export declare function getLastTypedDeclaredForSymbol(symbol: Symbol): Declaration | undefined;
4
4
  export declare function isTypedDictMemberAccessedThroughIndex(symbol: Symbol): boolean;
5
5
  export declare function isVisibleExternally(symbol: Symbol): boolean;
6
+ export declare function isEffectivelyClassVar(symbol: Symbol, isInDataclass: boolean): boolean;
@@ -8,7 +8,7 @@
8
8
  * Functions that operate on Symbol objects.
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.isVisibleExternally = exports.isTypedDictMemberAccessedThroughIndex = exports.getLastTypedDeclaredForSymbol = void 0;
11
+ exports.isEffectivelyClassVar = exports.isVisibleExternally = exports.isTypedDictMemberAccessedThroughIndex = exports.getLastTypedDeclaredForSymbol = void 0;
12
12
  function getLastTypedDeclaredForSymbol(symbol) {
13
13
  const typedDecls = symbol.getTypedDeclarations();
14
14
  if (typedDecls.length > 0) {
@@ -34,4 +34,14 @@ function isVisibleExternally(symbol) {
34
34
  return !symbol.isExternallyHidden() && !symbol.isPrivatePyTypedImport();
35
35
  }
36
36
  exports.isVisibleExternally = isVisibleExternally;
37
+ function isEffectivelyClassVar(symbol, isInDataclass) {
38
+ if (symbol.isClassVar()) {
39
+ return true;
40
+ }
41
+ if (symbol.isFinalVarInClassBody()) {
42
+ return !isInDataclass;
43
+ }
44
+ return false;
45
+ }
46
+ exports.isEffectivelyClassVar = isEffectivelyClassVar;
37
47
  //# sourceMappingURL=symbolUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbolUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbolUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAKH,SAAgB,6BAA6B,CAAC,MAAc;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,sEAQC;AAED,mEAAmE;AACnE,0EAA0E;AAC1E,SAAgB,qCAAqC,CAAC,MAAc;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,qCAA6B,EAAE;YAC5C,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAXD,sFAWC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC5E,CAAC;AAFD,kDAEC"}
1
+ {"version":3,"file":"symbolUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbolUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAKH,SAAgB,6BAA6B,CAAC,MAAc;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,sEAQC;AAED,mEAAmE;AACnE,0EAA0E;AAC1E,SAAgB,qCAAqC,CAAC,MAAc;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,qCAA6B,EAAE;YAC5C,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAXD,sFAWC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC5E,CAAC;AAFD,kDAEC;AAED,SAAgB,qBAAqB,CAAC,MAAc,EAAE,aAAsB;IACxE,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE;QAChC,OAAO,CAAC,aAAa,CAAC;KACzB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAVD,sDAUC"}
@@ -264,7 +264,7 @@ function _getPropertyDocStringInherited(decl, sourceMapper, evaluator, classType
264
264
  if (!(0, types_1.isInstantiableClass)(mroClass)) {
265
265
  continue;
266
266
  }
267
- const symbol = mroClass.details.fields.get(fieldName);
267
+ const symbol = types_1.ClassType.getSymbolTable(mroClass).get(fieldName);
268
268
  // Get both the setter and getter declarations
269
269
  const decls = symbol === null || symbol === void 0 ? void 0 : symbol.getDeclarations();
270
270
  if (decls) {
@@ -1 +1 @@
1
- {"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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"}
@@ -2282,7 +2282,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
2282
2282
  // Assignments to instance or class variables through "self" or "cls" is not
2283
2283
  // allowed for protocol classes unless it is also declared within the class.
2284
2284
  if (types_1.ClassType.isProtocolClass(classTypeResults.classType)) {
2285
- const memberSymbol = classTypeResults.classType.details.fields.get(target.memberName.value);
2285
+ const memberSymbol = types_1.ClassType.getSymbolTable(classTypeResults.classType).get(target.memberName.value);
2286
2286
  if (memberSymbol) {
2287
2287
  const classLevelDecls = memberSymbol.getDeclarations().filter((decl) => {
2288
2288
  return !ParseTreeUtils.getEnclosingFunction(decl.node);
@@ -2323,7 +2323,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
2323
2323
  const classTypeInfo = getTypeOfClass(classDef);
2324
2324
  if (classTypeInfo && (0, types_1.isInstantiableClass)(classTypeInfo.classType)) {
2325
2325
  let memberInfo = (0, typeUtils_1.lookUpClassMember)(classTypeInfo.classType, memberName, isInstanceMember ? 0 /* MemberAccessFlags.Default */ : 16 /* MemberAccessFlags.SkipInstanceMembers */);
2326
- const memberFields = classTypeInfo.classType.details.fields;
2326
+ const memberFields = types_1.ClassType.getSymbolTable(classTypeInfo.classType);
2327
2327
  if (memberInfo) {
2328
2328
  // Are we accessing an existing member on this class, or is
2329
2329
  // it a member on a parent class?
@@ -2331,12 +2331,13 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
2331
2331
  const isThisClass = memberClass && types_1.ClassType.isSameGenericClass(classTypeInfo.classType, memberClass);
2332
2332
  // Check for an attempt to write to an instance variable that is
2333
2333
  // not defined by __slots__.
2334
- if (isThisClass && isInstanceMember) {
2335
- if ((memberClass === null || memberClass === void 0 ? void 0 : memberClass.details.inheritedSlotsNames) && memberClass.details.localSlotsNames) {
2334
+ if (isThisClass && isInstanceMember && memberClass) {
2335
+ const inheritedSlotsNames = types_1.ClassType.getInheritedSlotsNames(memberClass);
2336
+ if (inheritedSlotsNames && memberClass.details.localSlotsNames) {
2336
2337
  // Skip this check if the local slots is specified but empty because this pattern
2337
2338
  // is used in a legitimate manner for mix-in classes.
2338
2339
  if (memberClass.details.localSlotsNames.length > 0 &&
2339
- !memberClass.details.inheritedSlotsNames.some((name) => name === memberName)) {
2340
+ !inheritedSlotsNames.some((name) => name === memberName)) {
2340
2341
  // Determine whether the assignment corresponds to a descriptor
2341
2342
  // that was assigned as a class variable. If so, then slots will not
2342
2343
  // apply in this case.
@@ -3771,6 +3772,16 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3771
3772
  if (usage.setExpectedTypeDiag) {
3772
3773
  diag = usage.setExpectedTypeDiag;
3773
3774
  }
3775
+ // If the class is a TypedDict, and there's a key with the same name,
3776
+ // suggest that they user want to use ["key"] name instead.
3777
+ if ((0, types_1.isClass)(baseType) && baseType.details.typedDictEntries) {
3778
+ const tdKey = baseType.details.typedDictEntries.knownItems.get(memberName);
3779
+ if (tdKey) {
3780
+ const subDiag = new diagnostic_1.DiagnosticAddendum();
3781
+ subDiag.addMessage(localize_1.LocAddendum.typedDictKeyAccess().format({ name: memberName }));
3782
+ diag.addAddendum(subDiag);
3783
+ }
3784
+ }
3774
3785
  const rule = isFunctionRule
3775
3786
  ? diagnosticRules_1.DiagnosticRule.reportFunctionMemberAccess
3776
3787
  : diagnosticRules_1.DiagnosticRule.reportAttributeAccessIssue;
@@ -3842,7 +3853,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3842
3853
  // this is normally considered a type violation. But it is allowed
3843
3854
  // if the class variable is a descriptor object. In this case, we will
3844
3855
  // clear the flag that causes an error to be generated.
3845
- if (usage.method === 'set' && memberInfo.symbol.isClassVar() && isAccessedThroughObject) {
3856
+ if (usage.method === 'set' &&
3857
+ (0, symbolUtils_1.isEffectivelyClassVar)(memberInfo.symbol, types_1.ClassType.isDataClass(containingClassType)) &&
3858
+ isAccessedThroughObject) {
3846
3859
  const selfClass = (selfType !== null && selfType !== void 0 ? selfType : memberName === '__new__') ? undefined : classType;
3847
3860
  const typeResult = getTypeOfMemberInternal(errorNode, memberInfo, selfClass, flags);
3848
3861
  if (typeResult) {
@@ -3942,7 +3955,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3942
3955
  }
3943
3956
  // Check for an attempt to overwrite or delete a ClassVar member from an instance.
3944
3957
  if (!isDescriptorApplied &&
3945
- (memberInfo === null || memberInfo === void 0 ? void 0 : memberInfo.symbol.isClassVar()) &&
3958
+ memberInfo &&
3959
+ (0, symbolUtils_1.isEffectivelyClassVar)(memberInfo.symbol, types_1.ClassType.isDataClass(classType)) &&
3946
3960
  (flags & 128 /* MemberAccessFlags.DisallowClassVarWrites */) !== 0) {
3947
3961
  diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.LocAddendum.memberSetClassVar().format({ name: memberName }));
3948
3962
  isDescriptorError = true;
@@ -6620,7 +6634,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6620
6634
  // are more complicated and depend on whether the method is defined in a stub file.
6621
6635
  function getAbstractSymbolInfo(classType, symbolName) {
6622
6636
  const isProtocolClass = types_1.ClassType.isProtocolClass(classType);
6623
- const symbol = classType.details.fields.get(symbolName);
6637
+ const symbol = types_1.ClassType.getSymbolTable(classType).get(symbolName);
6624
6638
  if (!symbol) {
6625
6639
  return undefined;
6626
6640
  }
@@ -9109,7 +9123,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9109
9123
  hasDeclaredType: true,
9110
9124
  });
9111
9125
  initType.details.declaredReturnType = getNoneType();
9112
- classType.details.fields.set('__init__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, initType));
9126
+ types_1.ClassType.getSymbolTable(classType).set('__init__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, initType));
9113
9127
  // Synthesize a trivial __new__ method.
9114
9128
  const newType = types_1.FunctionType.createSynthesizedInstance('__new__', 1 /* FunctionTypeFlags.ConstructorMethod */);
9115
9129
  types_1.FunctionType.addParameter(newType, {
@@ -9121,7 +9135,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9121
9135
  types_1.FunctionType.addDefaultParameters(newType);
9122
9136
  newType.details.declaredReturnType = types_1.ClassType.cloneAsInstance(classType);
9123
9137
  newType.details.constructorTypeVarScopeId = classType.details.typeVarScopeId;
9124
- classType.details.fields.set('__new__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, newType));
9138
+ types_1.ClassType.getSymbolTable(classType).set('__new__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, newType));
9125
9139
  }
9126
9140
  return classType;
9127
9141
  }
@@ -9701,7 +9715,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9701
9715
  return undefined;
9702
9716
  }
9703
9717
  const specializedListOrSet = (0, typeUtils_1.applySolvedTypeVars)(expectedClassType, typeVarContext);
9704
- if (!specializedListOrSet.typeArguments || specializedListOrSet.typeArguments.length !== 1) {
9718
+ if (!specializedListOrSet.typeArguments) {
9705
9719
  return undefined;
9706
9720
  }
9707
9721
  return specializedListOrSet.typeArguments[0];
@@ -10051,7 +10065,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10051
10065
  if (ParseTreeUtils.containsAwaitNode(node.expression)) {
10052
10066
  isAsync = true;
10053
10067
  }
10054
- const expectedEntryType = getExpectedEntryTypeForIterable(node, getTypingType(node, 'Iterable'), inferenceContext);
10068
+ const builtInIteratorType = getTypingType(node, isAsync ? 'AsyncGenerator' : 'Generator');
10069
+ const expectedEntryType = getExpectedEntryTypeForIterable(node, builtInIteratorType, inferenceContext);
10055
10070
  const elementTypeResult = getElementTypeFromListComprehension(node, expectedEntryType);
10056
10071
  if (elementTypeResult.isIncomplete) {
10057
10072
  isIncomplete = true;
@@ -10059,8 +10074,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10059
10074
  if (elementTypeResult.typeErrors) {
10060
10075
  typeErrors = true;
10061
10076
  }
10062
- const elementType = elementTypeResult.type;
10063
- const builtInIteratorType = getTypingType(node, isAsync ? 'AsyncGenerator' : 'Generator');
10077
+ let elementType = elementTypeResult.type;
10078
+ if (!expectedEntryType || !(0, typeUtils_1.containsLiteralType)(expectedEntryType)) {
10079
+ elementType = stripLiteralValue(elementType);
10080
+ }
10064
10081
  if (builtInIteratorType && (0, types_1.isInstantiableClass)(builtInIteratorType)) {
10065
10082
  type = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(builtInIteratorType, isAsync ? [elementType, getNoneType()] : [elementType, getNoneType(), getNoneType()],
10066
10083
  /* isTypeArgumentExplicit */ true));
@@ -11054,6 +11071,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11054
11071
  if (aliasMapEntry.isSpecialForm) {
11055
11072
  specialClassType.details.flags |= -2147483648 /* ClassTypeFlags.SpecialFormClass */;
11056
11073
  }
11074
+ // Synthesize a single type parameter with the specified variance if
11075
+ // specified in the alias map entry.
11076
+ if (aliasMapEntry.typeParamVariance !== undefined) {
11077
+ let typeParam = types_1.TypeVarType.createInstance('T');
11078
+ typeParam = types_1.TypeVarType.cloneForScopeId(typeParam, ParseTreeUtils.getScopeIdForNode(node), assignedName, 0 /* TypeVarScopeType.Class */);
11079
+ typeParam.details.declaredVariance = aliasMapEntry.typeParamVariance;
11080
+ specialClassType.details.typeParameters.push(typeParam);
11081
+ }
11057
11082
  const specialBuiltInClassDeclaration = ((_a = AnalyzerNodeInfo.getDeclaration(node)) !== null && _a !== void 0 ? _a : (node.parent ? AnalyzerNodeInfo.getDeclaration(node.parent) : undefined));
11058
11083
  specialClassType.details.declaration = specialBuiltInClassDeclaration;
11059
11084
  if (fileInfo.isTypingExtensionsStubFile) {
@@ -11124,7 +11149,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11124
11149
  ['Annotated', { alias: '', module: 'builtins', isSpecialForm: true }],
11125
11150
  ['TypeAlias', { alias: '', module: 'builtins', isSpecialForm: true }],
11126
11151
  ['Concatenate', { alias: '', module: 'builtins', isSpecialForm: true }],
11127
- ['TypeGuard', { alias: '', module: 'builtins', isSpecialForm: true }],
11152
+ [
11153
+ 'TypeGuard',
11154
+ { alias: '', module: 'builtins', isSpecialForm: true, typeParamVariance: 3 /* Variance.Covariant */ },
11155
+ ],
11128
11156
  ['Unpack', { alias: '', module: 'builtins', isSpecialForm: true }],
11129
11157
  ['Required', { alias: '', module: 'builtins', isSpecialForm: true }],
11130
11158
  ['NotRequired', { alias: '', module: 'builtins', isSpecialForm: true }],
@@ -11133,7 +11161,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11133
11161
  ['Never', { alias: '', module: 'builtins', isSpecialForm: true }],
11134
11162
  ['LiteralString', { alias: '', module: 'builtins', isSpecialForm: true }],
11135
11163
  ['ReadOnly', { alias: '', module: 'builtins', isSpecialForm: true }],
11136
- ['TypeIs', { alias: '', module: 'builtins', isSpecialForm: true }],
11164
+ ['TypeIs', { alias: '', module: 'builtins', isSpecialForm: true, typeParamVariance: 2 /* Variance.Invariant */ }],
11137
11165
  ]);
11138
11166
  const aliasMapEntry = specialTypes.get(assignedName);
11139
11167
  if (aliasMapEntry) {
@@ -11511,6 +11539,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11511
11539
  // all of the type parameters in the specified order.
11512
11540
  let genericTypeParameters;
11513
11541
  let protocolTypeParameters;
11542
+ let isNamedTupleSubclass = false;
11514
11543
  const initSubclassArgs = [];
11515
11544
  let metaclassNode;
11516
11545
  let exprFlags = 128 /* EvaluatorFlags.ExpectingInstantiableType */ |
@@ -11590,6 +11619,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11590
11619
  // newer), it's considered a (read-only) dataclass.
11591
11620
  if (fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_6)) {
11592
11621
  if (types_1.ClassType.isBuiltIn(argType, 'NamedTuple')) {
11622
+ isNamedTupleSubclass = true;
11593
11623
  classType.details.flags |=
11594
11624
  4 /* ClassTypeFlags.DataClass */ |
11595
11625
  32 /* ClassTypeFlags.SkipSynthesizedDataClassEq */ |
@@ -11948,46 +11978,62 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11948
11978
  // See if there's already a non-synthesized __init__ method.
11949
11979
  // We shouldn't override it.
11950
11980
  if (!skipSynthesizedInit) {
11951
- const initSymbol = (0, typeUtils_1.lookUpClassMember)(classType, '__init__', 2 /* MemberAccessFlags.SkipBaseClasses */);
11952
- if (initSymbol) {
11981
+ const initSymbol = classType.details.fields.get('__init__');
11982
+ if (initSymbol && initSymbol.isClassMember()) {
11953
11983
  hasExistingInitMethod = true;
11954
11984
  }
11955
11985
  }
11956
11986
  let skipSynthesizeHash = false;
11957
- const hashSymbol = (0, typeUtils_1.lookUpClassMember)(classType, '__hash__', 2 /* MemberAccessFlags.SkipBaseClasses */);
11987
+ const hashSymbol = classType.details.fields.get('__hash__');
11958
11988
  // If there is a hash symbol defined in the class (i.e. one that we didn't
11959
11989
  // synthesize above), then we shouldn't synthesize a new one for the dataclass.
11960
- if (hashSymbol && !hashSymbol.symbol.getSynthesizedType()) {
11990
+ if (hashSymbol && hashSymbol.isClassMember() && !hashSymbol.getSynthesizedType()) {
11961
11991
  skipSynthesizeHash = true;
11962
11992
  }
11963
- (0, dataClasses_1.synthesizeDataClassMethods)(evaluatorInterface, node, classType, skipSynthesizedInit, hasExistingInitMethod, skipSynthesizeHash);
11993
+ const synthesizeMethods = () => (0, dataClasses_1.synthesizeDataClassMethods)(evaluatorInterface, node, classType, skipSynthesizedInit, hasExistingInitMethod, skipSynthesizeHash);
11994
+ // If this is a NamedTuple subclass, immediately synthesize dataclass methods
11995
+ // because we also need to update the MRO classes in this case. For regular
11996
+ // dataclasses, we'll defer the method synthesis to avoid circular dependencies.
11997
+ if (isNamedTupleSubclass) {
11998
+ synthesizeMethods();
11999
+ }
12000
+ else {
12001
+ classType.details.synthesizeMethodsDeferred = () => {
12002
+ delete classType.details.synthesizeMethodsDeferred;
12003
+ synthesizeMethods();
12004
+ };
12005
+ }
11964
12006
  }
11965
12007
  // Build a complete list of all slots names defined by the class hierarchy.
11966
12008
  // This needs to be done after dataclass processing.
11967
- if (classType.details.localSlotsNames) {
11968
- let isLimitedToSlots = true;
11969
- const extendedSlotsNames = Array.from(classType.details.localSlotsNames);
11970
- classType.details.baseClasses.forEach((baseClass) => {
11971
- if ((0, types_1.isInstantiableClass)(baseClass)) {
11972
- if (!types_1.ClassType.isBuiltIn(baseClass, 'object') &&
11973
- !types_1.ClassType.isBuiltIn(baseClass, 'type') &&
11974
- !types_1.ClassType.isBuiltIn(baseClass, 'Generic')) {
11975
- if (baseClass.details.inheritedSlotsNames === undefined) {
11976
- isLimitedToSlots = false;
11977
- }
11978
- else {
11979
- (0, collectionUtils_1.appendArray)(extendedSlotsNames, baseClass.details.inheritedSlotsNames);
12009
+ classType.details.calculateInheritedSlotsNamesDeferred = () => {
12010
+ delete classType.details.calculateInheritedSlotsNamesDeferred;
12011
+ if (classType.details.localSlotsNames) {
12012
+ let isLimitedToSlots = true;
12013
+ const extendedSlotsNames = Array.from(classType.details.localSlotsNames);
12014
+ classType.details.baseClasses.forEach((baseClass) => {
12015
+ if ((0, types_1.isInstantiableClass)(baseClass)) {
12016
+ if (!types_1.ClassType.isBuiltIn(baseClass, 'object') &&
12017
+ !types_1.ClassType.isBuiltIn(baseClass, 'type') &&
12018
+ !types_1.ClassType.isBuiltIn(baseClass, 'Generic')) {
12019
+ const inheritedSlotsNames = types_1.ClassType.getInheritedSlotsNames(baseClass);
12020
+ if (inheritedSlotsNames) {
12021
+ (0, collectionUtils_1.appendArray)(extendedSlotsNames, inheritedSlotsNames);
12022
+ }
12023
+ else {
12024
+ isLimitedToSlots = false;
12025
+ }
11980
12026
  }
11981
12027
  }
12028
+ else {
12029
+ isLimitedToSlots = false;
12030
+ }
12031
+ });
12032
+ if (isLimitedToSlots) {
12033
+ classType.details.inheritedSlotsNamesCached = extendedSlotsNames;
11982
12034
  }
11983
- else {
11984
- isLimitedToSlots = false;
11985
- }
11986
- });
11987
- if (isLimitedToSlots) {
11988
- classType.details.inheritedSlotsNames = extendedSlotsNames;
11989
12035
  }
11990
- }
12036
+ };
11991
12037
  // Update the undecorated class type.
11992
12038
  writeTypeCache(node.name, { type: classType }, 0 /* EvaluatorFlags.None */);
11993
12039
  // Update the decorated class type.
@@ -12841,7 +12887,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
12841
12887
  // of the child class.
12842
12888
  if ((0, typeUtils_1.requiresSpecialization)(inferredParamType) && (0, types_1.isClass)(baseClassMemberInfo.classType)) {
12843
12889
  const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(baseClassMemberInfo.classType);
12844
- inferredParamType = (0, typeUtils_1.applySolvedTypeVars)(inferredParamType, typeVarContext);
12890
+ // Add the scope of the method to handle any function-scoped TypeVars.
12891
+ typeVarContext.addSolveForScope(ParseTreeUtils.getScopeIdForNode(baseClassMethodNode));
12892
+ // Replace any unsolved TypeVars with Unknown (including all function-scoped TypeVars).
12893
+ inferredParamType = (0, typeUtils_1.applySolvedTypeVars)(inferredParamType, typeVarContext, {
12894
+ unknownIfNotFound: true,
12895
+ });
12845
12896
  }
12846
12897
  const fileInfo = AnalyzerNodeInfo.getFileInfo(functionNode);
12847
12898
  if (fileInfo.isInPyTypedPackage && !fileInfo.isStubFile) {
@@ -15501,7 +15552,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15501
15552
  // If the symbol is explicitly marked as a ClassVar, consider only the
15502
15553
  // declarations that assign to it from within the class body, not through
15503
15554
  // a member access expression.
15504
- if (symbol.isClassVar() && decl.type === 1 /* DeclarationType.Variable */ && decl.isDefinedByMemberAccess) {
15555
+ if ((0, symbolUtils_1.isEffectivelyClassVar)(symbol, /* isDataclass */ false) &&
15556
+ decl.type === 1 /* DeclarationType.Variable */ &&
15557
+ decl.isDefinedByMemberAccess) {
15505
15558
  return;
15506
15559
  }
15507
15560
  if (usageNode !== undefined) {
@@ -16152,7 +16205,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
16152
16205
  // Stash the current class type so any references to it are treated
16153
16206
  // as though all TypeParameters are invariant.
16154
16207
  assignClassToSelfStack.push({ class: destType, assumedVariance });
16155
- destType.details.fields.forEach((symbol, name) => {
16208
+ types_1.ClassType.getSymbolTable(destType).forEach((symbol, name) => {
16156
16209
  if (!isAssignable || symbol.isIgnoredForProtocolMatch()) {
16157
16210
  return;
16158
16211
  }
@@ -16989,7 +17042,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
16989
17042
  }
16990
17043
  }
16991
17044
  else if (types_1.ClassType.isBuiltIn(destType, ['TypeGuard', 'TypeIs'])) {
16992
- // All the source to be a "bool".
17045
+ // Allow the source to be a "bool".
16993
17046
  if ((originalFlags & 128 /* AssignTypeFlags.AllowBoolTypeGuard */) !== 0) {
16994
17047
  if ((0, types_1.isClassInstance)(srcType) && types_1.ClassType.isBuiltIn(srcType, 'bool')) {
16995
17048
  return true;
@@ -17601,11 +17654,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
17601
17654
  // a normal function wouldn't be compatible with.
17602
17655
  for (const mroClass of objType.details.mro) {
17603
17656
  if ((0, types_1.isClass)(mroClass) && types_1.ClassType.isProtocolClass(mroClass)) {
17604
- for (const field of mroClass.details.fields) {
17657
+ for (const field of types_1.ClassType.getSymbolTable(mroClass)) {
17605
17658
  if (field[0] !== '__call__' && !field[1].isIgnoredForProtocolMatch()) {
17606
17659
  let fieldIsPartOfFunction = false;
17607
17660
  if (functionObj && (0, types_1.isClass)(functionObj)) {
17608
- if (functionObj.details.fields.has(field[0])) {
17661
+ if (types_1.ClassType.getSymbolTable(functionObj).has(field[0])) {
17609
17662
  fieldIsPartOfFunction = true;
17610
17663
  }
17611
17664
  }
@@ -18820,7 +18873,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
18820
18873
  // See if this class is introducing a new abstract symbol that has not been
18821
18874
  // introduced previously or if it is overriding an abstract symbol with
18822
18875
  // a non-abstract one.
18823
- mroClass.details.fields.forEach((symbol, symbolName) => {
18876
+ types_1.ClassType.getSymbolTable(mroClass).forEach((symbol, symbolName) => {
18824
18877
  const abstractSymbolInfo = getAbstractSymbolInfo(mroClass, symbolName);
18825
18878
  if (abstractSymbolInfo) {
18826
18879
  symbolTable.set(symbolName, abstractSymbolInfo);
@@ -19069,11 +19122,15 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
19069
19122
  if (node.strings[0].nodeType === 49 /* ParseNodeType.String */) {
19070
19123
  valueOffset += node.strings[0].token.prefixLength + node.strings[0].token.quoteMarkLength;
19071
19124
  }
19125
+ // Construct a temporary dummy string with the text value at the appropriate
19126
+ // offset so as to mimic the original file. This will keep all of the token
19127
+ // and diagnostic offsets correct.
19128
+ const dummyFileContents = ' '.repeat(valueOffset) + textValue;
19072
19129
  const parseOptions = new parser_1.ParseOptions();
19073
19130
  parseOptions.isStubFile = fileInfo.isStubFile;
19074
19131
  parseOptions.pythonVersion = fileInfo.executionEnvironment.pythonVersion;
19075
19132
  parseOptions.reportErrorsForParsedStringContents = true;
19076
- const parseResults = parser.parseTextExpression(fileInfo.fileContents, valueOffset, textValue.length, parseOptions,
19133
+ const parseResults = parser.parseTextExpression(dummyFileContents, valueOffset, textValue.length, parseOptions,
19077
19134
  /* parseTextMode */ undefined,
19078
19135
  /* initialParenDepth */ undefined, fileInfo.typingSymbolAliases);
19079
19136
  if (parseResults.parseTree && parseResults.parseTree.nodeType !== 62 /* ParseNodeType.FunctionAnnotation */) {