@zzzen/pyright-internal 1.2.0-dev.20240721 → 1.2.0-dev.20240804

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 (228) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +2 -2
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +15 -12
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/cacheManager.js +3 -0
  6. package/dist/analyzer/cacheManager.js.map +1 -1
  7. package/dist/analyzer/checker.d.ts +5 -3
  8. package/dist/analyzer/checker.js +238 -193
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.d.ts +2 -2
  11. package/dist/analyzer/codeFlowEngine.js +53 -46
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowTypes.js +1 -1
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolution.d.ts +21 -0
  16. package/dist/analyzer/constraintSolution.js +71 -0
  17. package/dist/analyzer/constraintSolution.js.map +1 -0
  18. package/dist/analyzer/constraintSolver.d.ts +10 -6
  19. package/dist/analyzer/constraintSolver.js +520 -462
  20. package/dist/analyzer/constraintSolver.js.map +1 -1
  21. package/dist/analyzer/constraintTracker.d.ts +44 -0
  22. package/dist/analyzer/constraintTracker.js +230 -0
  23. package/dist/analyzer/constraintTracker.js.map +1 -0
  24. package/dist/analyzer/constructorTransform.d.ts +2 -2
  25. package/dist/analyzer/constructorTransform.js +25 -25
  26. package/dist/analyzer/constructorTransform.js.map +1 -1
  27. package/dist/analyzer/constructors.d.ts +3 -3
  28. package/dist/analyzer/constructors.js +80 -64
  29. package/dist/analyzer/constructors.js.map +1 -1
  30. package/dist/analyzer/dataClasses.d.ts +2 -2
  31. package/dist/analyzer/dataClasses.js +87 -61
  32. package/dist/analyzer/dataClasses.js.map +1 -1
  33. package/dist/analyzer/declaration.d.ts +9 -9
  34. package/dist/analyzer/declaration.js +9 -9
  35. package/dist/analyzer/declaration.js.map +1 -1
  36. package/dist/analyzer/declarationUtils.d.ts +1 -1
  37. package/dist/analyzer/declarationUtils.js +6 -6
  38. package/dist/analyzer/declarationUtils.js.map +1 -1
  39. package/dist/analyzer/decorators.js +5 -5
  40. package/dist/analyzer/decorators.js.map +1 -1
  41. package/dist/analyzer/docStringConversion.js +2 -2
  42. package/dist/analyzer/docStringConversion.js.map +1 -1
  43. package/dist/analyzer/enums.d.ts +2 -2
  44. package/dist/analyzer/enums.js +6 -6
  45. package/dist/analyzer/enums.js.map +1 -1
  46. package/dist/analyzer/functionTransform.d.ts +2 -2
  47. package/dist/analyzer/functionTransform.js +5 -5
  48. package/dist/analyzer/functionTransform.js.map +1 -1
  49. package/dist/analyzer/importResolver.js +5 -3
  50. package/dist/analyzer/importResolver.js.map +1 -1
  51. package/dist/analyzer/namedTuples.d.ts +3 -3
  52. package/dist/analyzer/namedTuples.js +21 -22
  53. package/dist/analyzer/namedTuples.js.map +1 -1
  54. package/dist/analyzer/operations.d.ts +1 -2
  55. package/dist/analyzer/operations.js +105 -82
  56. package/dist/analyzer/operations.js.map +1 -1
  57. package/dist/analyzer/packageTypeVerifier.js +16 -12
  58. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  59. package/dist/analyzer/parameterUtils.d.ts +12 -12
  60. package/dist/analyzer/parameterUtils.js +67 -69
  61. package/dist/analyzer/parameterUtils.js.map +1 -1
  62. package/dist/analyzer/parseTreeUtils.d.ts +6 -6
  63. package/dist/analyzer/parseTreeUtils.js +22 -22
  64. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  65. package/dist/analyzer/patternMatching.js +122 -101
  66. package/dist/analyzer/patternMatching.js.map +1 -1
  67. package/dist/analyzer/program.js +11 -4
  68. package/dist/analyzer/program.js.map +1 -1
  69. package/dist/analyzer/properties.d.ts +3 -2
  70. package/dist/analyzer/properties.js +27 -27
  71. package/dist/analyzer/properties.js.map +1 -1
  72. package/dist/analyzer/protocols.d.ts +3 -3
  73. package/dist/analyzer/protocols.js +58 -57
  74. package/dist/analyzer/protocols.js.map +1 -1
  75. package/dist/analyzer/pythonPathUtils.js +1 -1
  76. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  77. package/dist/analyzer/service.d.ts +3 -7
  78. package/dist/analyzer/service.js +28 -30
  79. package/dist/analyzer/service.js.map +1 -1
  80. package/dist/analyzer/serviceUtils.d.ts +8 -0
  81. package/dist/analyzer/serviceUtils.js +31 -0
  82. package/dist/analyzer/serviceUtils.js.map +1 -0
  83. package/dist/analyzer/sourceFile.js +5 -19
  84. package/dist/analyzer/sourceFile.js.map +1 -1
  85. package/dist/analyzer/sourceMapper.d.ts +1 -1
  86. package/dist/analyzer/sourceMapper.js +4 -4
  87. package/dist/analyzer/sourceMapper.js.map +1 -1
  88. package/dist/analyzer/staticExpressions.js +1 -1
  89. package/dist/analyzer/staticExpressions.js.map +1 -1
  90. package/dist/analyzer/tracePrinter.js +4 -4
  91. package/dist/analyzer/tracePrinter.js.map +1 -1
  92. package/dist/analyzer/tuples.d.ts +9 -0
  93. package/dist/analyzer/tuples.js +253 -0
  94. package/dist/analyzer/tuples.js.map +1 -0
  95. package/dist/analyzer/typeComplexity.d.ts +2 -0
  96. package/dist/analyzer/typeComplexity.js +94 -0
  97. package/dist/analyzer/typeComplexity.js.map +1 -0
  98. package/dist/analyzer/typeEvaluator.js +1758 -1979
  99. package/dist/analyzer/typeEvaluator.js.map +1 -1
  100. package/dist/analyzer/typeEvaluatorTypes.d.ts +69 -45
  101. package/dist/analyzer/typeEvaluatorTypes.js +7 -1
  102. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  103. package/dist/analyzer/typeGuards.js +157 -121
  104. package/dist/analyzer/typeGuards.js.map +1 -1
  105. package/dist/analyzer/typePrinter.d.ts +1 -1
  106. package/dist/analyzer/typePrinter.js +64 -61
  107. package/dist/analyzer/typePrinter.js.map +1 -1
  108. package/dist/analyzer/typeStubWriter.d.ts +3 -3
  109. package/dist/analyzer/typeStubWriter.js +15 -15
  110. package/dist/analyzer/typeStubWriter.js.map +1 -1
  111. package/dist/analyzer/typeUtils.d.ts +45 -41
  112. package/dist/analyzer/typeUtils.js +511 -748
  113. package/dist/analyzer/typeUtils.js.map +1 -1
  114. package/dist/analyzer/typeWalker.js +4 -4
  115. package/dist/analyzer/typeWalker.js.map +1 -1
  116. package/dist/analyzer/typedDicts.d.ts +4 -4
  117. package/dist/analyzer/typedDicts.js +73 -77
  118. package/dist/analyzer/typedDicts.js.map +1 -1
  119. package/dist/analyzer/types.d.ts +97 -72
  120. package/dist/analyzer/types.js +217 -208
  121. package/dist/analyzer/types.js.map +1 -1
  122. package/dist/commands/dumpFileDebugInfoCommand.js +11 -11
  123. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  124. package/dist/common/configOptions.d.ts +1 -0
  125. package/dist/common/configOptions.js +5 -0
  126. package/dist/common/configOptions.js.map +1 -1
  127. package/dist/common/diagnosticRules.d.ts +1 -0
  128. package/dist/common/diagnosticRules.js +1 -0
  129. package/dist/common/diagnosticRules.js.map +1 -1
  130. package/dist/common/fileSystem.d.ts +0 -1
  131. package/dist/common/fileSystem.js.map +1 -1
  132. package/dist/common/languageServerInterface.d.ts +13 -0
  133. package/dist/common/languageServerInterface.js +15 -1
  134. package/dist/common/languageServerInterface.js.map +1 -1
  135. package/dist/common/lspUtils.js +2 -2
  136. package/dist/common/memUtils.d.ts +4 -0
  137. package/dist/common/memUtils.js +33 -2
  138. package/dist/common/memUtils.js.map +1 -1
  139. package/dist/common/serviceKeys.d.ts +3 -0
  140. package/dist/common/serviceKeys.js +2 -0
  141. package/dist/common/serviceKeys.js.map +1 -1
  142. package/dist/common/serviceProviderExtensions.js +7 -0
  143. package/dist/common/serviceProviderExtensions.js.map +1 -1
  144. package/dist/languageServerBase.d.ts +5 -4
  145. package/dist/languageServerBase.js +19 -12
  146. package/dist/languageServerBase.js.map +1 -1
  147. package/dist/languageService/autoImporter.d.ts +3 -2
  148. package/dist/languageService/autoImporter.js +5 -1
  149. package/dist/languageService/autoImporter.js.map +1 -1
  150. package/dist/languageService/completionProvider.d.ts +5 -3
  151. package/dist/languageService/completionProvider.js +39 -38
  152. package/dist/languageService/completionProvider.js.map +1 -1
  153. package/dist/languageService/completionProviderUtils.d.ts +1 -1
  154. package/dist/languageService/completionProviderUtils.js +3 -3
  155. package/dist/languageService/completionProviderUtils.js.map +1 -1
  156. package/dist/languageService/fileWatcherDynamicFeature.js +2 -2
  157. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  158. package/dist/languageService/hoverProvider.js +3 -3
  159. package/dist/languageService/hoverProvider.js.map +1 -1
  160. package/dist/languageService/referencesProvider.js +2 -2
  161. package/dist/languageService/signatureHelpProvider.js +1 -1
  162. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  163. package/dist/languageService/tooltipUtils.js +3 -3
  164. package/dist/languageService/tooltipUtils.js.map +1 -1
  165. package/dist/localization/localize.d.ts +5 -0
  166. package/dist/localization/localize.js +6 -0
  167. package/dist/localization/localize.js.map +1 -1
  168. package/dist/localization/package.nls.cs.json +5 -1
  169. package/dist/localization/package.nls.de.json +5 -1
  170. package/dist/localization/package.nls.en-us.json +5 -0
  171. package/dist/localization/package.nls.es.json +5 -1
  172. package/dist/localization/package.nls.fr.json +5 -1
  173. package/dist/localization/package.nls.it.json +5 -1
  174. package/dist/localization/package.nls.ja.json +5 -1
  175. package/dist/localization/package.nls.ko.json +5 -1
  176. package/dist/localization/package.nls.pl.json +5 -1
  177. package/dist/localization/package.nls.pt-br.json +5 -1
  178. package/dist/localization/package.nls.qps-ploc.json +5 -1
  179. package/dist/localization/package.nls.ru.json +5 -1
  180. package/dist/localization/package.nls.tr.json +5 -1
  181. package/dist/localization/package.nls.zh-cn.json +5 -1
  182. package/dist/localization/package.nls.zh-tw.json +5 -1
  183. package/dist/parser/parseNodes.d.ts +9 -9
  184. package/dist/parser/parseNodes.js +20 -20
  185. package/dist/parser/parseNodes.js.map +1 -1
  186. package/dist/parser/parser.js +30 -30
  187. package/dist/parser/parser.js.map +1 -1
  188. package/dist/tests/checker.test.js +12 -4
  189. package/dist/tests/checker.test.js.map +1 -1
  190. package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js +4 -21
  191. package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js.map +1 -1
  192. package/dist/tests/fourslash/signature.complicated.fourslash.js +1 -1
  193. package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
  194. package/dist/tests/harness/fourslash/fourSlashParser.js +1 -1
  195. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  196. package/dist/tests/harness/fourslash/testStateUtils.js +2 -2
  197. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  198. package/dist/tests/harness/vfs/filesystem.d.ts +0 -1
  199. package/dist/tests/harness/vfs/filesystem.js +0 -4
  200. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  201. package/dist/tests/importResolver.test.js +62 -15
  202. package/dist/tests/importResolver.test.js.map +1 -1
  203. package/dist/tests/lsp/languageServerTestUtils.js +1 -1
  204. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  205. package/dist/tests/typeEvaluator1.test.js +1 -1
  206. package/dist/tests/typeEvaluator2.test.js +12 -0
  207. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  208. package/dist/tests/typeEvaluator3.test.js +5 -1
  209. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  210. package/dist/tests/typeEvaluator4.test.js +10 -2
  211. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  212. package/dist/tests/typeEvaluator5.test.js +9 -3
  213. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  214. package/dist/tests/typeEvaluator6.test.js +72 -60
  215. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  216. package/dist/tests/typeEvaluator7.test.js +6 -2
  217. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  218. package/dist/tests/typeEvaluator8.test.js +4 -0
  219. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  220. package/dist/tests/typePrinter.test.js +13 -18
  221. package/dist/tests/typePrinter.test.js.map +1 -1
  222. package/dist/workspaceFactory.d.ts +3 -2
  223. package/dist/workspaceFactory.js +15 -2
  224. package/dist/workspaceFactory.js.map +1 -1
  225. package/package.json +1 -1
  226. package/dist/analyzer/typeVarContext.d.ts +0 -60
  227. package/dist/analyzer/typeVarContext.js +0 -392
  228. package/dist/analyzer/typeVarContext.js.map +0 -1
