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

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 (184) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +74 -46
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +506 -512
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +672 -655
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +112 -103
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/codeFlowTypes.js +30 -28
  11. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  12. package/dist/analyzer/constraintSolver.js +70 -66
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constructorTransform.d.ts +1 -2
  15. package/dist/analyzer/constructorTransform.js +26 -27
  16. package/dist/analyzer/constructorTransform.js.map +1 -1
  17. package/dist/analyzer/constructors.d.ts +2 -2
  18. package/dist/analyzer/constructors.js +95 -190
  19. package/dist/analyzer/constructors.js.map +1 -1
  20. package/dist/analyzer/dataClasses.js +110 -179
  21. package/dist/analyzer/dataClasses.js.map +1 -1
  22. package/dist/analyzer/declarationUtils.js +14 -15
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/decorators.js +78 -79
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/enums.js +70 -56
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/functionTransform.js +8 -18
  29. package/dist/analyzer/functionTransform.js.map +1 -1
  30. package/dist/analyzer/importResolver.d.ts +2 -1
  31. package/dist/analyzer/importResolver.js +40 -29
  32. package/dist/analyzer/importResolver.js.map +1 -1
  33. package/dist/analyzer/importStatementUtils.js +27 -27
  34. package/dist/analyzer/importStatementUtils.js.map +1 -1
  35. package/dist/analyzer/namedTuples.js +33 -59
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/operations.js +194 -145
  38. package/dist/analyzer/operations.js.map +1 -1
  39. package/dist/analyzer/packageTypeVerifier.js +66 -62
  40. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  41. package/dist/analyzer/parameterUtils.d.ts +4 -4
  42. package/dist/analyzer/parameterUtils.js +30 -47
  43. package/dist/analyzer/parameterUtils.js.map +1 -1
  44. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  45. package/dist/analyzer/parseTreeUtils.js +294 -272
  46. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  47. package/dist/analyzer/parseTreeWalker.js +76 -76
  48. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  49. package/dist/analyzer/patternMatching.js +178 -145
  50. package/dist/analyzer/patternMatching.js.map +1 -1
  51. package/dist/analyzer/program.js +1 -1
  52. package/dist/analyzer/program.js.map +1 -1
  53. package/dist/analyzer/properties.js +82 -147
  54. package/dist/analyzer/properties.js.map +1 -1
  55. package/dist/analyzer/protocols.js +29 -25
  56. package/dist/analyzer/protocols.js.map +1 -1
  57. package/dist/analyzer/sourceFile.js +3 -3
  58. package/dist/analyzer/sourceFile.js.map +1 -1
  59. package/dist/analyzer/sourceMapper.js +20 -19
  60. package/dist/analyzer/sourceMapper.js.map +1 -1
  61. package/dist/analyzer/staticExpressions.js +83 -84
  62. package/dist/analyzer/staticExpressions.js.map +1 -1
  63. package/dist/analyzer/testWalker.js +15 -3
  64. package/dist/analyzer/testWalker.js.map +1 -1
  65. package/dist/analyzer/tracePrinter.js +20 -20
  66. package/dist/analyzer/tracePrinter.js.map +1 -1
  67. package/dist/analyzer/typeDocStringUtils.js +25 -25
  68. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  69. package/dist/analyzer/typeEvaluator.js +2443 -2350
  70. package/dist/analyzer/typeEvaluator.js.map +1 -1
  71. package/dist/analyzer/typeEvaluatorTypes.d.ts +13 -9
  72. package/dist/analyzer/typeEvaluatorTypes.js +7 -1
  73. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  74. package/dist/analyzer/typeGuards.js +212 -215
  75. package/dist/analyzer/typeGuards.js.map +1 -1
  76. package/dist/analyzer/typePrinter.js +118 -115
  77. package/dist/analyzer/typePrinter.js.map +1 -1
  78. package/dist/analyzer/typeStubWriter.js +104 -103
  79. package/dist/analyzer/typeStubWriter.js.map +1 -1
  80. package/dist/analyzer/typeUtils.d.ts +30 -15
  81. package/dist/analyzer/typeUtils.js +534 -436
  82. package/dist/analyzer/typeUtils.js.map +1 -1
  83. package/dist/analyzer/typeVarContext.js +8 -8
  84. package/dist/analyzer/typeVarContext.js.map +1 -1
  85. package/dist/analyzer/typeWalker.js +13 -10
  86. package/dist/analyzer/typeWalker.js.map +1 -1
  87. package/dist/analyzer/typedDicts.js +97 -199
  88. package/dist/analyzer/typedDicts.js.map +1 -1
  89. package/dist/analyzer/types.d.ts +152 -106
  90. package/dist/analyzer/types.js +695 -496
  91. package/dist/analyzer/types.js.map +1 -1
  92. package/dist/commands/dumpFileDebugInfoCommand.js +34 -34
  93. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  94. package/dist/common/fileSystem.d.ts +1 -0
  95. package/dist/common/fileSystem.js.map +1 -1
  96. package/dist/common/fullAccessHost.js +6 -4
  97. package/dist/common/fullAccessHost.js.map +1 -1
  98. package/dist/common/realFileSystem.d.ts +1 -0
  99. package/dist/common/realFileSystem.js +4 -0
  100. package/dist/common/realFileSystem.js.map +1 -1
  101. package/dist/common/textEditTracker.js +14 -14
  102. package/dist/common/textEditTracker.js.map +1 -1
  103. package/dist/languageService/autoImporter.js +10 -10
  104. package/dist/languageService/autoImporter.js.map +1 -1
  105. package/dist/languageService/callHierarchyProvider.js +23 -23
  106. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  107. package/dist/languageService/completionProvider.js +153 -151
  108. package/dist/languageService/completionProvider.js.map +1 -1
  109. package/dist/languageService/definitionProvider.d.ts +1 -1
  110. package/dist/languageService/definitionProvider.js +3 -1
  111. package/dist/languageService/definitionProvider.js.map +1 -1
  112. package/dist/languageService/documentSymbolCollector.js +19 -19
  113. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  114. package/dist/languageService/hoverProvider.js +36 -27
  115. package/dist/languageService/hoverProvider.js.map +1 -1
  116. package/dist/languageService/importSorter.js +8 -8
  117. package/dist/languageService/importSorter.js.map +1 -1
  118. package/dist/languageService/referencesProvider.d.ts +10 -4
  119. package/dist/languageService/referencesProvider.js +30 -18
  120. package/dist/languageService/referencesProvider.js.map +1 -1
  121. package/dist/languageService/renameProvider.js +21 -4
  122. package/dist/languageService/renameProvider.js.map +1 -1
  123. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  124. package/dist/languageService/signatureHelpProvider.js +6 -6
  125. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  126. package/dist/languageService/symbolIndexer.js +3 -3
  127. package/dist/languageService/symbolIndexer.js.map +1 -1
  128. package/dist/languageService/tooltipUtils.js +13 -13
  129. package/dist/languageService/tooltipUtils.js.map +1 -1
  130. package/dist/localization/localize.d.ts +4 -3
  131. package/dist/localization/localize.js +2 -1
  132. package/dist/localization/localize.js.map +1 -1
  133. package/dist/localization/package.nls.cs.json +0 -1
  134. package/dist/localization/package.nls.de.json +0 -1
  135. package/dist/localization/package.nls.en-us.json +2 -1
  136. package/dist/localization/package.nls.es.json +0 -1
  137. package/dist/localization/package.nls.fr.json +0 -1
  138. package/dist/localization/package.nls.it.json +0 -1
  139. package/dist/localization/package.nls.ja.json +0 -1
  140. package/dist/localization/package.nls.ko.json +0 -1
  141. package/dist/localization/package.nls.pl.json +0 -1
  142. package/dist/localization/package.nls.pt-br.json +0 -1
  143. package/dist/localization/package.nls.qps-ploc.json +0 -1
  144. package/dist/localization/package.nls.ru.json +0 -1
  145. package/dist/localization/package.nls.tr.json +0 -1
  146. package/dist/localization/package.nls.zh-cn.json +0 -1
  147. package/dist/localization/package.nls.zh-tw.json +0 -1
  148. package/dist/parser/parseNodes.d.ts +471 -402
  149. package/dist/parser/parseNodes.js +629 -356
  150. package/dist/parser/parseNodes.js.map +1 -1
  151. package/dist/parser/parser.d.ts +1 -0
  152. package/dist/parser/parser.js +345 -300
  153. package/dist/parser/parser.js.map +1 -1
  154. package/dist/tests/classDeclaration.test.js +14 -14
  155. package/dist/tests/classDeclaration.test.js.map +1 -1
  156. package/dist/tests/fourslash/rename.args.fourslash.d.ts +1 -0
  157. package/dist/tests/fourslash/rename.args.fourslash.js +71 -0
  158. package/dist/tests/fourslash/rename.args.fourslash.js.map +1 -0
  159. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  160. package/dist/tests/harness/vfs/filesystem.js +6 -2
  161. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  162. package/dist/tests/importResolver.test.js +4 -3
  163. package/dist/tests/importResolver.test.js.map +1 -1
  164. package/dist/tests/parseTreeUtils.test.js +5 -5
  165. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  166. package/dist/tests/parser.test.js +8 -8
  167. package/dist/tests/parser.test.js.map +1 -1
  168. package/dist/tests/sourceMapperUtils.test.js +7 -7
  169. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  170. package/dist/tests/typeEvaluator1.test.js +17 -0
  171. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  172. package/dist/tests/typeEvaluator2.test.js +4 -0
  173. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  174. package/dist/tests/typeEvaluator3.test.js +8 -3
  175. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  176. package/dist/tests/typeEvaluator4.test.js +10 -6
  177. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  178. package/dist/tests/typeEvaluator6.test.js +6 -2
  179. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  180. package/dist/tests/typeEvaluator7.test.js +7 -3
  181. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  182. package/dist/tests/typePrinter.test.js +14 -39
  183. package/dist/tests/typePrinter.test.js.map +1 -1
  184. package/package.json +1 -1
