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

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 (147) 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 +649 -634
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +87 -101
  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 +68 -64
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constructorTransform.js +22 -22
  15. package/dist/analyzer/constructorTransform.js.map +1 -1
  16. package/dist/analyzer/constructors.js +51 -48
  17. package/dist/analyzer/constructors.js.map +1 -1
  18. package/dist/analyzer/dataClasses.js +109 -175
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/declarationUtils.js +14 -15
  21. package/dist/analyzer/declarationUtils.js.map +1 -1
  22. package/dist/analyzer/decorators.js +77 -77
  23. package/dist/analyzer/decorators.js.map +1 -1
  24. package/dist/analyzer/enums.js +70 -56
  25. package/dist/analyzer/enums.js.map +1 -1
  26. package/dist/analyzer/functionTransform.js +8 -18
  27. package/dist/analyzer/functionTransform.js.map +1 -1
  28. package/dist/analyzer/importResolver.d.ts +2 -1
  29. package/dist/analyzer/importResolver.js +40 -29
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/importStatementUtils.js +27 -27
  32. package/dist/analyzer/importStatementUtils.js.map +1 -1
  33. package/dist/analyzer/namedTuples.js +33 -59
  34. package/dist/analyzer/namedTuples.js.map +1 -1
  35. package/dist/analyzer/operations.js +66 -66
  36. package/dist/analyzer/operations.js.map +1 -1
  37. package/dist/analyzer/packageTypeVerifier.js +66 -62
  38. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  39. package/dist/analyzer/parameterUtils.d.ts +4 -4
  40. package/dist/analyzer/parameterUtils.js +28 -46
  41. package/dist/analyzer/parameterUtils.js.map +1 -1
  42. package/dist/analyzer/parseTreeUtils.js +268 -269
  43. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  44. package/dist/analyzer/parseTreeWalker.js +76 -76
  45. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  46. package/dist/analyzer/patternMatching.js +176 -143
  47. package/dist/analyzer/patternMatching.js.map +1 -1
  48. package/dist/analyzer/program.js +1 -1
  49. package/dist/analyzer/program.js.map +1 -1
  50. package/dist/analyzer/properties.js +78 -147
  51. package/dist/analyzer/properties.js.map +1 -1
  52. package/dist/analyzer/protocols.js +21 -21
  53. package/dist/analyzer/protocols.js.map +1 -1
  54. package/dist/analyzer/sourceFile.js +3 -3
  55. package/dist/analyzer/sourceFile.js.map +1 -1
  56. package/dist/analyzer/sourceMapper.js +20 -19
  57. package/dist/analyzer/sourceMapper.js.map +1 -1
  58. package/dist/analyzer/staticExpressions.js +83 -84
  59. package/dist/analyzer/staticExpressions.js.map +1 -1
  60. package/dist/analyzer/testWalker.js +2 -2
  61. package/dist/analyzer/testWalker.js.map +1 -1
  62. package/dist/analyzer/tracePrinter.js +20 -20
  63. package/dist/analyzer/tracePrinter.js.map +1 -1
  64. package/dist/analyzer/typeDocStringUtils.js +25 -25
  65. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  66. package/dist/analyzer/typeEvaluator.js +1884 -1937
  67. package/dist/analyzer/typeEvaluator.js.map +1 -1
  68. package/dist/analyzer/typeEvaluatorTypes.d.ts +6 -5
  69. package/dist/analyzer/typeEvaluatorTypes.js +4 -1
  70. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  71. package/dist/analyzer/typeGuards.js +211 -211
  72. package/dist/analyzer/typeGuards.js.map +1 -1
  73. package/dist/analyzer/typePrinter.js +118 -115
  74. package/dist/analyzer/typePrinter.js.map +1 -1
  75. package/dist/analyzer/typeStubWriter.js +104 -103
  76. package/dist/analyzer/typeStubWriter.js.map +1 -1
  77. package/dist/analyzer/typeUtils.d.ts +14 -3
  78. package/dist/analyzer/typeUtils.js +432 -402
  79. package/dist/analyzer/typeUtils.js.map +1 -1
  80. package/dist/analyzer/typeVarContext.js +8 -8
  81. package/dist/analyzer/typeVarContext.js.map +1 -1
  82. package/dist/analyzer/typeWalker.js +13 -10
  83. package/dist/analyzer/typeWalker.js.map +1 -1
  84. package/dist/analyzer/typedDicts.js +96 -198
  85. package/dist/analyzer/typedDicts.js.map +1 -1
  86. package/dist/analyzer/types.d.ts +144 -102
  87. package/dist/analyzer/types.js +662 -494
  88. package/dist/analyzer/types.js.map +1 -1
  89. package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
  90. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  91. package/dist/common/fileSystem.d.ts +1 -0
  92. package/dist/common/fileSystem.js.map +1 -1
  93. package/dist/common/fullAccessHost.js +6 -4
  94. package/dist/common/fullAccessHost.js.map +1 -1
  95. package/dist/common/realFileSystem.d.ts +1 -0
  96. package/dist/common/realFileSystem.js +4 -0
  97. package/dist/common/realFileSystem.js.map +1 -1
  98. package/dist/common/textEditTracker.js +14 -14
  99. package/dist/common/textEditTracker.js.map +1 -1
  100. package/dist/languageService/autoImporter.js +10 -10
  101. package/dist/languageService/autoImporter.js.map +1 -1
  102. package/dist/languageService/callHierarchyProvider.js +23 -23
  103. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  104. package/dist/languageService/completionProvider.js +153 -151
  105. package/dist/languageService/completionProvider.js.map +1 -1
  106. package/dist/languageService/definitionProvider.d.ts +1 -1
  107. package/dist/languageService/definitionProvider.js +3 -1
  108. package/dist/languageService/definitionProvider.js.map +1 -1
  109. package/dist/languageService/documentSymbolCollector.js +19 -19
  110. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  111. package/dist/languageService/hoverProvider.js +25 -24
  112. package/dist/languageService/hoverProvider.js.map +1 -1
  113. package/dist/languageService/importSorter.js +8 -8
  114. package/dist/languageService/importSorter.js.map +1 -1
  115. package/dist/languageService/referencesProvider.js +8 -8
  116. package/dist/languageService/referencesProvider.js.map +1 -1
  117. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  118. package/dist/languageService/signatureHelpProvider.js +6 -6
  119. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  120. package/dist/languageService/symbolIndexer.js +3 -3
  121. package/dist/languageService/symbolIndexer.js.map +1 -1
  122. package/dist/languageService/tooltipUtils.js +13 -13
  123. package/dist/languageService/tooltipUtils.js.map +1 -1
  124. package/dist/parser/parseNodes.d.ts +468 -401
  125. package/dist/parser/parseNodes.js +626 -355
  126. package/dist/parser/parseNodes.js.map +1 -1
  127. package/dist/parser/parser.d.ts +1 -0
  128. package/dist/parser/parser.js +316 -294
  129. package/dist/parser/parser.js.map +1 -1
  130. package/dist/tests/classDeclaration.test.js +14 -14
  131. package/dist/tests/classDeclaration.test.js.map +1 -1
  132. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  133. package/dist/tests/harness/vfs/filesystem.js +6 -2
  134. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  135. package/dist/tests/importResolver.test.js +4 -3
  136. package/dist/tests/importResolver.test.js.map +1 -1
  137. package/dist/tests/parseTreeUtils.test.js +5 -5
  138. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  139. package/dist/tests/parser.test.js +8 -8
  140. package/dist/tests/parser.test.js.map +1 -1
  141. package/dist/tests/sourceMapperUtils.test.js +7 -7
  142. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  143. package/dist/tests/typeEvaluator3.test.js +8 -3
  144. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  145. package/dist/tests/typePrinter.test.js +14 -39
  146. package/dist/tests/typePrinter.test.js.map +1 -1
  147. 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,7 +305,7 @@ 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