@@ -36,9 +36,12 @@ exports.applyDataClassDecorator = exports.applyDataClassClassBehaviorOverrides =
36
36
  const debug_1 = require("../common/debug");
37
37
  const diagnostic_1 = require("../common/diagnostic");
38
38
  const diagnosticRules_1 = require("../common/diagnosticRules");
39
+ const pythonVersion_1 = require("../common/pythonVersion");
39
40
  const localize_1 = require("../localization/localize");
40
41
  const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
41
42
  const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
43
+ const constraintSolution_1 = require("./constraintSolution");
44
+ const constraintTracker_1 = require("./constraintTracker");
42
45
  const constructors_1 = require("./constructors");
43
46
  const namedTuples_1 = require("./namedTuples");
44
47
  const parseTreeUtils_1 = require("./parseTreeUtils");
@@ -47,7 +50,6 @@ const symbol_1 = require("./symbol");
47
50
  const symbolNameUtils_1 = require("./symbolNameUtils");
48
51
  const types_1 = require("./types");
49
52
  const typeUtils_1 = require("./typeUtils");
50
- const typeVarContext_1 = require("./typeVarContext");
51
53
  // Validates fields for compatibility with a dataclass and synthesizes
52
54
  // an appropriate __new__ and __init__ methods plus __dataclass_fields__
