@zzzen/pyright-internal 1.2.0-dev.20230129 → 1.2.0-dev.20230212

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 (237) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  2. package/dist/analyzer/backgroundAnalysisProgram.js +4 -2
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +15 -11
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +2 -1
  7. package/dist/analyzer/checker.js +28 -21
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +3 -2
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +83 -67
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +13 -5
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/declaration.d.ts +2 -0
  16. package/dist/analyzer/declaration.js.map +1 -1
  17. package/dist/analyzer/importResolver.d.ts +1 -1
  18. package/dist/analyzer/importResolver.js +6 -3
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/parameterUtils.d.ts +2 -0
  21. package/dist/analyzer/parameterUtils.js +20 -0
  22. package/dist/analyzer/parameterUtils.js.map +1 -0
  23. package/dist/analyzer/parseTreeUtils.d.ts +3 -1
  24. package/dist/analyzer/parseTreeUtils.js +54 -12
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/parseTreeWalker.d.ts +1 -1
  27. package/dist/analyzer/program.d.ts +6 -3
  28. package/dist/analyzer/program.js +78 -19
  29. package/dist/analyzer/program.js.map +1 -1
  30. package/dist/analyzer/service.d.ts +0 -2
  31. package/dist/analyzer/service.js +8 -8
  32. package/dist/analyzer/service.js.map +1 -1
  33. package/dist/analyzer/sourceFile.d.ts +3 -7
  34. package/dist/analyzer/sourceFile.js +3 -19
  35. package/dist/analyzer/sourceFile.js.map +1 -1
  36. package/dist/analyzer/testWalker.js +23 -15
  37. package/dist/analyzer/testWalker.js.map +1 -1
  38. package/dist/analyzer/typeCacheUtils.d.ts +8 -2
  39. package/dist/analyzer/typeCacheUtils.js +4 -4
  40. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  41. package/dist/analyzer/typeEvaluator.js +283 -160
  42. package/dist/analyzer/typeEvaluator.js.map +1 -1
  43. package/dist/analyzer/typeEvaluatorTypes.d.ts +14 -9
  44. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  45. package/dist/analyzer/typeGuards.js +0 -14
  46. package/dist/analyzer/typeGuards.js.map +1 -1
  47. package/dist/analyzer/typePrinter.d.ts +2 -1
  48. package/dist/analyzer/typePrinter.js +13 -0
  49. package/dist/analyzer/typePrinter.js.map +1 -1
  50. package/dist/analyzer/typeUtils.d.ts +5 -4
  51. package/dist/analyzer/typeUtils.js +191 -144
  52. package/dist/analyzer/typeUtils.js.map +1 -1
  53. package/dist/analyzer/typeVarContext.d.ts +32 -19
  54. package/dist/analyzer/typeVarContext.js +173 -99
  55. package/dist/analyzer/typeVarContext.js.map +1 -1
  56. package/dist/analyzer/types.d.ts +2 -1
  57. package/dist/analyzer/types.js +1 -0
  58. package/dist/analyzer/types.js.map +1 -1
  59. package/dist/backgroundAnalysisBase.d.ts +1 -3
  60. package/dist/backgroundAnalysisBase.js +2 -3
  61. package/dist/backgroundAnalysisBase.js.map +1 -1
  62. package/dist/backgroundThreadBase.js +5 -1
  63. package/dist/backgroundThreadBase.js.map +1 -1
  64. package/dist/common/envVarUtils.d.ts +1 -1
  65. package/dist/common/envVarUtils.js +26 -16
  66. package/dist/common/envVarUtils.js.map +1 -1
  67. package/dist/common/extensibility.d.ts +44 -6
  68. package/dist/common/extensibility.js +26 -2
  69. package/dist/common/extensibility.js.map +1 -1
  70. package/dist/common/fullAccessHost.d.ts +2 -1
  71. package/dist/common/fullAccessHost.js +22 -0
  72. package/dist/common/fullAccessHost.js.map +1 -1
  73. package/dist/common/host.d.ts +6 -0
  74. package/dist/common/host.js +3 -0
  75. package/dist/common/host.js.map +1 -1
  76. package/dist/common/pathUtils.d.ts +2 -0
  77. package/dist/common/pathUtils.js +17 -3
  78. package/dist/common/pathUtils.js.map +1 -1
  79. package/dist/common/textRangeCollection.d.ts +1 -0
  80. package/dist/common/textRangeCollection.js +54 -20
  81. package/dist/common/textRangeCollection.js.map +1 -1
  82. package/dist/languageServerBase.d.ts +2 -4
  83. package/dist/languageServerBase.js +5 -6
  84. package/dist/languageServerBase.js.map +1 -1
  85. package/dist/languageService/callHierarchyProvider.js +1 -1
  86. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  87. package/dist/languageService/completionProvider.d.ts +0 -1
  88. package/dist/languageService/completionProvider.js +33 -98
  89. package/dist/languageService/completionProvider.js.map +1 -1
  90. package/dist/languageService/completionProviderUtils.d.ts +34 -0
  91. package/dist/languageService/completionProviderUtils.js +102 -0
  92. package/dist/languageService/completionProviderUtils.js.map +1 -0
  93. package/dist/languageService/definitionProvider.d.ts +2 -1
  94. package/dist/languageService/definitionProvider.js +25 -9
  95. package/dist/languageService/definitionProvider.js.map +1 -1
  96. package/dist/languageService/documentSymbolCollector.d.ts +2 -1
  97. package/dist/languageService/documentSymbolCollector.js +27 -3
  98. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  99. package/dist/languageService/documentSymbolProvider.js +1 -1
  100. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  101. package/dist/languageService/hoverProvider.d.ts +1 -0
  102. package/dist/languageService/hoverProvider.js +44 -10
  103. package/dist/languageService/hoverProvider.js.map +1 -1
  104. package/dist/languageService/referencesProvider.d.ts +2 -1
  105. package/dist/languageService/referencesProvider.js +4 -3
  106. package/dist/languageService/referencesProvider.js.map +1 -1
  107. package/dist/languageService/signatureHelpProvider.js +20 -3
  108. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  109. package/dist/languageService/tooltipUtils.d.ts +3 -1
  110. package/dist/languageService/tooltipUtils.js +30 -10
  111. package/dist/languageService/tooltipUtils.js.map +1 -1
  112. package/dist/localization/localize.d.ts +8 -1
  113. package/dist/localization/localize.js +10 -10
  114. package/dist/localization/localize.js.map +1 -1
  115. package/dist/localization/package.nls.en-us.json +3 -3
  116. package/dist/parser/stringTokenUtils.js +10 -0
  117. package/dist/parser/stringTokenUtils.js.map +1 -1
  118. package/dist/pyright.js +17 -9
  119. package/dist/pyright.js.map +1 -1
  120. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +1 -1
  121. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
  122. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js +5 -5
  123. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
  124. package/dist/tests/fourslash/completions.fourslash.js +2 -2
  125. package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
  126. package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js +1 -1
  127. package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js.map +1 -1
  128. package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js +1 -1
  129. package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js.map +1 -1
  130. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js +1 -1
  131. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
  132. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js +1 -1
  133. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
  134. package/dist/tests/fourslash/completions.libStub.fourslash.js +1 -1
  135. package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
  136. package/dist/tests/fourslash/completions.localCode.fourslash.js +2 -2
  137. package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
  138. package/dist/tests/fourslash/completions.overloads.fourslash.js +1 -1
  139. package/dist/tests/fourslash/completions.overloads.fourslash.js.map +1 -1
  140. package/dist/tests/fourslash/completions.params.fourslash.js +37 -0
  141. package/dist/tests/fourslash/completions.params.fourslash.js.map +1 -1
  142. package/dist/tests/fourslash/completions.plainText.fourslash.js +2 -2
  143. package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
  144. package/dist/tests/fourslash/completions.self.fourslash.js +2 -2
  145. package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
  146. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +1 -1
  147. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
  148. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js +7 -7
  149. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
  150. package/dist/tests/fourslash/hover.class.docString.fourslash.js +1 -1
  151. package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -1
  152. package/dist/tests/fourslash/hover.classNoInit.fourslash.js +1 -1
  153. package/dist/tests/fourslash/hover.classNoInit.fourslash.js.map +1 -1
  154. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js +7 -7
  155. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
  156. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js +1 -1
  157. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
  158. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js +1 -1
  159. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
  160. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js +1 -1
  161. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
  162. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js +1 -1
  163. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
  164. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js +1 -1
  165. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
  166. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +2 -2
  167. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
  168. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js +1 -1
  169. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
  170. package/dist/tests/fourslash/hover.docstring.links.fourslash.js +1 -1
  171. package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
  172. package/dist/tests/fourslash/hover.docstring.split.fourslash.js +3 -3
  173. package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
  174. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js +1 -1
  175. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -1
  176. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js +1 -1
  177. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -1
  178. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js +1 -1
  179. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -1
  180. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js +1 -1
  181. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -1
  182. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js +1 -1
  183. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -1
  184. package/dist/tests/fourslash/hover.formatted.fourslash.js +6 -6
  185. package/dist/tests/fourslash/hover.formatted.fourslash.js.map +1 -1
  186. package/dist/tests/fourslash/hover.fourslash.js +1 -1
  187. package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
  188. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +6 -6
  189. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  190. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js +5 -5
  191. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
  192. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +4 -4
  193. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  194. package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js +2 -2
  195. package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js.map +1 -1
  196. package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js +2 -2
  197. package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js.map +1 -1
  198. package/dist/tests/fourslash/hover.init.fourslash.js +4 -4
  199. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  200. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js +2 -2
  201. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
  202. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js +2 -2
  203. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
  204. package/dist/tests/fourslash/hover.libStub.fourslash.js +2 -2
  205. package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
  206. package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js +2 -2
  207. package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js.map +1 -1
  208. package/dist/tests/fourslash/hover.plainText.fourslash.js +1 -1
  209. package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
  210. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +1 -1
  211. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
  212. package/dist/tests/fourslash/import.multipart.fourslash.js +1 -1
  213. package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -1
  214. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js +1 -1
  215. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
  216. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js +1 -1
  217. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
  218. package/dist/tests/fourslash/signature.complicated.fourslash.js +31 -1
  219. package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
  220. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  221. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  222. package/dist/tests/hoverProvider.test.js +27 -0
  223. package/dist/tests/hoverProvider.test.js.map +1 -1
  224. package/dist/tests/pathUtils.test.js +24 -1
  225. package/dist/tests/pathUtils.test.js.map +1 -1
  226. package/dist/tests/typeEvaluator1.test.js +16 -0
  227. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  228. package/dist/tests/typeEvaluator2.test.js +4 -0
  229. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  230. package/dist/tests/typeEvaluator3.test.js +2 -2
  231. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  232. package/dist/tests/typeEvaluator4.test.js +11 -3
  233. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  234. package/dist/workspaceMap.d.ts +4 -0
  235. package/dist/workspaceMap.js +67 -37
  236. package/dist/workspaceMap.js.map +1 -1
  237. package/package.json +1 -1