311
  /* inferenceContext */ undefined,
@@ -319,10 +319,10 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
319
319
  // If the return type is a function that has no annotations
320
320
  // and just *args and **kwargs parameters, assume that it
321
321
  // 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) => {
322
+ if ((0, types_1.isFunction)(returnType) && !returnType.shared.declaredReturnType) {
323
+ if (!returnType.shared.parameters.some((param, index) => {
324
324
  // Don't allow * or / separators or params with declared types.
325
- if (!param.name || param.hasDeclaredType) {
325
+ if (!param.name || types_1.FunctionParam.isTypeDeclared(param)) {
326
326
  return true;
327
327
  }
328
328
  // Allow *args or **kwargs parameters.
@@ -330,7 +330,7 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
330
330
  return false;
331
331
  }
332
332
  // Allow inferred "self" or "cls" parameters.
333
- return index !== 0 || !param.isTypeInferred;
333
+ return index !== 0 || !types_1.FunctionParam.isTypeInferred(param);
334
334
  })) {
335
335
  return functionOrClassType;
336
336
  }
@@ -340,8 +340,8 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
340
340
  // function.
341
341
  if ((0, typeUtils_1.isPartlyUnknown)(returnType)) {
342
342
  if ((0, types_1.isFunction)(decoratorTypeResult.type)) {
343
- if (!decoratorTypeResult.type.details.parameters.find((param) => param.typeAnnotation !== undefined) &&
344
- decoratorTypeResult.type.details.declaredReturnType === undefined) {
343
+ if (!decoratorTypeResult.type.shared.parameters.find((param) => types_1.FunctionParam.isTypeDeclared(param)) &&
344
+ decoratorTypeResult.type.shared.declaredReturnType === undefined) {
345
345
  return functionOrClassType;
346
346
  }
347
347
  }
@@ -358,7 +358,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
358
358
  if (decl) {
359
359
  functionDecl = decl;
360
360
  }
361
- const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.name.value, /* honorCodeFlow */ false);
361
+ const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.d.name.d.value, /* honorCodeFlow */ false);
362
362
  if (symbolWithScope) {
363
363
  const decls = symbolWithScope.symbol.getDeclarations();
364
364
  // Find this function's declaration.
@@ -387,7 +387,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
387
387
  else if ((0, types_1.isOverloadedFunction)(prevDeclDeclTypeInfo.decoratedType)) {
388
388
  // If the previous declaration was itself an overloaded function,
389
389
  // copy the entries from it.
390
- (0, collectionUtils_1.appendArray)(overloadedTypes, prevDeclDeclTypeInfo.decoratedType.overloads);
390
+ (0, collectionUtils_1.appendArray)(overloadedTypes, prevDeclDeclTypeInfo.decoratedType.priv.overloads);
391
391
  }
392
392
  }
393
393
  }