@@ -28,43 +28,43 @@ function getFunctionInfoFromDecorators(evaluator, node, isInClass) {
28
28
  if (isInClass) {
29
29
  // The "__new__" magic method is not an instance method.
30
30
  // It acts as a static method instead.
31
- if (node.name.value === '__new__') {
31
+ if (node.d.name.d.value === '__new__') {
32
32
  flags |= 1 /* FunctionTypeFlags.ConstructorMethod */;
33
33
  }
34
34
  // Several magic methods are treated as class methods implicitly
35
35
  // by the runtime. Check for these here.
36
36
  const implicitClassMethods = ['__init_subclass__', '__class_getitem__'];
37
- if (implicitClassMethods.some((name) => node.name.value === name)) {
37
+ if (implicitClassMethods.some((name) => node.d.name.d.value === name)) {
38
38
  flags |= 2 /* FunctionTypeFlags.ClassMethod */;
39
39
  }
40
40
  }
41
- for (const decoratorNode of node.decorators) {
41
+ for (const decoratorNode of node.d.decorators) {
42
42
  // Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
43
43
  let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
44
- if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
44
+ if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
45
45
  evaluatorFlags |= 2 /* EvalFlags.CallBaseDefaults */;
46
46
  }
47
- const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.expression, evaluatorFlags);
47
+ const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.d.expr, evaluatorFlags);
48
48
  const decoratorType = decoratorTypeResult.type;
49
49
  if ((0, types_1.isFunction)(decoratorType)) {
50
- if (decoratorType.details.builtInName === 'abstractmethod') {
50
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'abstractmethod')) {
51
51
  if (isInClass) {
52
52
  flags |= 8 /* FunctionTypeFlags.AbstractMethod */;
53
53
  }
54
54
  }
55
- else if (decoratorType.details.builtInName === 'final') {
55
+ else if (types_1.FunctionType.isBuiltIn(decoratorType, 'final')) {
56
56
  flags |= 8192 /* FunctionTypeFlags.Final */;
57
57
  }
58
- else if (decoratorType.details.builtInName === 'override') {
58
+ else if (types_1.FunctionType.isBuiltIn(decoratorType, 'override')) {
59
59
  flags |= 262144 /* FunctionTypeFlags.Overridden */;
60
60
  }
61
- else if (decoratorType.details.builtInName === 'type_check_only') {
61
+ else if (types_1.FunctionType.isBuiltIn(decoratorType, 'type_check_only')) {
62
62
  flags |= 128 /* FunctionTypeFlags.TypeCheckOnly */;
63
63
  }
64
- else if (decoratorType.details.builtInName === 'no_type_check') {
64
+ else if (types_1.FunctionType.isBuiltIn(decoratorType, 'no_type_check')) {
65
65
  flags |= 524288 /* FunctionTypeFlags.NoTypeCheck */;
66
66
  }
67
- else if (decoratorType.details.builtInName === 'overload') {
67
+ else if (types_1.FunctionType.isBuiltIn(decoratorType, 'overload')) {
68
68
  flags |= 256 /* FunctionTypeFlags.Overloaded */;
69
69
  }
70
70
  }
@@ -83,7 +83,7 @@ function getFunctionInfoFromDecorators(evaluator, node, isInClass) {
83
83
  }
84
84
  else {
85
85
  if (types_1.ClassType.isBuiltIn(decoratorType, 'deprecated')) {
86
- deprecationMessage = decoratorType.deprecatedInstanceMessage;
86
+ deprecationMessage = decoratorType.priv.deprecatedInstanceMessage;
87
87
  }
88
88
  }
89
89
  }
@@ -97,27 +97,27 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
97
97
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
98
98
  // Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
99
99
  let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
100
- if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
100
+ if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
101
101
  evaluatorFlags |= 2 /* EvalFlags.CallBaseDefaults */;
102
102
  }
103
- const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.expression, evaluatorFlags);
103
+ const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.d.expr, evaluatorFlags);
104
104
  const decoratorType = decoratorTypeResult.type;
105
105
  // Special-case the "overload" because it has no definition. Older versions of typeshed
106
106
  // defined "overload" as an object, but newer versions define it as a function.
107
107
  if (((0, types_1.isInstantiableClass)(decoratorType) && types_1.ClassType.isSpecialBuiltIn(decoratorType, 'overload')) ||
108
- ((0, types_1.isFunction)(decoratorType) && decoratorType.details.builtInName === 'overload')) {
108
+ ((0, types_1.isFunction)(decoratorType) && types_1.FunctionType.isBuiltIn(decoratorType, 'overload'))) {
109
109
  if ((0, types_1.isFunction)(inputFunctionType)) {
110
- inputFunctionType.details.flags |= 256 /* FunctionTypeFlags.Overloaded */;
111
- undecoratedType.details.flags |= 256 /* FunctionTypeFlags.Overloaded */;
110
+ inputFunctionType.shared.flags |= 256 /* FunctionTypeFlags.Overloaded */;
111
+ undecoratedType.shared.flags |= 256 /* FunctionTypeFlags.Overloaded */;
112
112
  return inputFunctionType;
113
113
  }
114
114
  }
115
- if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
116
- const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* EvalFlags.CallBaseDefaults */).type;
115
+ if (decoratorNode.d.expr.nodeType === 9 /* ParseNodeType.Call */) {
116
+ const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.d.expr.d.leftExpr, evaluatorFlags | 2 /* EvalFlags.CallBaseDefaults */).type;
117
117
  if ((0, types_1.isFunction)(decoratorCallType)) {
118
- if (decoratorCallType.details.name === '__dataclass_transform__' ||
119
- decoratorCallType.details.builtInName === 'dataclass_transform') {
120
- undecoratedType.details.decoratorDataClassBehaviors = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.expression);
118
+ if (decoratorCallType.shared.name === '__dataclass_transform__' ||
119
+ types_1.FunctionType.isBuiltIn(decoratorCallType, 'dataclass_transform')) {
120
+ undecoratedType.shared.decoratorDataClassBehaviors = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.d.expr);
121
121
  return inputFunctionType;
122
122
  }
123
123
  }