53
55
  // and __match_args__ class variables.
@@ -63,17 +65,28 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
63
65
  // __new__ method are based on field definitions for NamedTuple classes,
64
66
  // and the parameters of the __init__ method are based on field definitions
65
67
  // in other cases.
66
- types_1.FunctionType.addParameter(newType, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, classTypeVar, types_1.FunctionParamFlags.TypeDeclared, 'cls'));
68
+ types_1.FunctionType.addParam(newType, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, classTypeVar, types_1.FunctionParamFlags.TypeDeclared, 'cls'));
67
69
  if (!isNamedTuple) {
68
- types_1.FunctionType.addDefaultParameters(newType);
70
+ types_1.FunctionType.addDefaultParams(newType);
71
+ newType.shared.flags |= 32768 /* FunctionTypeFlags.GradualCallableForm */;
69
72
  }
70
73
  newType.shared.declaredReturnType = (0, typeUtils_1.convertToInstance)(classTypeVar);
71
- const selfParam = types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, typeUtils_1.synthesizeTypeVarForSelfCls)(classType, /* isClsParam */ false), types_1.FunctionParamFlags.TypeDeclared, 'self');
72
- types_1.FunctionType.addParameter(initType, selfParam);
74
+ const selfType = (0, typeUtils_1.synthesizeTypeVarForSelfCls)(classType, /* isClsParam */ false);
75
+ const selfParam = types_1.FunctionParam.create(0 /* ParamCategory.Simple */, selfType, types_1.FunctionParamFlags.TypeDeclared, 'self');
76
+ types_1.FunctionType.addParam(initType, selfParam);
73
77
  if (isNamedTuple) {
74
- types_1.FunctionType.addDefaultParameters(initType);
78
+ types_1.FunctionType.addDefaultParams(initType);
79
+ initType.shared.flags |= 32768 /* FunctionTypeFlags.GradualCallableForm */;
75
80
  }
76
81
  initType.shared.declaredReturnType = evaluator.getNoneType();
82
+ // For Python 3.13 and newer, synthesize a __replace__ method.
83
+ let replaceType;
84
+ if (AnalyzerNodeInfo.getFileInfo(node).executionEnvironment.pythonVersion >= pythonVersion_1.pythonVersion3_13) {
85
+ replaceType = types_1.FunctionType.createSynthesizedInstance('__replace__');
86
+ types_1.FunctionType.addParam(replaceType, selfParam);
87
+ types_1.FunctionType.addKeywordOnlyParamSeparator(replaceType);
88
+ replaceType.shared.declaredReturnType = selfType;
89
+ }
77
90
  // Maintain a list of all dataclass entries (including
78
91
  // those from inherited classes) plus a list of only those
79
92
  // entries added by this class.
@@ -84,7 +97,10 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
84
97
  // If one or more ancestor classes have an unknown type, we cannot
85
98
  // safely determine the parameter list, so we'll accept any parameters
86
99
  // to avoid a false positive.
87
- types_1.FunctionType.addDefaultParameters(initType);
100
+ types_1.FunctionType.addDefaultParams(initType);
101
+ if (replaceType) {
102
+ types_1.FunctionType.addDefaultParams(replaceType);
103
+ }
88
104
  }
89
105
  // Add field-based parameters to either the __new__ or __init__ method
90
106
  // based on whether this is a NamedTuple or a dataclass.
@@ -142,7 +158,7 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
142
158
  variableNameNode = statement.d.leftExpr.d.valueExpr;
143
159
  const assignmentStatement = statement;