@@ -398,10 +398,10 @@ function addOverloadsToFunctionType(evaluator, node, type) {
398
398
  // Apply the implementation's docstring to any overloads that don't
399
399
  // have their own docstrings.
400
400
  const implementation = overloadedTypes.find((signature) => !types_1.FunctionType.isOverloaded(signature));
401
- if (implementation === null || implementation === void 0 ? void 0 : implementation.details.docString) {
401
+ if (implementation === null || implementation === void 0 ? void 0 : implementation.shared.docString) {
402
402
  overloadedTypes = overloadedTypes.map((overload) => {
403
- if (types_1.FunctionType.isOverloaded(overload) && !overload.details.docString) {
404
- return types_1.FunctionType.cloneWithDocString(overload, implementation.details.docString);
403
+ if (types_1.FunctionType.isOverloaded(overload) && !overload.shared.docString) {
404
+ return types_1.FunctionType.cloneWithDocString(overload, implementation.shared.docString);
405
405
  }
406
406
  return overload;
407
407
  });
@@ -409,10 +409,10 @@ function addOverloadsToFunctionType(evaluator, node, type) {
409
409
  // PEP 702 indicates that if the implementation of an overloaded
410
410
  // function is marked deprecated, all of the overloads should be
411
411
  // treated as deprecated as well.
412
- if (implementation && implementation.details.deprecatedMessage !== undefined) {
412
+ if (implementation && implementation.shared.deprecatedMessage !== undefined) {
413
413
  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);
414
+ if (types_1.FunctionType.isOverloaded(overload) && overload.shared.deprecatedMessage === undefined) {
415
+ return types_1.FunctionType.cloneWithDeprecatedMessage(overload, implementation.shared.deprecatedMessage);
416
416
  }
417
417
  return overload;
418
418
  });
@@ -424,7 +424,7 @@ function addOverloadsToFunctionType(evaluator, node, type) {
424
424
  const isPrevOverloadAbstract = types_1.FunctionType.isAbstractMethod(prevOverload);
425
425
  const isCurrentOverloadAbstract = types_1.FunctionType.isAbstractMethod(type);
426
426
  if (isPrevOverloadAbstract !== isCurrentOverloadAbstract) {
427
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadAbstractMismatch().format({ name: node.name.value }), node.name);
427
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadAbstractMismatch().format({ name: node.d.name.d.value }), node.d.name);
428
428
  }
429
429
  return newOverload;
430
430
  }
@@ -435,11 +435,11 @@ exports.addOverloadsToFunctionType = addOverloadsToFunctionType;
435
435
  // Given a @typing.deprecated call node, returns either '' or a custom
436
436
  // deprecation message if one is provided.
437
437
  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('');
438
+ if (node.d.args.length > 0 &&
439
+ node.d.args[0].d.argCategory === 0 /* ArgumentCategory.Simple */ &&
440
+ node.d.args[0].d.valueExpr.nodeType === 48 /* ParseNodeType.StringList */) {
441
+ const stringListNode = node.d.args[0].d.valueExpr;
442
+ const message = stringListNode.d.strings.map((s) => s.d.value).join('');
443
443
  return (0, docStringConversion_1.convertDocStringToPlainText)(message);
444
444
  }
445
445
  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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"}