@@ -125,18 +125,18 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
125
125
  let returnType = getTypeOfDecorator(evaluator, decoratorNode, inputFunctionType);
126
126
  // Check for some built-in decorator types with known semantics.
127
127
  if ((0, types_1.isFunction)(decoratorType)) {
128
- if (decoratorType.details.builtInName === 'abstractmethod') {
128
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'abstractmethod')) {
129
129
  return inputFunctionType;
130
130
  }
131
- if (decoratorType.details.builtInName === 'type_check_only') {
132
- undecoratedType.details.flags |= 128 /* FunctionTypeFlags.TypeCheckOnly */;
131
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'type_check_only')) {
132
+ undecoratedType.shared.flags |= 128 /* FunctionTypeFlags.TypeCheckOnly */;
133
133
  return inputFunctionType;
134
134
  }
135
135
  // Handle property setters and deleters.
136
- if (decoratorNode.expression.nodeType === 35 /* ParseNodeType.MemberAccess */) {
137
- const baseType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* EvalFlags.MemberAccessBaseDefaults */).type;
136
+ if (decoratorNode.d.expr.nodeType === 35 /* ParseNodeType.MemberAccess */) {
137
+ const baseType = evaluator.getTypeOfExpression(decoratorNode.d.expr.d.leftExpr, evaluatorFlags | 2 /* EvalFlags.MemberAccessBaseDefaults */).type;
138
138
  if ((0, typeUtils_1.isProperty)(baseType)) {
139
- const memberName = decoratorNode.expression.memberName.value;
139
+ const memberName = decoratorNode.d.expr.d.member.d.value;
140
140
  if (memberName === 'setter') {
141
141
  if ((0, types_1.isFunction)(inputFunctionType)) {
142
142
  (0, properties_1.validatePropertyMethod)(evaluator, inputFunctionType, decoratorNode);
@@ -160,21 +160,21 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
160
160
  }
161
161
  else if ((0, types_1.isInstantiableClass)(decoratorType)) {
162
162
  if (types_1.ClassType.isBuiltIn(decoratorType)) {
163
- switch (decoratorType.details.name) {
163
+ switch (decoratorType.shared.name) {
164
164
  case 'classmethod':
165
165
  case 'staticmethod': {
166
- const requiredFlag = decoratorType.details.name === 'classmethod'
166
+ const requiredFlag = decoratorType.shared.name === 'classmethod'
167
167
  ? 2 /* FunctionTypeFlags.ClassMethod */
168
168
  : 4 /* FunctionTypeFlags.StaticMethod */;
169
169
  // If the function isn't currently a class method or static method
170
170
  // (which can happen if the function was wrapped in a decorator),
171
171
  // add the appropriate flag.
172
- if ((0, types_1.isFunction)(inputFunctionType) && (inputFunctionType.details.flags & requiredFlag) === 0) {
172
+ if ((0, types_1.isFunction)(inputFunctionType) && (inputFunctionType.shared.flags & requiredFlag) === 0) {
173
173
  const newFunction = types_1.FunctionType.clone(inputFunctionType);
174
- newFunction.details.flags &= ~(1 /* FunctionTypeFlags.ConstructorMethod */ |
174
+ newFunction.shared.flags &= ~(1 /* FunctionTypeFlags.ConstructorMethod */ |
175
175
  4 /* FunctionTypeFlags.StaticMethod */ |
176
176
  2 /* FunctionTypeFlags.ClassMethod */);
177
- newFunction.details.flags |= requiredFlag;
177
+ newFunction.shared.flags |= requiredFlag;
178
178
  return newFunction;
179
179
  }
180
180
  return inputFunctionType;
@@ -203,12 +203,12 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
203
203
  returnType = types_1.FunctionType.clone(returnType);
204
204
  // Copy the overload flag from the input function type.
205
205
  if (types_1.FunctionType.isOverloaded(inputFunctionType)) {
206
- returnType.details.flags |= 256 /* FunctionTypeFlags.Overloaded */;
206
+ returnType.shared.flags |= 256 /* FunctionTypeFlags.Overloaded */;
207
207
  }
208
208
  // Copy the docstrings from the input function type if the
209
209
  // decorator didn't have its own docstring.
210
- if (!returnType.details.docString) {
211
- returnType.details.docString = inputFunctionType.details.docString;
210
+ if (!returnType.shared.docString) {
211
+ returnType.shared.docString = inputFunctionType.shared.docString;
212
212
  }
213
213
  }
214
214
  return returnType;
@@ -217,16 +217,16 @@ exports.applyFunctionDecorator = applyFunctionDecorator;
217
217
  function applyClassDecorator(evaluator, inputClassType, originalClassType, decoratorNode) {
218
218
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
219
219
  let flags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
220
- if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
220
+ if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
221
221
  flags |= 2 /* EvalFlags.CallBaseDefaults */;
222
222
  }
223
- const decoratorType = evaluator.getTypeOfExpression(decoratorNode.expression, flags).type;
224
- if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
225
- const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, flags | 2 /* EvalFlags.CallBaseDefaults */).type;
223
+ const decoratorType = evaluator.getTypeOfExpression(decoratorNode.d.expr, flags).type;
224
+ if (decoratorNode.d.expr.nodeType === 9 /* ParseNodeType.Call */) {
225
+ const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.d.expr.d.leftExpr, flags | 2 /* EvalFlags.CallBaseDefaults */).type;
226
226
  if ((0, types_1.isFunction)(decoratorCallType)) {
227
- if (decoratorCallType.details.name === '__dataclass_transform__' ||
228
- decoratorCallType.details.builtInName === 'dataclass_transform') {
229
- originalClassType.details.classDataClassTransform = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.expression);
227
+ if (decoratorCallType.shared.name === '__dataclass_transform__' ||
228
+ types_1.FunctionType.isBuiltIn(decoratorCallType, 'dataclass_transform')) {
229
+ originalClassType.shared.classDataClassTransform = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.d.expr);
230
230
  }
231
231
  }
232
232
  }
@@ -239,19 +239,19 @@ function applyClassDecorator(evaluator, inputClassType, originalClassType, decor
239
239
  }
240
240
  }
241
241
  else if ((0, types_1.isFunction)(decoratorType)) {
242
- if (decoratorType.details.builtInName === 'final') {
243
- originalClassType.details.flags |= 256 /* ClassTypeFlags.Final */;
242
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'final')) {
243
+ originalClassType.shared.flags |= 256 /* ClassTypeFlags.Final */;
244
244
  // Don't call getTypeOfDecorator for final. We'll hard-code its
245
245
  // behavior because its function definition results in a cyclical
246
246
  // dependency between builtins, typing and _typeshed stubs.
247
247
  return inputClassType;
248
248
  }
249
- if (decoratorType.details.builtInName === 'type_check_only') {
250
- originalClassType.details.flags |= 1048576 /* ClassTypeFlags.TypeCheckOnly */;
249
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'type_check_only')) {
250
+ originalClassType.shared.flags |= 1048576 /* ClassTypeFlags.TypeCheckOnly */;
251
251
  return inputClassType;
252
252
  }
253
- if (decoratorType.details.builtInName === 'runtime_checkable') {
254
- originalClassType.details.flags |= 2048 /* ClassTypeFlags.RuntimeCheckable */;
253
+ if (types_1.FunctionType.isBuiltIn(decoratorType, 'runtime_checkable')) {
254
+ originalClassType.shared.flags |= 2048 /* ClassTypeFlags.RuntimeCheckable */;
255
255
  // Don't call getTypeOfDecorator for runtime_checkable. It appears
256
256
  // frequently in stubs, and it's a waste of time to validate its
257
257
  // parameters.
@@ -260,13 +260,13 @@ function applyClassDecorator(evaluator, inputClassType, originalClassType, decor
260
260
  // Is this a dataclass decorator?
261
261
  let dataclassBehaviors;
262
262
  let callNode;
263
- if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
264
- callNode = decoratorNode.expression;
265
- const decoratorCallType = evaluator.getTypeOfExpression(callNode.leftExpression, flags | 2 /* EvalFlags.CallBaseDefaults */).type;
263
+ if (decoratorNode.d.expr.nodeType === 9 /* ParseNodeType.Call */) {
264
+ callNode = decoratorNode.d.expr;
265
+ const decoratorCallType = evaluator.getTypeOfExpression(callNode.d.leftExpr, flags | 2 /* EvalFlags.CallBaseDefaults */).type;
266
266
  dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorCallType);
267
267
  }
268
268
  else {
269
- const decoratorType = evaluator.getTypeOfExpression(decoratorNode.expression, flags).type;
269
+ const decoratorType = evaluator.getTypeOfExpression(decoratorNode.d.expr, flags).type;
270
270
  dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorType);
271
271
  }
272
272
  if (dataclassBehaviors) {
@@ -276,7 +276,7 @@ function applyClassDecorator(evaluator, inputClassType, originalClassType, decor
276
276
  }
277
277
  else if ((0, types_1.isClassInstance)(decoratorType)) {
278
278
  if (types_1.ClassType.isBuiltIn(decoratorType, 'deprecated')) {
279
- originalClassType.details.deprecatedMessage = decoratorType.deprecatedInstanceMessage;
279
+ originalClassType.shared.deprecatedMessage = decoratorType.priv.deprecatedInstanceMessage;
280
280
  return inputClassType;
281
281
  }
282
282
  }
@@ -287,10 +287,10 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
287
287
  var _a, _b;
288
288
  // Evaluate the type of the decorator expression.
289
289
  let flags = (0, analyzerNodeInfo_1.getFileInfo)(node).isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
290
- if (node.expression.nodeType !== 9 /* ParseNodeType.Call */) {
290
+ if (node.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
291
291
  flags |= 2 /* EvalFlags.CallBaseDefaults */;
292
292
  }
293
- const decoratorTypeResult = evaluator.getTypeOfExpression(node.expression, flags);
293
+ const decoratorTypeResult = evaluator.getTypeOfExpression(node.d.expr, flags);
294
294
  // Special-case the combination of a classmethod decorator applied
295
295
  // to a property. This is allowed in Python 3.9, but it's not reflected
296
296
  // in the builtins.pyi stub for classmethod.
@@ -305,11 +305,10 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
305
305
  typeResult: { type: functionOrClassType },
306
306
  },
307
307
  ];
308
- const callTypeResult = evaluator.validateCallArguments(node.expression, argList, decoratorTypeResult,
308
+ const callTypeResult = evaluator.validateCallArguments(node.d.expr, argList, decoratorTypeResult,
309
309
  /* typeVarContext */ undefined,
310
310
  /* skipUnknownArgCheck */ true,
311
- /* inferenceContext */ undefined,
312
- /* signatureTracker */ undefined);
311
+ /* inferenceContext */ undefined);
313
312
  evaluator.setTypeResultForNode(node, {
314
313
  type: (_a = callTypeResult.returnType) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(),
315
314
  overloadsUsedForCall: callTypeResult.overloadsUsedForCall,
@@ -319,10 +318,10 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
319
318
  // If the return type is a function that has no annotations
320
319
  // and just *args and **kwargs parameters, assume that it
321
320
  // preserves the type of the input function.
322
- if ((0, types_1.isFunction)(returnType) && !returnType.details.declaredReturnType) {
323
- if (!returnType.details.parameters.some((param, index) => {
321
+ if ((0, types_1.isFunction)(returnType) && !returnType.shared.declaredReturnType) {
322
+ if (!returnType.shared.parameters.some((param, index) => {
324
323
  // Don't allow * or / separators or params with declared types.
325
- if (!param.name || param.hasDeclaredType) {
324
+ if (!param.name || types_1.FunctionParam.isTypeDeclared(param)) {
326
325
  return true;
327
326
  }
328
327
  // Allow *args or **kwargs parameters.
@@ -330,7 +329,7 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
330
329
  return false;
331
330
  }
332
331
  // Allow inferred "self" or "cls" parameters.
333
- return index !== 0 || !param.isTypeInferred;
332
+ return index !== 0 || !types_1.FunctionParam.isTypeInferred(param);
334
333
  })) {
335
334
  return functionOrClassType;
336
335
  }
@@ -340,8 +339,8 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
340
339
  // function.
341
340
  if ((0, typeUtils_1.isPartlyUnknown)(returnType)) {
342
341
  if ((0, types_1.isFunction)(decoratorTypeResult.type)) {
343
- if (!decoratorTypeResult.type.details.parameters.find((param) => param.typeAnnotation !== undefined) &&
344
- decoratorTypeResult.type.details.declaredReturnType === undefined) {
342
+ if (!decoratorTypeResult.type.shared.parameters.find((param) => types_1.FunctionParam.isTypeDeclared(param)) &&
343
+ decoratorTypeResult.type.shared.declaredReturnType === undefined) {
345
344
  return functionOrClassType;
346
345
  }
347
346
  }
@@ -358,7 +357,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
358
357
  if (decl) {
359
358
  functionDecl = decl;
360
359
  }
361
- const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.name.value, /* honorCodeFlow */ false);
360
+ const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.d.name.d.value, /* honorCodeFlow */ false);
362
361
  if (symbolWithScope) {
363
362
  const decls = symbolWithScope.symbol.getDeclarations();
364
363
  // Find this function's declaration.
@@ -387,7 +386,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
387
386
  else if ((0, types_1.isOverloadedFunction)(prevDeclDeclTypeInfo.decoratedType)) {
388
387
  // If the previous declaration was itself an overloaded function,
389
388
  // copy the entries from it.
390
- (0, collectionUtils_1.appendArray)(overloadedTypes, prevDeclDeclTypeInfo.decoratedType.overloads);
389
+ (0, collectionUtils_1.appendArray)(overloadedTypes, prevDeclDeclTypeInfo.decoratedType.priv.overloads);
391
390
  }
392
391
  }
393
392
  }
@@ -398,10 +397,10 @@ function addOverloadsToFunctionType(evaluator, node, type) {
398
397
  // Apply the implementation's docstring to any overloads that don't
399
398
  // have their own docstrings.
400
399
  const implementation = overloadedTypes.find((signature) => !types_1.FunctionType.isOverloaded(signature));
401
- if (implementation === null || implementation === void 0 ? void 0 : implementation.details.docString) {
400
+ if (implementation === null || implementation === void 0 ? void 0 : implementation.shared.docString) {
402
401
  overloadedTypes = overloadedTypes.map((overload) => {
403
- if (types_1.FunctionType.isOverloaded(overload) && !overload.details.docString) {
404
- return types_1.FunctionType.cloneWithDocString(overload, implementation.details.docString);
402
+ if (types_1.FunctionType.isOverloaded(overload) && !overload.shared.docString) {
403
+ return types_1.FunctionType.cloneWithDocString(overload, implementation.shared.docString);
405
404
  }
406
405
  return overload;
407
406
  });
@@ -409,10 +408,10 @@ function addOverloadsToFunctionType(evaluator, node, type) {
409
408
  // PEP 702 indicates that if the implementation of an overloaded
410
409
  // function is marked deprecated, all of the overloads should be
411
410
  // treated as deprecated as well.
412
- if (implementation && implementation.details.deprecatedMessage !== undefined) {
411
+ if (implementation && implementation.shared.deprecatedMessage !== undefined) {
413
412
  overloadedTypes = overloadedTypes.map((overload) => {
414
- if (types_1.FunctionType.isOverloaded(overload) && overload.details.deprecatedMessage === undefined) {
415
- return types_1.FunctionType.cloneWithDeprecatedMessage(overload, implementation.details.deprecatedMessage);
413
+ if (types_1.FunctionType.isOverloaded(overload) && overload.shared.deprecatedMessage === undefined) {
414
+ return types_1.FunctionType.cloneWithDeprecatedMessage(overload, implementation.shared.deprecatedMessage);
416
415
  }
417
416
  return overload;
418
417
  });
@@ -424,7 +423,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
424
423
  const isPrevOverloadAbstract = types_1.FunctionType.isAbstractMethod(prevOverload);
425
424
  const isCurrentOverloadAbstract = types_1.FunctionType.isAbstractMethod(type);
426
425
  if (isPrevOverloadAbstract !== isCurrentOverloadAbstract) {
427
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadAbstractMismatch().format({ name: node.name.value }), node.name);
426
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadAbstractMismatch().format({ name: node.d.name.d.value }), node.d.name);
428
427
  }
429
428
  return newOverload;
430
429
  }
@@ -435,11 +434,11 @@ exports.addOverloadsToFunctionType = addOverloadsToFunctionType;
435
434
  // Given a @typing.deprecated call node, returns either '' or a custom
436
435
  // deprecation message if one is provided.
437
436
  function getDeprecatedMessageFromCall(node) {
438
- if (node.arguments.length > 0 &&
439
- node.arguments[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
440
- node.arguments[0].valueExpression.nodeType === 48 /* ParseNodeType.StringList */) {
441
- const stringListNode = node.arguments[0].valueExpression;
442
- const message = stringListNode.strings.map((s) => s.value).join('');
437
+ if (node.d.args.length > 0 &&
438
+ node.d.args[0].d.argCategory === 0 /* ArgumentCategory.Simple */ &&
439
+ node.d.args[0].d.valueExpr.nodeType === 48 /* ParseNodeType.StringList */) {
440
+ const stringListNode = node.d.args[0].d.valueExpr;
441
+ const message = stringListNode.d.strings.map((s) => s.d.value).join('');
443
442
  return (0, docStringConversion_1.convertDocStringToPlainText)(message);
444
443
  }
445
444
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../src/analyzer/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../src/analyzer/decorators.ts"],"names":[],"mappings":"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"}