144
160
  variableTypeEvaluator = () => evaluator.getTypeOfAnnotation(assignmentStatement.d.leftExpr.d.annotation, {
145
- isVariableAnnotation: true,
161
+ varTypeAnnotation: true,
146
162
  allowFinal: true,
147
163
  allowClassVar: true,
148
164
  });
@@ -203,7 +219,7 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
203
219
  variableNameNode = statement.d.valueExpr;
204
220
  const annotationStatement = statement;
205
221
  variableTypeEvaluator = () => evaluator.getTypeOfAnnotation(annotationStatement.d.annotation, {
206
- isVariableAnnotation: true,
222
+ varTypeAnnotation: true,
207
223
  allowFinal: true,
208
224
  allowClassVar: true,
209
225
  });
@@ -348,9 +364,9 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
348
364
  // transform it to refer to the Self of this subclass.
349
365
  let effectiveType = entry.type;
350
366
  if (entry.classType !== classType && (0, typeUtils_1.requiresSpecialization)(effectiveType)) {
351
- const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(entry.classType));
352
- (0, typeUtils_1.populateTypeVarContextForSelfType)(typeVarContext, entry.classType, classType);
353
- effectiveType = (0, typeUtils_1.applySolvedTypeVars)(effectiveType, typeVarContext);
367
+ const solution = new constraintSolution_1.ConstraintSolution();
368
+ (0, typeUtils_1.addSolutionForSelfType)(solution, entry.classType, classType);
369
+ effectiveType = (0, typeUtils_1.applySolvedTypeVars)(effectiveType, solution);
354
370
  }
355
371
  // Is the field type a descriptor object? If so, we need to extract the corresponding
356
372
  // type of the __init__ method parameter from the __set__ method.
@@ -364,24 +380,31 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
364
380
  if (!entry.alias && entry.nameNode && (0, symbolNameUtils_1.isPrivateName)(entry.nameNode.d.value)) {
365
381
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.dataClassFieldWithPrivateName(), entry.nameNode);
366
382
  }
367
- const functionParam = types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, effectiveType, types_1.FunctionParamFlags.TypeDeclared, effectiveName, entry.hasDefault ? entry.type : undefined);
383
+ const param = types_1.FunctionParam.create(0 /* ParamCategory.Simple */, effectiveType, types_1.FunctionParamFlags.TypeDeclared, effectiveName, entry.hasDefault ? entry.type : undefined);
368
384
  if (entry.isKeywordOnly) {
369
- keywordOnlyParams.push(functionParam);
385
+ keywordOnlyParams.push(param);
370
386
  }
371
387
  else {
372
- types_1.FunctionType.addParameter(constructorType, functionParam);
388
+ types_1.FunctionType.addParam(constructorType, param);
389
+ }
390
+ if (replaceType) {
391
+ const paramWithDefault = types_1.FunctionParam.create(param.category, param._type, param.flags, param.name, types_1.AnyType.create(/* isEllipsis */ true));
392
+ types_1.FunctionType.addParam(replaceType, paramWithDefault);
373
393
  }
374
394
  }
375
395
  });
376
396
  if (keywordOnlyParams.length > 0) {
377
- types_1.FunctionType.addKeywordOnlyParameterSeparator(constructorType);
397
+ types_1.FunctionType.addKeywordOnlyParamSeparator(constructorType);
378
398
  keywordOnlyParams.forEach((param) => {
379
- types_1.FunctionType.addParameter(constructorType, param);
399
+ types_1.FunctionType.addParam(constructorType, param);
380
400
  });
381
401
  }
382
402
  }
383
403
  symbolTable.set('__init__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, initType));
384
404
  symbolTable.set('__new__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, newType));
405
+ if (replaceType) {
406
+ symbolTable.set('__replace__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, replaceType));
407
+ }
385
408
  }
386
409
  // Synthesize the __match_args__ class variable if it doesn't exist.
387
410
  const strType = evaluator.getBuiltInType(node, 'str');
@@ -406,8 +429,8 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
406
429
  }
407
430
  const synthesizeComparisonMethod = (operator, paramType) => {
408
431
  const operatorMethod = types_1.FunctionType.createSynthesizedInstance(operator);
409
- types_1.FunctionType.addParameter(operatorMethod, selfParam);
410
- types_1.FunctionType.addParameter(operatorMethod, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, paramType, types_1.FunctionParamFlags.TypeDeclared, 'other'));
432
+ types_1.FunctionType.addParam(operatorMethod, selfParam);
433
+ types_1.FunctionType.addParam(operatorMethod, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, paramType, types_1.FunctionParamFlags.TypeDeclared, 'other'));
411
434
  operatorMethod.shared.declaredReturnType = evaluator.getBuiltInObject(node, 'bool');
412
435
  // If a method of this name already exists, don't override it.
413
436
  if (!symbolTable.get(operator)) {
@@ -436,7 +459,7 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
436
459
  }
437
460
  if (synthesizeHashFunction) {
438
461
  const hashMethod = types_1.FunctionType.createSynthesizedInstance('__hash__');
439
- types_1.FunctionType.addParameter(hashMethod, selfParam);
462
+ types_1.FunctionType.addParam(hashMethod, selfParam);
440
463
  hashMethod.shared.declaredReturnType = evaluator.getBuiltInObject(node, 'int');
441
464
  symbolTable.set('__hash__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */ | 4096 /* SymbolFlags.IgnoredForOverrideChecks */, hashMethod));
442
465
  }
@@ -445,8 +468,7 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
445
468
  }
446
469
  let dictType = evaluator.getBuiltInType(node, 'dict');
447
470
  if ((0, types_1.isInstantiableClass)(dictType)) {
448
- dictType = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(dictType, [evaluator.getBuiltInObject(node, 'str'), types_1.AnyType.create()],
449
- /* isTypeArgumentExplicit */ true));
471
+ dictType = types_1.ClassType.cloneAsInstance(types_1.ClassType.specialize(dictType, [evaluator.getBuiltInObject(node, 'str'), types_1.AnyType.create()]));
450
472
  }