@@ -10,65 +10,26 @@
10
10
  * each type variable.
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.TypeVarContext = void 0;
13
+ exports.TypeVarContext = exports.TypeVarSignatureContext = void 0;
14
14
  const debug_1 = require("../common/debug");
15
15
  const types_1 = require("./types");
16
16
  const typeUtils_1 = require("./typeUtils");
17
- class TypeVarContext {
18
- constructor(solveForScopes) {
19
- this._isLocked = false;
20
- if (Array.isArray(solveForScopes)) {
21
- this._solveForScopes = solveForScopes;
22
- }
23
- else if (solveForScopes !== undefined) {
24
- this._solveForScopes = [solveForScopes];
25
- }
26
- else {
27
- this._solveForScopes = undefined;
28
- }
17
+ class TypeVarSignatureContext {
18
+ constructor() {
29
19
  this._typeVarMap = new Map();
30
20
  }
31
21
  clone() {
32
- const newTypeVarMap = new TypeVarContext();
33
- if (this._solveForScopes) {
34
- newTypeVarMap._solveForScopes = [...this._solveForScopes];
35
- }
22
+ const newContext = new TypeVarSignatureContext();
36
23
  this._typeVarMap.forEach((value) => {
37
- newTypeVarMap.setTypeVarType(value.typeVar, value.narrowBound, value.narrowBoundNoLiterals, value.wideBound);
38
- });
39
- if (this._tupleTypeVarMap) {
40
- this._tupleTypeVarMap.forEach((value) => {
41
- newTypeVarMap.setTupleTypeVar(value.typeVar, value.types);
42
- });
43
- }
44
- newTypeVarMap._isLocked = this._isLocked;
45
- return newTypeVarMap;
46
- }
47
- // Copies a cloned type var map back into this object.
48
- copyFromClone(clone) {
49
- this._typeVarMap = clone._typeVarMap;
50
- this._tupleTypeVarMap = clone._tupleTypeVarMap;
51
- this._isLocked = clone._isLocked;
52
- }
53
- // Returns the list of scopes this type var map is "solving".
54
- getSolveForScopes() {
55
- return this._solveForScopes;
56
- }
57
- hasSolveForScope(scopeId) {
58
- return (scopeId !== undefined &&
59
- this._solveForScopes !== undefined &&
60
- this._solveForScopes.some((s) => s === scopeId || s === types_1.WildcardTypeVarScopeId));
61
- }
62
- setSolveForScopes(scopeIds) {
63
- this._solveForScopes = scopeIds;
64
- }
65
- addSolveForScope(scopeId) {
66
- if (scopeId !== undefined && !this.hasSolveForScope(scopeId)) {
67
- if (!this._solveForScopes) {
68
- this._solveForScopes = [];
24
+ newContext.setTypeVarType(value.typeVar, value.narrowBound, value.narrowBoundNoLiterals, value.wideBound);
25
+ if (value.tupleTypes) {
26
+ newContext.setTupleTypeVar(value.typeVar, value.tupleTypes);
69
27
  }
70
- this._solveForScopes.push(scopeId);
28
+ });
29
+ if (this._sourceTypeVarScopeId) {
30
+ this._sourceTypeVarScopeId.forEach((scopeId) => newContext.addSourceTypeVarScopeId(scopeId));
71
31
  }
32
+ return newContext;
72
33
  }
73
34
  isEmpty() {
74
35
  return this._typeVarMap.size === 0;
@@ -89,12 +50,9 @@ class TypeVarContext {
89
50
  });
90
51
  return score;
91
52
  }
92
- hasTypeVar(reference) {
93
- return this._typeVarMap.has(this._getKey(reference));
94
- }
95
53
  getTypeVarType(reference, useNarrowBoundOnly = false) {
96
54
  var _a, _b;
97
- const entry = this._typeVarMap.get(this._getKey(reference));
55
+ const entry = this.getTypeVar(reference);
98
56
  if (!entry) {
99
57
  return undefined;
100
58
  }
@@ -107,7 +65,7 @@ class TypeVarContext {
107
65
  return (_b = (_a = entry.narrowBoundNoLiterals) !== null && _a !== void 0 ? _a : entry.narrowBound) !== null && _b !== void 0 ? _b : entry.wideBound;
108
66
  }
109
67
  getParamSpecType(reference) {
110
- const entry = this._typeVarMap.get(this._getKey(reference));
68
+ const entry = this.getTypeVar(reference);
111
69
  if (!(entry === null || entry === void 0 ? void 0 : entry.narrowBound)) {
112
70
  return undefined;
113
71
  }
@@ -117,25 +75,21 @@ class TypeVarContext {
117
75
  return undefined;
118
76
  }
119
77
  setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound) {
120
- (0, debug_1.assert)(!this._isLocked, 'TypeVarContext is locked');
121
- const key = this._getKey(reference);
78
+ const key = types_1.TypeVarType.getNameWithScope(reference);
122
79
  this._typeVarMap.set(key, { typeVar: reference, narrowBound, narrowBoundNoLiterals, wideBound });
123
80
  }
124
81
  getTupleTypeVar(reference) {
125
- var _a, _b;
126
- return (_b = (_a = this._tupleTypeVarMap) === null || _a === void 0 ? void 0 : _a.get(this._getKey(reference))) === null || _b === void 0 ? void 0 : _b.types;
82
+ var _a;
83
+ return (_a = this.getTypeVar(reference)) === null || _a === void 0 ? void 0 : _a.tupleTypes;
127
84
  }
128
85
  setTupleTypeVar(reference, types) {
129
- (0, debug_1.assert)(!this._isLocked);
130
- const key = this._getKey(reference);
131
- // Allocate tuple TypeVar map on demand since most classes don't use it.
132
- if (!this._tupleTypeVarMap) {
133
- this._tupleTypeVarMap = new Map();
134
- }
135
- this._tupleTypeVarMap.set(key, { typeVar: reference, types });
86
+ // Caller should have already assigned a value to this type variable.
87
+ const entry = this.getTypeVar(reference);
88
+ (0, debug_1.assert)(entry);
89
+ entry.tupleTypes = types;
136
90
  }
137
91
  getTypeVar(reference) {
138
- const key = this._getKey(reference);
92
+ const key = types_1.TypeVarType.getNameWithScope(reference);
139
93
  return this._typeVarMap.get(key);
140
94
  }
141
95
  getTypeVars() {
@@ -147,13 +101,6 @@ class TypeVarContext {
147
101
  }
148
102
  // Applies solved TypeVars from one context to this context.
149
103
  applySourceContextTypeVars(srcContext) {
150
- var _a;
151
- // If there are no solved TypeVars, don't bother.
152
- if (srcContext.getTypeVarCount() === 0) {
153
- return;
154
- }
155
- const wasLocked = this.isLocked();
156
- this.unlock();
157
104
  this._typeVarMap.forEach((entry) => {
158
105
  const newNarrowTypeBound = entry.narrowBound
159
106
  ? (0, typeUtils_1.applySolvedTypeVars)(entry.narrowBound, srcContext)
@@ -163,41 +110,34 @@ class TypeVarContext {
163
110
  : undefined;
164
111
  const newWideTypeBound = entry.wideBound ? (0, typeUtils_1.applySolvedTypeVars)(entry.wideBound, srcContext) : undefined;
165
112
  this.setTypeVarType(entry.typeVar, newNarrowTypeBound, newNarrowTypeBoundNoLiterals, newWideTypeBound);
113
+ if (entry.tupleTypes) {
114
+ this.setTupleTypeVar(entry.typeVar, entry.tupleTypes.map((arg) => {
115
+ return { isUnbounded: arg.isUnbounded, type: (0, typeUtils_1.applySolvedTypeVars)(arg.type, srcContext) };
116
+ }));
117
+ }
166
118
  });
167
- (_a = this._tupleTypeVarMap) === null || _a === void 0 ? void 0 : _a.forEach((entry) => {
168
- const updatedTypes = entry.types.map((arg) => {
169
- return { isUnbounded: arg.isUnbounded, type: (0, typeUtils_1.applySolvedTypeVars)(arg.type, srcContext) };
170
- });
171
- this.setTupleTypeVar(entry.typeVar, updatedTypes);
172
- });
173
- if (wasLocked) {
174
- this.lock();
175
- }
176
119
  }
177
120
  getTypeVarCount() {
178
121
  return this._typeVarMap.size;
179
122
  }
180
123
  getWideTypeBound(reference) {
181
- const entry = this._typeVarMap.get(this._getKey(reference));
124
+ const entry = this.getTypeVar(reference);
182
125
  if (entry) {
183
126
  return entry.wideBound;
184
127
  }
185
128
  return undefined;
186
129
  }
187
- lock() {
188
- // Locks the type var map, preventing any further changes.
189
- (0, debug_1.assert)(!this._isLocked);
190
- this._isLocked = true;
191
- }
192
- unlock() {
193
- // Unlocks the type var map, allowing further changes.
194
- this._isLocked = false;
195
- }
196
- isLocked() {
197
- return this._isLocked;
130
+ addSourceTypeVarScopeId(scopeId) {
131
+ if (!this._sourceTypeVarScopeId) {
132
+ this._sourceTypeVarScopeId = new Set();
133
+ }
134
+ this._sourceTypeVarScopeId.add(scopeId);
198
135
  }
199
- _getKey(reference) {
200
- return types_1.TypeVarType.getNameWithScope(reference);
136
+ hasSourceTypeVarScopeId(scopeId) {
137
+ if (!this._sourceTypeVarScopeId) {
138
+ return false;
139
+ }
140
+ return this._sourceTypeVarScopeId.has(scopeId);
201
141
  }
202
142
  // Returns a "score" for a type that captures the relative complexity
203
143
  // of the type. Scores should all be between 0 and 1 where 0 means
@@ -230,8 +170,10 @@ class TypeVarContext {
230
170
  maxScore = Math.max(maxScore, subtypeScore);
231
171
  });
232
172
  }
233
- // Assume that a union is more complex than a non-union.
234
- return 0.75 + maxScore / 4;
173
+ else {
174
+ maxScore = 0.5;
175
+ }
176
+ return maxScore;
235
177
  }
236
178
  case 7 /* Class */: {
237
179
  return this._getComplexityScoreForClass(type, recursionCount);
@@ -265,5 +207,137 @@ class TypeVarContext {
265
207
  return 0.5 + averageTypeArgComplexity * 0.25;
266
208
  }
267
209
  }
210
+ exports.TypeVarSignatureContext = TypeVarSignatureContext;
211
+ class TypeVarContext {
212
+ constructor(solveForScopes) {
213
+ this._isLocked = false;
214
+ if (Array.isArray(solveForScopes)) {
215
+ this._solveForScopes = solveForScopes;
216
+ }
217
+ else if (solveForScopes !== undefined) {
218
+ this._solveForScopes = [solveForScopes];
219
+ }
220
+ else {
221
+ this._solveForScopes = undefined;
222
+ }
223
+ this._signatureContexts = [new TypeVarSignatureContext()];
224
+ }
225
+ clone() {
226
+ const newTypeVarMap = new TypeVarContext();
227
+ if (this._solveForScopes) {
228
+ newTypeVarMap._solveForScopes = [...this._solveForScopes];
229
+ }
230
+ newTypeVarMap._signatureContexts = this._signatureContexts.map((context) => context.clone());
231
+ newTypeVarMap._isLocked = this._isLocked;
232
+ return newTypeVarMap;
233
+ }
234
+ cloneWithSignatureSource(typeVarScopeId) {
235
+ const clonedContext = this.clone();
236
+ if (typeVarScopeId) {
237
+ const filteredSignatures = this._signatureContexts.filter((context) => context.hasSourceTypeVarScopeId(typeVarScopeId));
238
+ if (filteredSignatures.length > 0) {
239
+ clonedContext._signatureContexts = filteredSignatures;
240
+ }
241
+ else {
242
+ clonedContext._signatureContexts.forEach((context) => {
243
+ context.addSourceTypeVarScopeId(typeVarScopeId);
244
+ });
245
+ }
246
+ }
247
+ return clonedContext;
248
+ }
249
+ // Copies a cloned type var context back into this object.
250
+ copyFromClone(clone) {
251
+ this._signatureContexts = clone._signatureContexts.map((context) => context.clone());
252
+ this._isLocked = clone._isLocked;
253
+ }
254
+ // Copy the specified signature contexts into this type var context.
255
+ copySignatureContexts(contexts) {
256
+ (0, debug_1.assert)(contexts.length > 0);
257
+ this._signatureContexts = [...contexts];
258
+ }
259
+ // Returns the list of scopes this type var map is "solving".
260
+ getSolveForScopes() {
261
+ return this._solveForScopes;
262
+ }
263
+ hasSolveForScope(scopeId) {
264
+ return (scopeId !== undefined &&
265
+ this._solveForScopes !== undefined &&
266
+ this._solveForScopes.some((s) => s === scopeId || s === types_1.WildcardTypeVarScopeId));
267
+ }
268
+ setSolveForScopes(scopeIds) {
269
+ this._solveForScopes = scopeIds;
270
+ }
271
+ addSolveForScope(scopeId) {
272
+ if (scopeId !== undefined && !this.hasSolveForScope(scopeId)) {
273
+ if (!this._solveForScopes) {
274
+ this._solveForScopes = [];
275
+ }
276
+ this._solveForScopes.push(scopeId);
277
+ }
278
+ }
279
+ lock() {
280
+ // Locks the type var map, preventing any further changes.
281
+ (0, debug_1.assert)(!this._isLocked);
282
+ this._isLocked = true;
283
+ }
284
+ unlock() {
285
+ // Unlocks the type var map, allowing further changes.
286
+ this._isLocked = false;
287
+ }
288
+ isLocked() {
289
+ return this._isLocked;
290
+ }
291
+ isEmpty() {
292
+ return this._signatureContexts.every((context) => context.isEmpty());
293
+ }
294
+ // Applies solved TypeVars from one context to this context.
295
+ applySourceContextTypeVars(srcContext) {
296
+ if (srcContext.isEmpty()) {
297
+ return;
298
+ }
299
+ const wasLocked = this.isLocked();
300
+ this.unlock();
301
+ this._signatureContexts.forEach((context) => context.applySourceContextTypeVars(srcContext));
302
+ if (wasLocked) {
303
+ this.lock();
304
+ }
305
+ }
306
+ setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound) {
307
+ (0, debug_1.assert)(!this._isLocked);
308
+ return this._signatureContexts.forEach((context) => {
309
+ context.setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound);
310
+ });
311
+ }
312
+ setTupleTypeVar(reference, tupleTypes) {
313
+ (0, debug_1.assert)(!this._isLocked);
314
+ return this._signatureContexts.forEach((context) => {
315
+ context.setTupleTypeVar(reference, tupleTypes);
316
+ });
317
+ }
318
+ getScore() {
319
+ let total = 0;
320
+ this._signatureContexts.forEach((context) => {
321
+ total += context.getScore();
322
+ });
323
+ // Return the average score among all signature contexts.
324
+ return total / this._signatureContexts.length;
325
+ }
326
+ getPrimarySignature() {
327
+ return this._signatureContexts[0];
328
+ }
329
+ getSignatureContexts() {
330
+ return this._signatureContexts;
331
+ }
332
+ getSignatureContext(index) {
333
+ (0, debug_1.assert)(index >= 0 && index < this._signatureContexts.length);
334
+ return this._signatureContexts[index];
335
+ }
336
+ doForEachSignature(callback) {
337
+ this._signatureContexts.forEach((context) => {
338
+ callback(context);
339
+ });
340
+ }
341
+ }
268
342
  exports.TypeVarContext = TypeVarContext;
269
343
  //# sourceMappingURL=typeVarContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeVarContext.js","sourceRoot":"","sources":["../../../src/analyzer/typeVarContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeVarContext.js","sourceRoot":"","sources":["../../../src/analyzer/typeVarContext.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ExpressionNode, ParameterCategory } from '../parser/parseNodes';
1
+ import { ExpressionNode, NameNode, ParameterCategory } from '../parser/parseNodes';
2
2
  import { FunctionDeclaration } from './declaration';
3
3
  import { Symbol, SymbolTable } from './symbol';
4
4
  export declare const enum TypeCategory {
@@ -106,6 +106,7 @@ export interface DataClassEntry {
106
106
  isKeywordOnly: boolean;
107
107
  alias?: string | undefined;
108
108
  hasDefault?: boolean | undefined;
109
+ nameNode: NameNode | undefined;
109
110
  defaultValueExpression?: ExpressionNode | undefined;
110
111
  includeInInit: boolean;
111
112
  type: Type;
@@ -949,6 +949,7 @@ var FunctionType;
949
949
  (2 /* ClassMethod */ |
950
950
  4 /* StaticMethod */ |
951
951
  1 /* ConstructorMethod */ |
952
+ 256 /* Overloaded */ |
952
953
  32768 /* SkipArgsKwargsCompatibilityCheck */)) |
953
954
  64 /* SynthesizedMethod */;
954
955
  if (FunctionType.isParamSpecValue(type)) {