@zzzen/pyright-internal 1.2.0-dev.20230618 → 1.2.0-dev.20230625
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.
- package/dist/analyzer/codeFlowEngine.js +28 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +2 -0
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +15 -1
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +6 -2
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +64 -0
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +7 -0
- package/dist/analyzer/decorators.js +438 -0
- package/dist/analyzer/decorators.js.map +1 -0
- package/dist/analyzer/operations.d.ts +1 -1
- package/dist/analyzer/operations.js +4 -4
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +2 -1
- package/dist/analyzer/parameterUtils.js +1 -0
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/protocols.js +2 -2
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +191 -577
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
- package/dist/analyzer/typeEvaluatorTypes.js +2 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +21 -18
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +2 -1
- package/dist/analyzer/typePrinter.js +27 -5
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +3 -1
- package/dist/analyzer/typeUtils.js +30 -10
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +9 -11
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +5 -3
- package/dist/analyzer/types.js +49 -11
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/extensibility.d.ts +3 -3
- package/dist/common/extensibility.js.map +1 -1
- package/dist/languageService/hoverProvider.js +13 -9
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +0 -4
- package/dist/localization/localize.js +0 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +0 -1
- package/dist/pyright.js +39 -2
- package/dist/pyright.js.map +1 -1
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/fourslash/completions.typeAlias.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.variableDocStrings.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docstring.alias.fourslash.js +3 -3
- package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js +1 -1
- package/dist/tests/positionUtils.test.js +10 -0
- package/dist/tests/positionUtils.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js +12 -1
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +184 -136
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +248 -330
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +218 -177
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +58 -46
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +2 -2
- package/package.json +1 -1
@@ -0,0 +1,438 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* decorators.ts
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
5
|
+
* Licensed under the MIT license.
|
6
|
+
* Author: Eric Traut
|
7
|
+
*
|
8
|
+
* Provides type evaluation logic that is specific to the application of
|
9
|
+
* function or class decorators.
|
10
|
+
*/
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.addOverloadsToFunctionType = exports.applyClassDecorator = exports.applyFunctionDecorator = exports.getFunctionFlagsFromDecorators = void 0;
|
13
|
+
const collectionUtils_1 = require("../common/collectionUtils");
|
14
|
+
const diagnosticRules_1 = require("../common/diagnosticRules");
|
15
|
+
const localize_1 = require("../localization/localize");
|
16
|
+
const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
|
17
|
+
const dataClasses_1 = require("./dataClasses");
|
18
|
+
const properties_1 = require("./properties");
|
19
|
+
const typeUtils_1 = require("./typeUtils");
|
20
|
+
const types_1 = require("./types");
|
21
|
+
// Scans through the decorators to find a few built-in decorators
|
22
|
+
// that affect the function flags.
|
23
|
+
function getFunctionFlagsFromDecorators(evaluator, node, isInClass) {
|
24
|
+
const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(node);
|
25
|
+
let flags = 0 /* None */;
|
26
|
+
if (isInClass) {
|
27
|
+
// The "__new__" magic method is not an instance method.
|
28
|
+
// It acts as a static method instead.
|
29
|
+
if (node.name.value === '__new__') {
|
30
|
+
flags |= 1 /* ConstructorMethod */;
|
31
|
+
}
|
32
|
+
// Several magic methods are treated as class methods implicitly
|
33
|
+
// by the runtime. Check for these here.
|
34
|
+
const implicitClassMethods = ['__init_subclass__', '__class_getitem__'];
|
35
|
+
if (implicitClassMethods.some((name) => node.name.value === name)) {
|
36
|
+
flags |= 2 /* ClassMethod */;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
for (const decoratorNode of node.decorators) {
|
40
|
+
// Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
|
41
|
+
let evaluatorFlags = fileInfo.isStubFile ? 4 /* AllowForwardReferences */ : 0 /* None */;
|
42
|
+
if (decoratorNode.expression.nodeType !== 9 /* Call */) {
|
43
|
+
evaluatorFlags |= 2 /* DoNotSpecialize */;
|
44
|
+
}
|
45
|
+
const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.expression, evaluatorFlags);
|
46
|
+
const decoratorType = decoratorTypeResult.type;
|
47
|
+
if ((0, types_1.isFunction)(decoratorType)) {
|
48
|
+
if (decoratorType.details.builtInName === 'abstractmethod') {
|
49
|
+
if (isInClass) {
|
50
|
+
flags |= 8 /* AbstractMethod */;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
else if (decoratorType.details.builtInName === 'final') {
|
54
|
+
flags |= 8192 /* Final */;
|
55
|
+
}
|
56
|
+
else if (decoratorType.details.builtInName === 'override') {
|
57
|
+
flags |= 262144 /* Overridden */;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
else if ((0, types_1.isInstantiableClass)(decoratorType)) {
|
61
|
+
if (types_1.ClassType.isBuiltIn(decoratorType, 'staticmethod')) {
|
62
|
+
if (isInClass) {
|
63
|
+
flags |= 4 /* StaticMethod */;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
else if (types_1.ClassType.isBuiltIn(decoratorType, 'classmethod')) {
|
67
|
+
if (isInClass) {
|
68
|
+
flags |= 2 /* ClassMethod */;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return flags;
|
74
|
+
}
|
75
|
+
exports.getFunctionFlagsFromDecorators = getFunctionFlagsFromDecorators;
|
76
|
+
// Transforms the input function type into an output type based on the
|
77
|
+
// decorator function described by the decoratorNode.
|
78
|
+
function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, decoratorNode, functionNode) {
|
79
|
+
const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
|
80
|
+
// Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
|
81
|
+
let evaluatorFlags = fileInfo.isStubFile ? 4 /* AllowForwardReferences */ : 0 /* None */;
|
82
|
+
if (decoratorNode.expression.nodeType !== 9 /* Call */) {
|
83
|
+
evaluatorFlags |= 2 /* DoNotSpecialize */;
|
84
|
+
}
|
85
|
+
const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.expression, evaluatorFlags);
|
86
|
+
const decoratorType = decoratorTypeResult.type;
|
87
|
+
// Special-case the "overload" because it has no definition. Older versions of typeshed
|
88
|
+
// defined "overload" as an object, but newer versions define it as a function.
|
89
|
+
if (((0, types_1.isInstantiableClass)(decoratorType) && types_1.ClassType.isSpecialBuiltIn(decoratorType, 'overload')) ||
|
90
|
+
((0, types_1.isFunction)(decoratorType) && decoratorType.details.builtInName === 'overload')) {
|
91
|
+
if ((0, types_1.isFunction)(inputFunctionType)) {
|
92
|
+
inputFunctionType.details.flags |= 256 /* Overloaded */;
|
93
|
+
undecoratedType.details.flags |= 256 /* Overloaded */;
|
94
|
+
return inputFunctionType;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
if (decoratorNode.expression.nodeType === 9 /* Call */) {
|
98
|
+
const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* DoNotSpecialize */).type;
|
99
|
+
if ((0, types_1.isFunction)(decoratorCallType)) {
|
100
|
+
if (decoratorCallType.details.name === '__dataclass_transform__' ||
|
101
|
+
decoratorCallType.details.builtInName === 'dataclass_transform') {
|
102
|
+
undecoratedType.details.decoratorDataClassBehaviors = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.expression);
|
103
|
+
return inputFunctionType;
|
104
|
+
}
|
105
|
+
if (decoratorCallType.details.builtInName === 'deprecated') {
|
106
|
+
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
107
|
+
return inputFunctionType;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
if ((0, types_1.isOverloadedFunction)(decoratorCallType)) {
|
111
|
+
if (decoratorCallType.overloads.length > 0 &&
|
112
|
+
decoratorCallType.overloads[0].details.builtInName === 'deprecated') {
|
113
|
+
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
114
|
+
return inputFunctionType;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
let returnType = getTypeOfDecorator(evaluator, decoratorNode, inputFunctionType);
|
119
|
+
// Check for some built-in decorator types with known semantics.
|
120
|
+
if ((0, types_1.isFunction)(decoratorType)) {
|
121
|
+
if (decoratorType.details.builtInName === 'abstractmethod') {
|
122
|
+
return inputFunctionType;
|
123
|
+
}
|
124
|
+
if (decoratorType.details.builtInName === 'deprecated') {
|
125
|
+
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
126
|
+
return inputFunctionType;
|
127
|
+
}
|
128
|
+
// Handle property setters and deleters.
|
129
|
+
if (decoratorNode.expression.nodeType === 35 /* MemberAccess */) {
|
130
|
+
const baseType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* DoNotSpecialize */).type;
|
131
|
+
if ((0, typeUtils_1.isProperty)(baseType)) {
|
132
|
+
const memberName = decoratorNode.expression.memberName.value;
|
133
|
+
if (memberName === 'setter') {
|
134
|
+
if ((0, types_1.isFunction)(inputFunctionType)) {
|
135
|
+
(0, properties_1.validatePropertyMethod)(evaluator, inputFunctionType, decoratorNode);
|
136
|
+
return (0, properties_1.clonePropertyWithSetter)(evaluator, baseType, inputFunctionType, functionNode);
|
137
|
+
}
|
138
|
+
else {
|
139
|
+
return inputFunctionType;
|
140
|
+
}
|
141
|
+
}
|
142
|
+
else if (memberName === 'deleter') {
|
143
|
+
if ((0, types_1.isFunction)(inputFunctionType)) {
|
144
|
+
(0, properties_1.validatePropertyMethod)(evaluator, inputFunctionType, decoratorNode);
|
145
|
+
return (0, properties_1.clonePropertyWithDeleter)(evaluator, baseType, inputFunctionType, functionNode);
|
146
|
+
}
|
147
|
+
else {
|
148
|
+
return inputFunctionType;
|
149
|
+
}
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
else if ((0, types_1.isOverloadedFunction)(decoratorType)) {
|
155
|
+
if (decoratorType.overloads.length > 0 && decoratorType.overloads[0].details.builtInName === 'deprecated') {
|
156
|
+
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
157
|
+
return inputFunctionType;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
else if ((0, types_1.isInstantiableClass)(decoratorType)) {
|
161
|
+
if (types_1.ClassType.isBuiltIn(decoratorType)) {
|
162
|
+
switch (decoratorType.details.name) {
|
163
|
+
case 'classmethod':
|
164
|
+
case 'staticmethod': {
|
165
|
+
const requiredFlag = decoratorType.details.name === 'classmethod'
|
166
|
+
? 2 /* ClassMethod */
|
167
|
+
: 4 /* StaticMethod */;
|
168
|
+
// If the function isn't currently a class method or static method
|
169
|
+
// (which can happen if the function was wrapped in a decorator),
|
170
|
+
// add the appropriate flag.
|
171
|
+
if ((0, types_1.isFunction)(inputFunctionType) && (inputFunctionType.details.flags & requiredFlag) === 0) {
|
172
|
+
const newFunction = types_1.FunctionType.clone(inputFunctionType);
|
173
|
+
newFunction.details.flags &= ~(1 /* ConstructorMethod */ |
|
174
|
+
4 /* StaticMethod */ |
|
175
|
+
2 /* ClassMethod */);
|
176
|
+
newFunction.details.flags |= requiredFlag;
|
177
|
+
return newFunction;
|
178
|
+
}
|
179
|
+
return inputFunctionType;
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
// Handle properties and subclasses of properties specially.
|
184
|
+
if (types_1.ClassType.isPropertyClass(decoratorType)) {
|
185
|
+
if ((0, types_1.isFunction)(inputFunctionType)) {
|
186
|
+
(0, properties_1.validatePropertyMethod)(evaluator, inputFunctionType, decoratorNode);
|
187
|
+
return (0, properties_1.createProperty)(evaluator, decoratorNode, decoratorType, inputFunctionType);
|
188
|
+
}
|
189
|
+
else if ((0, types_1.isClassInstance)(inputFunctionType)) {
|
190
|
+
const boundMethod = evaluator.getBoundMethod(inputFunctionType, '__call__');
|
191
|
+
if (boundMethod && (0, types_1.isFunction)(boundMethod)) {
|
192
|
+
return (0, properties_1.createProperty)(evaluator, decoratorNode, decoratorType, boundMethod);
|
193
|
+
}
|
194
|
+
return types_1.UnknownType.create();
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
if ((0, types_1.isFunction)(inputFunctionType) && (0, types_1.isFunction)(returnType)) {
|
199
|
+
returnType = types_1.FunctionType.clone(returnType);
|
200
|
+
// Copy the overload flag from the input function type.
|
201
|
+
if (types_1.FunctionType.isOverloaded(inputFunctionType)) {
|
202
|
+
returnType.details.flags |= 256 /* Overloaded */;
|
203
|
+
}
|
204
|
+
// Copy the docstrings from the input function type if the
|
205
|
+
// decorator didn't have its own docstring.
|
206
|
+
if (!returnType.details.docString) {
|
207
|
+
returnType.details.docString = inputFunctionType.details.docString;
|
208
|
+
}
|
209
|
+
}
|
210
|
+
return returnType;
|
211
|
+
}
|
212
|
+
exports.applyFunctionDecorator = applyFunctionDecorator;
|
213
|
+
function applyClassDecorator(evaluator, inputClassType, originalClassType, decoratorNode) {
|
214
|
+
const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
|
215
|
+
let flags = fileInfo.isStubFile ? 4 /* AllowForwardReferences */ : 0 /* None */;
|
216
|
+
if (decoratorNode.expression.nodeType !== 9 /* Call */) {
|
217
|
+
flags |= 2 /* DoNotSpecialize */;
|
218
|
+
}
|
219
|
+
const decoratorType = evaluator.getTypeOfExpression(decoratorNode.expression, flags).type;
|
220
|
+
if (decoratorNode.expression.nodeType === 9 /* Call */) {
|
221
|
+
const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, flags | 2 /* DoNotSpecialize */).type;
|
222
|
+
if ((0, types_1.isFunction)(decoratorCallType)) {
|
223
|
+
if (decoratorCallType.details.name === '__dataclass_transform__' ||
|
224
|
+
decoratorCallType.details.builtInName === 'dataclass_transform') {
|
225
|
+
originalClassType.details.classDataClassTransform = (0, dataClasses_1.validateDataClassTransformDecorator)(evaluator, decoratorNode.expression);
|
226
|
+
}
|
227
|
+
else if (decoratorCallType.details.builtInName === 'deprecated') {
|
228
|
+
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
229
|
+
return inputClassType;
|
230
|
+
}
|
231
|
+
}
|
232
|
+
if ((0, types_1.isOverloadedFunction)(decoratorCallType)) {
|
233
|
+
if (decoratorCallType.overloads.length > 0 &&
|
234
|
+
decoratorCallType.overloads[0].details.builtInName === 'deprecated') {
|
235
|
+
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
236
|
+
return inputClassType;
|
237
|
+
}
|
238
|
+
}
|
239
|
+
}
|
240
|
+
if ((0, types_1.isOverloadedFunction)(decoratorType)) {
|
241
|
+
const dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorType);
|
242
|
+
if (dataclassBehaviors) {
|
243
|
+
(0, dataClasses_1.applyDataClassDecorator)(evaluator, decoratorNode, originalClassType, dataclassBehaviors,
|
244
|
+
/* callNode */ undefined);
|
245
|
+
return inputClassType;
|
246
|
+
}
|
247
|
+
if (decoratorType.overloads.length > 0 && decoratorType.overloads[0].details.builtInName === 'deprecated') {
|
248
|
+
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
249
|
+
return inputClassType;
|
250
|
+
}
|
251
|
+
}
|
252
|
+
else if ((0, types_1.isFunction)(decoratorType)) {
|
253
|
+
if (decoratorType.details.builtInName === 'final') {
|
254
|
+
originalClassType.details.flags |= 4096 /* Final */;
|
255
|
+
// Don't call getTypeOfDecorator for final. We'll hard-code its
|
256
|
+
// behavior because its function definition results in a cyclical
|
257
|
+
// dependency between builtins, typing and _typeshed stubs.
|
258
|
+
return inputClassType;
|
259
|
+
}
|
260
|
+
if (decoratorType.details.builtInName === 'deprecated') {
|
261
|
+
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
|
262
|
+
return inputClassType;
|
263
|
+
}
|
264
|
+
if (decoratorType.details.builtInName === 'runtime_checkable') {
|
265
|
+
originalClassType.details.flags |= 32768 /* RuntimeCheckable */;
|
266
|
+
// Don't call getTypeOfDecorator for runtime_checkable. It appears
|
267
|
+
// frequently in stubs, and it's a waste of time to validate its
|
268
|
+
// parameters.
|
269
|
+
return inputClassType;
|
270
|
+
}
|
271
|
+
// Is this a dataclass decorator?
|
272
|
+
let dataclassBehaviors;
|
273
|
+
let callNode;
|
274
|
+
if (decoratorNode.expression.nodeType === 9 /* Call */) {
|
275
|
+
callNode = decoratorNode.expression;
|
276
|
+
const decoratorCallType = evaluator.getTypeOfExpression(callNode.leftExpression, flags | 2 /* DoNotSpecialize */).type;
|
277
|
+
dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorCallType);
|
278
|
+
}
|
279
|
+
else {
|
280
|
+
const decoratorType = evaluator.getTypeOfExpression(decoratorNode.expression, flags).type;
|
281
|
+
dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorType);
|
282
|
+
}
|
283
|
+
if (dataclassBehaviors) {
|
284
|
+
(0, dataClasses_1.applyDataClassDecorator)(evaluator, decoratorNode, originalClassType, dataclassBehaviors, callNode);
|
285
|
+
return inputClassType;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
return getTypeOfDecorator(evaluator, decoratorNode, inputClassType);
|
289
|
+
}
|
290
|
+
exports.applyClassDecorator = applyClassDecorator;
|
291
|
+
function getTypeOfDecorator(evaluator, node, functionOrClassType) {
|
292
|
+
// Evaluate the type of the decorator expression.
|
293
|
+
let flags = (0, analyzerNodeInfo_1.getFileInfo)(node).isStubFile ? 4 /* AllowForwardReferences */ : 0 /* None */;
|
294
|
+
if (node.expression.nodeType !== 9 /* Call */) {
|
295
|
+
flags |= 2 /* DoNotSpecialize */;
|
296
|
+
}
|
297
|
+
const decoratorTypeResult = evaluator.getTypeOfExpression(node.expression, flags);
|
298
|
+
// Special-case typing.type_check_only. It's used in many stdlib
|
299
|
+
// functions, and pyright treats it as a no-op, so don't waste
|
300
|
+
// time evaluating it.
|
301
|
+
if ((0, types_1.isFunction)(decoratorTypeResult.type) && decoratorTypeResult.type.details.builtInName === 'type_check_only') {
|
302
|
+
return functionOrClassType;
|
303
|
+
}
|
304
|
+
// Special-case the combination of a classmethod decorator applied
|
305
|
+
// to a property. This is allowed in Python 3.9, but it's not reflected
|
306
|
+
// in the builtins.pyi stub for classmethod.
|
307
|
+
if ((0, types_1.isInstantiableClass)(decoratorTypeResult.type) &&
|
308
|
+
types_1.ClassType.isBuiltIn(decoratorTypeResult.type, 'classmethod') &&
|
309
|
+
(0, typeUtils_1.isProperty)(functionOrClassType)) {
|
310
|
+
return functionOrClassType;
|
311
|
+
}
|
312
|
+
const argList = [
|
313
|
+
{
|
314
|
+
argumentCategory: 0 /* Simple */,
|
315
|
+
typeResult: { type: functionOrClassType },
|
316
|
+
},
|
317
|
+
];
|
318
|
+
const returnType = evaluator.validateCallArguments(node.expression, argList, decoratorTypeResult,
|
319
|
+
/* typeVarContext */ undefined,
|
320
|
+
/* skipUnknownArgCheck */ true).returnType || types_1.UnknownType.create();
|
321
|
+
// If the return type is a function that has no annotations
|
322
|
+
// and just *args and **kwargs parameters, assume that it
|
323
|
+
// preserves the type of the input function.
|
324
|
+
if ((0, types_1.isFunction)(returnType) && !returnType.details.declaredReturnType) {
|
325
|
+
if (!returnType.details.parameters.some((param, index) => {
|
326
|
+
// Don't allow * or / separators or params with declared types.
|
327
|
+
if (!param.name || param.hasDeclaredType) {
|
328
|
+
return true;
|
329
|
+
}
|
330
|
+
// Allow *args or **kwargs parameters.
|
331
|
+
if (param.category !== 0 /* Simple */) {
|
332
|
+
return false;
|
333
|
+
}
|
334
|
+
// Allow inferred "self" or "cls" parameters.
|
335
|
+
return index !== 0 || !param.isTypeInferred;
|
336
|
+
})) {
|
337
|
+
return functionOrClassType;
|
338
|
+
}
|
339
|
+
}
|
340
|
+
// If the decorator is completely unannotated and the return type
|
341
|
+
// includes unknowns, assume that it preserves the type of the input
|
342
|
+
// function.
|
343
|
+
if ((0, typeUtils_1.isPartlyUnknown)(returnType)) {
|
344
|
+
if ((0, types_1.isFunction)(decoratorTypeResult.type)) {
|
345
|
+
if (!decoratorTypeResult.type.details.parameters.find((param) => param.typeAnnotation !== undefined) &&
|
346
|
+
decoratorTypeResult.type.details.declaredReturnType === undefined) {
|
347
|
+
return functionOrClassType;
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}
|
351
|
+
return returnType;
|
352
|
+
}
|
353
|
+
// Given a function node and the function type associated with it, this
|
354
|
+
// method searches for prior function nodes that are marked as @overload
|
355
|
+
// and creates an OverloadedFunctionType that includes this function and
|
356
|
+
// all previous ones.
|
357
|
+
function addOverloadsToFunctionType(evaluator, node, type) {
|
358
|
+
let functionDecl;
|
359
|
+
const decl = (0, analyzerNodeInfo_1.getDeclaration)(node);
|
360
|
+
if (decl) {
|
361
|
+
functionDecl = decl;
|
362
|
+
}
|
363
|
+
const symbolWithScope = evaluator.lookUpSymbolRecursive(node, node.name.value, /* honorCodeFlow */ false);
|
364
|
+
if (symbolWithScope) {
|
365
|
+
const decls = symbolWithScope.symbol.getDeclarations();
|
366
|
+
// Find this function's declaration.
|
367
|
+
const declIndex = decls.findIndex((decl) => decl === functionDecl);
|
368
|
+
if (declIndex > 0) {
|
369
|
+
// Evaluate all of the previous function declarations. They will
|
370
|
+
// be cached. We do it in this order to avoid a stack overflow due
|
371
|
+
// to recursion if there is a large number (1000's) of overloads.
|
372
|
+
for (let i = 0; i < declIndex; i++) {
|
373
|
+
const decl = decls[i];
|
374
|
+
if (decl.type === 5 /* Function */) {
|
375
|
+
evaluator.getTypeOfFunction(decl.node);
|
376
|
+
}
|
377
|
+
}
|
378
|
+
let overloadedTypes = [];
|
379
|
+
// Look at the previous declaration's type.
|
380
|
+
const prevDecl = decls[declIndex - 1];
|
381
|
+
if (prevDecl.type === 5 /* Function */) {
|
382
|
+
const prevDeclDeclTypeInfo = evaluator.getTypeOfFunction(prevDecl.node);
|
383
|
+
if (prevDeclDeclTypeInfo) {
|
384
|
+
if ((0, types_1.isFunction)(prevDeclDeclTypeInfo.decoratedType)) {
|
385
|
+
if (types_1.FunctionType.isOverloaded(prevDeclDeclTypeInfo.decoratedType)) {
|
386
|
+
overloadedTypes.push(prevDeclDeclTypeInfo.decoratedType);
|
387
|
+
}
|
388
|
+
}
|
389
|
+
else if ((0, types_1.isOverloadedFunction)(prevDeclDeclTypeInfo.decoratedType)) {
|
390
|
+
// If the previous declaration was itself an overloaded function,
|
391
|
+
// copy the entries from it.
|
392
|
+
(0, collectionUtils_1.appendArray)(overloadedTypes, prevDeclDeclTypeInfo.decoratedType.overloads);
|
393
|
+
}
|
394
|
+
}
|
395
|
+
}
|
396
|
+
overloadedTypes.push(type);
|
397
|
+
if (overloadedTypes.length === 1) {
|
398
|
+
return overloadedTypes[0];
|
399
|
+
}
|
400
|
+
// Apply the implementation's docstring to any overloads that don't
|
401
|
+
// have their own docstrings.
|
402
|
+
const implementation = overloadedTypes.find((signature) => !types_1.FunctionType.isOverloaded(signature));
|
403
|
+
if (implementation === null || implementation === void 0 ? void 0 : implementation.details.docString) {
|
404
|
+
overloadedTypes = overloadedTypes.map((overload) => {
|
405
|
+
if (types_1.FunctionType.isOverloaded(overload) && !overload.details.docString) {
|
406
|
+
return types_1.FunctionType.cloneWithDocString(overload, implementation.details.docString);
|
407
|
+
}
|
408
|
+
return overload;
|
409
|
+
});
|
410
|
+
}
|
411
|
+
// Create a new overloaded type that copies the contents of the previous
|
412
|
+
// one and adds a new function.
|
413
|
+
const newOverload = types_1.OverloadedFunctionType.create(overloadedTypes);
|
414
|
+
const prevOverload = overloadedTypes[overloadedTypes.length - 2];
|
415
|
+
const isPrevOverloadAbstract = types_1.FunctionType.isAbstractMethod(prevOverload);
|
416
|
+
const isCurrentOverloadAbstract = types_1.FunctionType.isAbstractMethod(type);
|
417
|
+
if (isPrevOverloadAbstract !== isCurrentOverloadAbstract) {
|
418
|
+
evaluator.addDiagnostic((0, analyzerNodeInfo_1.getFileInfo)(node).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.overloadAbstractMismatch().format({ name: node.name.value }), node.name);
|
419
|
+
}
|
420
|
+
return newOverload;
|
421
|
+
}
|
422
|
+
}
|
423
|
+
return type;
|
424
|
+
}
|
425
|
+
exports.addOverloadsToFunctionType = addOverloadsToFunctionType;
|
426
|
+
// Given a @typing.deprecated decorator node, returns either '' or a custom
|
427
|
+
// deprecation message if one is provided.
|
428
|
+
function getCustomDeprecationMessage(decorator) {
|
429
|
+
if (decorator.expression.nodeType === 9 /* Call */ &&
|
430
|
+
decorator.expression.arguments.length > 0 &&
|
431
|
+
decorator.expression.arguments[0].argumentCategory === 0 /* Simple */ &&
|
432
|
+
decorator.expression.arguments[0].valueExpression.nodeType === 48 /* StringList */ &&
|
433
|
+
decorator.expression.arguments[0].valueExpression.strings.length === 1) {
|
434
|
+
return decorator.expression.arguments[0].valueExpression.strings[0].value;
|
435
|
+
}
|
436
|
+
return '';
|
437
|
+
}
|
438
|
+
//# sourceMappingURL=decorators.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/analyzer/decorators.ts"],"names":[],"mappings":"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"}
|
@@ -9,7 +9,7 @@ interface BinaryOperationOptions {
|
|
9
9
|
isTupleAddAllowed?: boolean;
|
10
10
|
}
|
11
11
|
export declare function validateBinaryOperation(evaluator: TypeEvaluator, operator: OperatorType, leftTypeResult: TypeResult, rightTypeResult: TypeResult, errorNode: ExpressionNode, inferenceContext: InferenceContext | undefined, diag: DiagnosticAddendum, options: BinaryOperationOptions): Type | undefined;
|
12
|
-
export declare function getTypeOfBinaryOperation(evaluator: TypeEvaluator, node: BinaryOperationNode, inferenceContext: InferenceContext | undefined
|
12
|
+
export declare function getTypeOfBinaryOperation(evaluator: TypeEvaluator, node: BinaryOperationNode, flags: EvaluatorFlags, inferenceContext: InferenceContext | undefined): TypeResult;
|
13
13
|
export declare function getTypeOfAugmentedAssignment(evaluator: TypeEvaluator, node: AugmentedAssignmentNode, inferenceContext: InferenceContext | undefined): TypeResult;
|
14
14
|
export declare function getTypeOfUnaryOperation(evaluator: TypeEvaluator, node: UnaryOperationNode, inferenceContext: InferenceContext | undefined): TypeResult;
|
15
15
|
export declare function getTypeOfTernaryOperation(evaluator: TypeEvaluator, node: TernaryNode, flags: EvaluatorFlags, inferenceContext: InferenceContext | undefined): TypeResult;
|
@@ -318,7 +318,7 @@ function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeR
|
|
318
318
|
return type && (0, types_1.isNever)(type) ? undefined : type;
|
319
319
|
}
|
320
320
|
exports.validateBinaryOperation = validateBinaryOperation;
|
321
|
-
function getTypeOfBinaryOperation(evaluator, node,
|
321
|
+
function getTypeOfBinaryOperation(evaluator, node, flags, inferenceContext) {
|
322
322
|
const leftExpression = node.leftExpression;
|
323
323
|
let rightExpression = node.rightExpression;
|
324
324
|
let isIncomplete = false;
|
@@ -331,7 +331,7 @@ function getTypeOfBinaryOperation(evaluator, node, inferenceContext, flags) {
|
|
331
331
|
!rightExpression.parenthesized &&
|
332
332
|
(0, parseTreeUtils_1.operatorSupportsChaining)(rightExpression.operator)) {
|
333
333
|
// Evaluate the right expression so it is type checked.
|
334
|
-
getTypeOfBinaryOperation(evaluator, rightExpression,
|
334
|
+
getTypeOfBinaryOperation(evaluator, rightExpression, flags, inferenceContext);
|
335
335
|
// Use the left side of the right expression for comparison purposes.
|
336
336
|
rightExpression = rightExpression.leftExpression;
|
337
337
|
}
|
@@ -415,8 +415,8 @@ function getTypeOfBinaryOperation(evaluator, node, inferenceContext, flags) {
|
|
415
415
|
!evaluator.validateTypeArg({ ...rightTypeResult, node: rightExpression }, { allowVariadicTypeVar: true, allowUnpackedTuples: true })) {
|
416
416
|
return { type: types_1.UnknownType.create() };
|
417
417
|
}
|
418
|
-
adjustedLeftType = evaluator.reportMissingTypeArguments(node.leftExpression, adjustedLeftType, flags | 128 /*
|
419
|
-
adjustedRightType = evaluator.reportMissingTypeArguments(node.rightExpression, adjustedRightType, flags | 128 /*
|
418
|
+
adjustedLeftType = evaluator.reportMissingTypeArguments(node.leftExpression, adjustedLeftType, flags | 128 /* ExpectingInstantiableType */);
|
419
|
+
adjustedRightType = evaluator.reportMissingTypeArguments(node.rightExpression, adjustedRightType, flags | 128 /* ExpectingInstantiableType */);
|
420
420
|
const newUnion = (0, types_1.combineTypes)([adjustedLeftType, adjustedRightType]);
|
421
421
|
if ((0, types_1.isUnion)(newUnion)) {
|
422
422
|
types_1.TypeBase.setSpecialForm(newUnion);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/analyzer/operations.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/analyzer/operations.ts"],"names":[],"mappings":"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"}
|