451
473
  if (!isNamedTuple) {
452
474
  symbolTable.set('__dataclass_fields__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */ | 128 /* SymbolFlags.ClassVar */, dictType));
@@ -458,15 +480,14 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
458
480
  if (types_1.ClassType.isDataClassGenerateSlots(classType)) {
459
481
  let iterableType = (_a = evaluator.getTypingType(node, 'Iterable')) !== null && _a !== void 0 ? _a : types_1.UnknownType.create();
460
482
  if ((0, types_1.isInstantiableClass)(iterableType)) {
461
- iterableType = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(iterableType, [evaluator.getBuiltInObject(node, 'str')],
462
- /* isTypeArgumentExplicit */ true));
483
+ iterableType = types_1.ClassType.cloneAsInstance(types_1.ClassType.specialize(iterableType, [evaluator.getBuiltInObject(node, 'str')]));
463
484
  }
464
485
  symbolTable.set('__slots__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */ | 128 /* SymbolFlags.ClassVar */, iterableType));
465
486
  }
466
487
  // If this dataclass derived from a NamedTuple, update the NamedTuple with
467
488
  // the specialized entry types.
468
489
  if ((0, namedTuples_1.updateNamedTupleBaseClass)(classType, fullDataClassEntries.map((entry) => entry.type),
469
- /* isTypeArgumentExplicit */ true)) {
490
+ /* isTypeArgExplicit */ true)) {
470
491
  // Recompute the MRO based on the updated NamedTuple base class.
471
492
  (0, typeUtils_1.computeMroLinearization)(classType);
472
493
  }
@@ -483,7 +504,7 @@ function getDefaultArgValueForFieldSpecifier(evaluator, callNode, callTypeResult
483
504
  callTarget = callType;
484
505
  }
485
506
  else if ((0, types_1.isOverloadedFunction)(callType)) {
486
- callTarget = evaluator.getBestOverloadForArguments(callNode, { type: callType, isIncomplete: callTypeResult.isIncomplete }, callNode.d.args.map((arg) => (0, typeUtils_1.convertArgumentNodeToFunctionArgument)(arg)));
507
+ callTarget = evaluator.getBestOverloadForArgs(callNode, { type: callType, isIncomplete: callTypeResult.isIncomplete }, callNode.d.args.map((arg) => (0, typeUtils_1.convertNodeToArg)(arg)));
487
508
  }
488
509
  else if ((0, types_1.isInstantiableClass)(callType)) {
489
510
  const initMethodResult = (0, constructors_1.getBoundInitMethod)(evaluator, callNode, callType);
@@ -492,24 +513,27 @@ function getDefaultArgValueForFieldSpecifier(evaluator, callNode, callTypeResult
492
513
  callTarget = initMethodResult.type;
493
514
  }
494
515
  else if ((0, types_1.isOverloadedFunction)(initMethodResult.type)) {
495
- callTarget = evaluator.getBestOverloadForArguments(callNode, { type: initMethodResult.type }, callNode.d.args.map((arg) => (0, typeUtils_1.convertArgumentNodeToFunctionArgument)(arg)));
516
+ callTarget = evaluator.getBestOverloadForArgs(callNode, { type: initMethodResult.type }, callNode.d.args.map((arg) => (0, typeUtils_1.convertNodeToArg)(arg)));
496
517
  }
497
518
  }
498
519
  }
499
520
  if (callTarget) {
500
- const initParam = callTarget.shared.parameters.find((p) => p.name === paramName);
501
- if (initParam) {
521
+ const initParamIndex = callTarget.shared.parameters.findIndex((p) => p.name === paramName);
522
+ if (initParamIndex >= 0) {
523
+ const initParam = callTarget.shared.parameters[initParamIndex];
502
524
  // Is the parameter type a literal bool?
525
+ const initParamType = types_1.FunctionType.getParamType(callTarget, initParamIndex);
503
526
  if (types_1.FunctionParam.isTypeDeclared(initParam) &&
504
- (0, types_1.isClass)(initParam.type) &&
505
- typeof initParam.type.priv.literalValue === 'boolean') {
506
- return initParam.type.priv.literalValue;
527
+ (0, types_1.isClass)(initParamType) &&
528
+ typeof initParamType.priv.literalValue === 'boolean') {
529
+ return initParamType.priv.literalValue;
507
530
  }
508
531
  // Is the default argument value a literal bool?
509
- if (initParam.defaultType &&
510
- (0, types_1.isClass)(initParam.defaultType) &&
511
- typeof initParam.defaultType.priv.literalValue === 'boolean') {
512
- return initParam.defaultType.priv.literalValue;
532
+ const initParamDefaultType = types_1.FunctionType.getParamDefaultType(callTarget, initParamIndex);
533
+ if (initParamDefaultType &&
534
+ (0, types_1.isClass)(initParamDefaultType) &&
535
+ typeof initParamDefaultType.priv.literalValue === 'boolean') {
536
+ return initParamDefaultType.priv.literalValue;
513
537
  }
514
538
  }
515
539
  }
@@ -530,23 +554,25 @@ function getConverterInputType(evaluator, converterNode, fieldType, fieldName) {
530
554
  const targetFunction = types_1.FunctionType.createSynthesizedInstance('');
531
555
  targetFunction.shared.typeVarScopeId = typeVar.priv.scopeId;
532
556
  targetFunction.shared.declaredReturnType = fieldType;
533
- types_1.FunctionType.addParameter(targetFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, typeVar, types_1.FunctionParamFlags.TypeDeclared | types_1.FunctionParamFlags.NameSynthesized, '__input'));
534
- types_1.FunctionType.addPositionOnlyParameterSeparator(targetFunction);
557
+ types_1.FunctionType.addParam(targetFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, typeVar, types_1.FunctionParamFlags.TypeDeclared | types_1.FunctionParamFlags.NameSynthesized, '__input'));
558
+ types_1.FunctionType.addPositionOnlyParamSeparator(targetFunction);
535
559
  if ((0, types_1.isFunction)(converterType) || (0, types_1.isOverloadedFunction)(converterType)) {
536
560
  const acceptedTypes = [];
537
561
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
538
562
  (0, typeUtils_1.doForEachSignature)(converterType, (signature) => {
539
563
  var _a;
540
- const returnTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeIds)(signature));
564
+ const returnConstraints = new constraintTracker_1.ConstraintTracker();
541
565
  if (evaluator.assignType((_a = types_1.FunctionType.getEffectiveReturnType(signature)) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(), fieldType,
542
- /* diag */ undefined, returnTypeVarContext)) {
543
- signature = (0, typeUtils_1.applySolvedTypeVars)(signature, returnTypeVarContext);
544
- }
545
- const inputTypeVarContext = new typeVarContext_1.TypeVarContext(typeVar.priv.scopeId);
546
- if (evaluator.assignType(targetFunction, signature, diagAddendum, inputTypeVarContext)) {
547
- const overloadSolution = (0, typeUtils_1.applySolvedTypeVars)(typeVar, inputTypeVarContext, {
548
- unknownIfNotFound: true,
549
- tupleClassType: evaluator.getTupleClassType(),
566
+ /* diag */ undefined, returnConstraints)) {
567
+ signature = evaluator.solveAndApplyConstraints(signature, returnConstraints);
568
+ }
569
+ const inputConstraints = new constraintTracker_1.ConstraintTracker();
570
+ if (evaluator.assignType(targetFunction, signature, diagAddendum, inputConstraints)) {
571
+ const overloadSolution = evaluator.solveAndApplyConstraints(typeVar, inputConstraints, {
572
+ replaceUnsolved: {
573
+ scopeIds: (0, typeUtils_1.getTypeVarScopeIds)(typeVar),
574
+ tupleClassType: evaluator.getTupleClassType(),
575
+ },
550
576
  });
551
577
  acceptedTypes.push(overloadSolution);
552
578
  }
@@ -610,16 +636,16 @@ function getDescriptorForConverterField(evaluator, dataclassNode, converterNode,
610
636
  const fields = types_1.ClassType.getSymbolTable(descriptorClass);
611
637
  const selfType = (0, typeUtils_1.synthesizeTypeVarForSelfCls)(descriptorClass, /* isClsParam */ false);
612
638
  const setFunction = types_1.FunctionType.createSynthesizedInstance('__set__');
613
- types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, selfType, types_1.FunctionParamFlags.TypeDeclared, 'self'));
614
- types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
615
- types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, setType, types_1.FunctionParamFlags.TypeDeclared, 'value'));
639
+ types_1.FunctionType.addParam(setFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, selfType, types_1.FunctionParamFlags.TypeDeclared, 'self'));
640
+ types_1.FunctionType.addParam(setFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
641
+ types_1.FunctionType.addParam(setFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, setType, types_1.FunctionParamFlags.TypeDeclared, 'value'));
616
642
  setFunction.shared.declaredReturnType = evaluator.getNoneType();
617
643
  const setSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, setFunction);
618
644
  fields.set('__set__', setSymbol);
619
645
  const getFunction = types_1.FunctionType.createSynthesizedInstance('__get__');
620
- types_1.FunctionType.addParameter(getFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, selfType, types_1.FunctionParamFlags.TypeDeclared, 'self'));
621
- types_1.FunctionType.addParameter(getFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
622
- types_1.FunctionType.addParameter(getFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'objtype'));
646
+ types_1.FunctionType.addParam(getFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, selfType, types_1.FunctionParamFlags.TypeDeclared, 'self'));
647
+ types_1.FunctionType.addParam(getFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
648
+ types_1.FunctionType.addParam(getFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'objtype'));
623
649
  getFunction.shared.declaredReturnType = getType;
624
650
  const getSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, getFunction);
625
651
  fields.set('__get__', getSymbol);
@@ -640,7 +666,7 @@ function transformDescriptorType(evaluator, type) {
640
666
  return type;
641
667
  }
642
668
  // The value parameter for a bound __set__ method is parameter index 1.
643
- return types_1.FunctionType.getEffectiveParameterType(setMethodType, 1);
669
+ return types_1.FunctionType.getParamType(setMethodType, 1);
644
670
  }
645
671
  // Builds a sorted list of dataclass entries that are inherited by
646
672
  // the specified class. These entries must be unique and in reverse-MRO
@@ -650,7 +676,7 @@ function addInheritedDataClassEntries(classType, entries) {
650
676
  let allAncestorsAreKnown = true;
651
677
  types_1.ClassType.getReverseMro(classType).forEach((mroClass) => {
652
678
  if ((0, types_1.isInstantiableClass)(mroClass)) {
653
- const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(mroClass);
679
+ const solution = (0, typeUtils_1.buildSolutionFromSpecializedClass)(mroClass);
654
680
  const dataClassEntries = types_1.ClassType.getDataClassEntries(mroClass);
655
681
  // Add the entries to the end of the list, replacing same-named
656
682
  // entries if found.
@@ -659,7 +685,7 @@ function addInheritedDataClassEntries(classType, entries) {
659
685
  // If the type from the parent class is generic, we need to convert
660
686
  // to the type parameter namespace of child class.
661
687
  const updatedEntry = { ...entry };
662
- updatedEntry.type = (0, typeUtils_1.applySolvedTypeVars)(updatedEntry.type, typeVarContext);
688
+ updatedEntry.type = (0, typeUtils_1.applySolvedTypeVars)(updatedEntry.type, solution);
663
689
  if (entry.isClassVar) {
664
690
  // If this entry is a class variable, it overrides an existing
665
691
  // instance variable, so delete it.
@@ -713,7 +739,7 @@ function validateDataClassTransformDecorator(evaluator, node) {
713
739
  const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
714
740
  // Parse the arguments to the call.
715
741
  node.d.args.forEach((arg) => {
716
- if (!arg.d.name || arg.d.argCategory !== 0 /* ArgumentCategory.Simple */) {
742
+ if (!arg.d.name || arg.d.argCategory !== 0 /* ArgCategory.Simple */) {
717
743
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.dataClassTransformPositionalParam(), arg);
718
744
  return;
719
745
  }
@@ -767,8 +793,8 @@ function validateDataClassTransformDecorator(evaluator, node) {
767
793
  const valueType = evaluator.getTypeOfExpression(arg.d.valueExpr).type;
768
794
  if (!(0, types_1.isClassInstance)(valueType) ||
769
795
  !types_1.ClassType.isBuiltIn(valueType, 'tuple') ||
770
- !valueType.priv.tupleTypeArguments ||
771
- valueType.priv.tupleTypeArguments.some((entry) => !(0, types_1.isInstantiableClass)(entry.type) &&
796
+ !valueType.priv.tupleTypeArgs ||
797
+ valueType.priv.tupleTypeArgs.some((entry) => !(0, types_1.isInstantiableClass)(entry.type) &&
772
798
  !(0, types_1.isFunction)(entry.type) &&
773
799
  !(0, types_1.isOverloadedFunction)(entry.type))) {
774
800
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.dataClassTransformFieldSpecifier().format({
@@ -776,7 +802,7 @@ function validateDataClassTransformDecorator(evaluator, node) {
776
802
  }), arg.d.valueExpr);
777
803
  return;
778
804
  }
779
- valueType.priv.tupleTypeArguments.forEach((arg) => {
805
+ valueType.priv.tupleTypeArgs.forEach((arg) => {
780
806
  if ((0, types_1.isInstantiableClass)(arg.type) || (0, types_1.isFunction)(arg.type)) {
781
807
  behaviors.fieldDescriptorNames.push(arg.type.shared.fullName);
782
808
  }
@@ -929,7 +955,7 @@ function applyDataClassClassBehaviorOverrides(evaluator, errorNode, classType, a
929
955
  exports.applyDataClassClassBehaviorOverrides = applyDataClassClassBehaviorOverrides;
930
956
  function applyDataClassDecorator(evaluator, errorNode, classType, defaultBehaviors, callNode) {
931
957
  var _a;
932
- applyDataClassClassBehaviorOverrides(evaluator, errorNode, classType, ((_a = callNode === null || callNode === void 0 ? void 0 : callNode.d.args) !== null && _a !== void 0 ? _a : []).map((arg) => (0, typeUtils_1.convertArgumentNodeToFunctionArgument)(arg)), defaultBehaviors);
958
+ applyDataClassClassBehaviorOverrides(evaluator, errorNode, classType, ((_a = callNode === null || callNode === void 0 ? void 0 : callNode.d.args) !== null && _a !== void 0 ? _a : []).map((arg) => (0, typeUtils_1.convertNodeToArg)(arg)), defaultBehaviors);
933
959
  }
934
960
  exports.applyDataClassDecorator = applyDataClassDecorator;
935
961
  //# sourceMappingURL=dataClasses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataClasses.js","sourceRoot":"","sources":["../../../../../src/analyzer/dataClasses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataClasses.js","sourceRoot":"","sources":["../../../../../src/analyzer/dataClasses.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export declare const UnresolvedModuleMarker: Uri;
5
5
  export declare const enum DeclarationType {
6
6
  Intrinsic = 0,
7
7
  Variable = 1,
8
- Parameter = 2,
9
- TypeParameter = 3,
8
+ Param = 2,
9
+ TypeParam = 3,
10
10
  TypeAlias = 4,
11
11
  Function = 5,
12
12
  Class = 6,
@@ -44,15 +44,15 @@ export interface FunctionDeclaration extends DeclarationBase {
44
44
  yieldStatements?: (YieldNode | YieldFromNode)[];
45
45
  raiseStatements?: RaiseNode[];
46
46
  }
47
- export interface ParameterDeclaration extends DeclarationBase {
48
- type: DeclarationType.Parameter;
47
+ export interface ParamDeclaration extends DeclarationBase {
48
+ type: DeclarationType.Param;
49
49
  node: ParameterNode;
50
50
  docString?: string;
51
51
  inferredName?: string;
52
52
  inferredTypeNodes?: ExpressionNode[];
53
53
  }
54
- export interface TypeParameterDeclaration extends DeclarationBase {
55
- type: DeclarationType.TypeParameter;
54
+ export interface TypeParamDeclaration extends DeclarationBase {
55
+ type: DeclarationType.TypeParam;
56
56
  node: TypeParameterNode;
57
57
  }
58
58
  export interface TypeAliasDeclaration extends DeclarationBase {
@@ -94,11 +94,11 @@ export interface ModuleLoaderActions {
94
94
  loadSymbolsFromPath: boolean;
95
95
  implicitImports?: Map<string, ModuleLoaderActions>;
96
96
  }
97
- export type Declaration = IntrinsicDeclaration | ClassDeclaration | SpecialBuiltInClassDeclaration | FunctionDeclaration | ParameterDeclaration | TypeParameterDeclaration | TypeAliasDeclaration | VariableDeclaration | AliasDeclaration;
97
+ export type Declaration = IntrinsicDeclaration | ClassDeclaration | SpecialBuiltInClassDeclaration | FunctionDeclaration | ParamDeclaration | TypeParamDeclaration | TypeAliasDeclaration | VariableDeclaration | AliasDeclaration;
98
98
  export declare function isFunctionDeclaration(decl: Declaration): decl is FunctionDeclaration;
99
99
  export declare function isClassDeclaration(decl: Declaration): decl is ClassDeclaration;
100
- export declare function isParameterDeclaration(decl: Declaration): decl is ParameterDeclaration;
101
- export declare function isTypeParameterDeclaration(decl: Declaration): decl is TypeParameterDeclaration;
100
+ export declare function isParamDeclaration(decl: Declaration): decl is ParamDeclaration;
101
+ export declare function isTypeParamDeclaration(decl: Declaration): decl is TypeParamDeclaration;
102
102
  export declare function isTypeAliasDeclaration(decl: Declaration): decl is TypeAliasDeclaration;
103
103
  export declare function isVariableDeclaration(decl: Declaration): decl is VariableDeclaration;
104
104
  export declare function isAliasDeclaration(decl: Declaration): decl is AliasDeclaration;
@@ -10,15 +10,15 @@
10
10
  * is explicitly declared).
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.isUnresolvedAliasDeclaration = exports.isIntrinsicDeclaration = exports.isSpecialBuiltInClassDeclaration = exports.isAliasDeclaration = exports.isVariableDeclaration = exports.isTypeAliasDeclaration = exports.isTypeParameterDeclaration = exports.isParameterDeclaration = exports.isClassDeclaration = exports.isFunctionDeclaration = exports.DeclarationType = exports.UnresolvedModuleMarker = void 0;
13
+ exports.isUnresolvedAliasDeclaration = exports.isIntrinsicDeclaration = exports.isSpecialBuiltInClassDeclaration = exports.isAliasDeclaration = exports.isVariableDeclaration = exports.isTypeAliasDeclaration = exports.isTypeParamDeclaration = exports.isParamDeclaration = exports.isClassDeclaration = exports.isFunctionDeclaration = exports.DeclarationType = exports.UnresolvedModuleMarker = void 0;
14
14
  const uri_1 = require("../common/uri/uri");
15
15
  exports.UnresolvedModuleMarker = uri_1.Uri.constant('*** unresolved module ***');
16
16
  var DeclarationType;
17
17
  (function (DeclarationType) {
18
18
  DeclarationType[DeclarationType["Intrinsic"] = 0] = "Intrinsic";
19
19
  DeclarationType[DeclarationType["Variable"] = 1] = "Variable";
20
- DeclarationType[DeclarationType["Parameter"] = 2] = "Parameter";
21
- DeclarationType[DeclarationType["TypeParameter"] = 3] = "TypeParameter";
20
+ DeclarationType[DeclarationType["Param"] = 2] = "Param";
21
+ DeclarationType[DeclarationType["TypeParam"] = 3] = "TypeParam";
22
22
  DeclarationType[DeclarationType["TypeAlias"] = 4] = "TypeAlias";
23
23
  DeclarationType[DeclarationType["Function"] = 5] = "Function";
24
24
  DeclarationType[DeclarationType["Class"] = 6] = "Class";
@@ -33,14 +33,14 @@ function isClassDeclaration(decl) {
33
33
  return decl.type === 6 /* DeclarationType.Class */;
34
34
  }
35
35
  exports.isClassDeclaration = isClassDeclaration;
36
- function isParameterDeclaration(decl) {
37
- return decl.type === 2 /* DeclarationType.Parameter */;
36
+ function isParamDeclaration(decl) {
37
+ return decl.type === 2 /* DeclarationType.Param */;
38
38
  }
39
- exports.isParameterDeclaration = isParameterDeclaration;
40
- function isTypeParameterDeclaration(decl) {
41
- return decl.type === 3 /* DeclarationType.TypeParameter */;
39
+ exports.isParamDeclaration = isParamDeclaration;
40
+ function isTypeParamDeclaration(decl) {
41
+ return decl.type === 3 /* DeclarationType.TypeParam */;
42
42
  }
43
- exports.isTypeParameterDeclaration = isTypeParameterDeclaration;
43
+ exports.isTypeParamDeclaration = isTypeParamDeclaration;
44
44
  function isTypeAliasDeclaration(decl) {
45
45
  return decl.type === 4 /* DeclarationType.TypeAlias */;
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../../../../src/analyzer/declaration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,2CAAwC;AAsB3B,QAAA,sBAAsB,GAAG,SAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEhF,IAAkB,eAUjB;AAVD,WAAkB,eAAe;IAC7B,+DAAS,CAAA;IACT,6DAAQ,CAAA;IACR,+DAAS,CAAA;IACT,uEAAa,CAAA;IACb,+DAAS,CAAA;IACT,6DAAQ,CAAA;IACR,uDAAK,CAAA;IACL,mFAAmB,CAAA;IACnB,uDAAK,CAAA;AACT,CAAC,EAViB,eAAe,+BAAf,eAAe,QAUhC;AAgND,SAAgB,qBAAqB,CAAC,IAAiB;IACnD,OAAO,IAAI,CAAC,IAAI,qCAA6B,CAAC;AAClD,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAiB;IAChD,OAAO,IAAI,CAAC,IAAI,kCAA0B,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,0BAA0B,CAAC,IAAiB;IACxD,OAAO,IAAI,CAAC,IAAI,0CAAkC,CAAC;AACvD,CAAC;AAFD,gEAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,qBAAqB,CAAC,IAAiB;IACnD,OAAO,IAAI,CAAC,IAAI,qCAA6B,CAAC;AAClD,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAiB;IAChD,OAAO,IAAI,CAAC,IAAI,kCAA0B,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,gCAAgC,CAAC,IAAiB;IAC9D,OAAO,IAAI,CAAC,IAAI,gDAAwC,CAAC;AAC7D,CAAC;AAFD,4EAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,4BAA4B,CAAC,IAAiB;IAC1D,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;AAC/E,CAAC;AAFD,oEAEC"}
1
+ {"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../../../../src/analyzer/declaration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,2CAAwC;AAsB3B,QAAA,sBAAsB,GAAG,SAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEhF,IAAkB,eAUjB;AAVD,WAAkB,eAAe;IAC7B,+DAAS,CAAA;IACT,6DAAQ,CAAA;IACR,uDAAK,CAAA;IACL,+DAAS,CAAA;IACT,+DAAS,CAAA;IACT,6DAAQ,CAAA;IACR,uDAAK,CAAA;IACL,mFAAmB,CAAA;IACnB,uDAAK,CAAA;AACT,CAAC,EAViB,eAAe,+BAAf,eAAe,QAUhC;AAgND,SAAgB,qBAAqB,CAAC,IAAiB;IACnD,OAAO,IAAI,CAAC,IAAI,qCAA6B,CAAC;AAClD,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAiB;IAChD,OAAO,IAAI,CAAC,IAAI,kCAA0B,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAiB;IAChD,OAAO,IAAI,CAAC,IAAI,kCAA0B,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,qBAAqB,CAAC,IAAiB;IACnD,OAAO,IAAI,CAAC,IAAI,qCAA6B,CAAC;AAClD,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAiB;IAChD,OAAO,IAAI,CAAC,IAAI,kCAA0B,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,gCAAgC,CAAC,IAAiB;IAC9D,OAAO,IAAI,CAAC,IAAI,gDAAwC,CAAC;AAC7D,CAAC;AAFD,4EAEC;AAED,SAAgB,sBAAsB,CAAC,IAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,sCAA8B,CAAC;AACnD,CAAC;AAFD,wDAEC;AAED,SAAgB,4BAA4B,CAAC,IAAiB;IAC1D,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;AAC/E,CAAC;AAFD,oEAEC"}