@zzzen/pyright-internal 1.2.0-dev.20240630 → 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.
- package/dist/analyzer/analyzerNodeInfo.js +74 -46
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +507 -513
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +652 -633
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +5 -3
- package/dist/analyzer/codeFlowEngine.js +143 -122
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js +30 -28
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +1 -1
- package/dist/analyzer/constraintSolver.js +71 -67
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +22 -22
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +85 -77
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +113 -176
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +1 -1
- package/dist/analyzer/declarationUtils.js +14 -15
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +85 -85
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +71 -57
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +8 -18
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +40 -29
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +27 -27
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +33 -59
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +4 -4
- package/dist/analyzer/operations.js +70 -70
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +66 -62
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +4 -4
- package/dist/analyzer/parameterUtils.js +28 -46
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +268 -269
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +76 -76
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +195 -147
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +1 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +78 -147
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +22 -22
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -2
- package/dist/analyzer/sourceFile.js +8 -8
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +20 -19
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +83 -84
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/testWalker.js +2 -2
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +20 -20
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +25 -25
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +2330 -2367
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -31
- package/dist/analyzer/typeEvaluatorTypes.js +48 -41
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +221 -217
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +118 -115
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +104 -103
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +26 -9
- package/dist/analyzer/typeUtils.js +460 -404
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +8 -8
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +13 -10
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +96 -198
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +147 -103
- package/dist/analyzer/types.js +668 -493
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/diagnostic.d.ts +14 -0
- package/dist/common/diagnostic.js +41 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticSink.d.ts +4 -0
- package/dist/common/diagnosticSink.js +21 -1
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fullAccessHost.js +6 -4
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +1 -0
- package/dist/common/realFileSystem.js +4 -0
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/textEditTracker.js +14 -14
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/languageService/autoImporter.js +10 -10
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +23 -23
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +1 -1
- package/dist/languageService/completionProvider.js +156 -154
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +1 -1
- package/dist/languageService/definitionProvider.js +3 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +19 -19
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +25 -24
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +8 -8
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/referencesProvider.js +8 -8
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.d.ts +1 -1
- package/dist/languageService/signatureHelpProvider.js +6 -6
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +3 -3
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +13 -13
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parseNodes.d.ts +468 -401
- package/dist/parser/parseNodes.js +626 -355
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -0
- package/dist/parser/parser.js +322 -297
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +265 -5
- package/dist/pyright.js.map +1 -1
- package/dist/tests/classDeclaration.test.js +14 -14
- package/dist/tests/classDeclaration.test.js.map +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
- package/dist/tests/harness/vfs/filesystem.js +6 -2
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +4 -3
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +5 -5
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +8 -8
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +7 -7
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +2 -2
- package/dist/tests/typeEvaluator3.test.js +10 -5
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +2 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +14 -39
- package/dist/tests/typePrinter.test.js.map +1 -1
- 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
|
-
let evaluatorFlags = fileInfo.isStubFile ? 4 /*
|
44
|
-
if (decoratorNode.
|
45
|
-
evaluatorFlags |= 2 /*
|
43
|
+
let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
|
44
|
+
if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
|
45
|
+
evaluatorFlags |= 2 /* EvalFlags.CallBaseDefaults */;
|
46
46
|
}
|
47
|
-
const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.
|
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 (
|
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 (
|
55
|
+
else if (types_1.FunctionType.isBuiltIn(decoratorType, 'final')) {
|
56
56
|
flags |= 8192 /* FunctionTypeFlags.Final */;
|
57
57
|
}
|
58
|
-
else if (
|
58
|
+
else if (types_1.FunctionType.isBuiltIn(decoratorType, 'override')) {
|
59
59
|
flags |= 262144 /* FunctionTypeFlags.Overridden */;
|
60
60
|
}
|
61
|
-
else if (
|
61
|
+
else if (types_1.FunctionType.isBuiltIn(decoratorType, 'type_check_only')) {
|
62
62
|
flags |= 128 /* FunctionTypeFlags.TypeCheckOnly */;
|
63
63
|
}
|
64
|
-
else if (
|
64
|
+
else if (types_1.FunctionType.isBuiltIn(decoratorType, 'no_type_check')) {
|
65
65
|
flags |= 524288 /* FunctionTypeFlags.NoTypeCheck */;
|
66
66
|
}
|
67
|
-
else if (
|
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
|
}
|
@@ -96,28 +96,28 @@ exports.getFunctionInfoFromDecorators = getFunctionInfoFromDecorators;
|
|
96
96
|
function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, decoratorNode, functionNode) {
|
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
|
-
let evaluatorFlags = fileInfo.isStubFile ? 4 /*
|
100
|
-
if (decoratorNode.
|
101
|
-
evaluatorFlags |= 2 /*
|
99
|
+
let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
|
100
|
+
if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
|
101
|
+
evaluatorFlags |= 2 /* EvalFlags.CallBaseDefaults */;
|
102
102
|
}
|
103
|
-
const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.
|
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) &&
|
108
|
+
((0, types_1.isFunction)(decoratorType) && types_1.FunctionType.isBuiltIn(decoratorType, 'overload'))) {
|
109
109
|
if ((0, types_1.isFunction)(inputFunctionType)) {
|
110
|
-
inputFunctionType.
|
111
|
-
undecoratedType.
|
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.
|
116
|
-
const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.
|
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.
|
119
|
-
|
120
|
-
undecoratedType.
|
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 (
|
128
|
+
if (types_1.FunctionType.isBuiltIn(decoratorType, 'abstractmethod')) {
|
129
129
|
return inputFunctionType;
|
130
130
|
}
|
131
|
-
if (
|
132
|
-
undecoratedType.
|
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.
|
137
|
-
const baseType = evaluator.getTypeOfExpression(decoratorNode.
|
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.
|
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.
|
163
|
+
switch (decoratorType.shared.name) {
|
164
164
|
case 'classmethod':
|
165
165
|
case 'staticmethod': {
|
166
|
-
const requiredFlag = decoratorType.
|
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.
|
172
|
+
if ((0, types_1.isFunction)(inputFunctionType) && (inputFunctionType.shared.flags & requiredFlag) === 0) {
|
173
173
|
const newFunction = types_1.FunctionType.clone(inputFunctionType);
|
174
|
-
newFunction.
|
174
|
+
newFunction.shared.flags &= ~(1 /* FunctionTypeFlags.ConstructorMethod */ |
|
175
175
|
4 /* FunctionTypeFlags.StaticMethod */ |
|
176
176
|
2 /* FunctionTypeFlags.ClassMethod */);
|
177
|
-
newFunction.
|
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.
|
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.
|
211
|
-
returnType.
|
210
|
+
if (!returnType.shared.docString) {
|
211
|
+
returnType.shared.docString = inputFunctionType.shared.docString;
|
212
212
|
}
|
213
213
|
}
|
214
214
|
return returnType;
|
@@ -216,17 +216,17 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
|
|
216
216
|
exports.applyFunctionDecorator = applyFunctionDecorator;
|
217
217
|
function applyClassDecorator(evaluator, inputClassType, originalClassType, decoratorNode) {
|
218
218
|
const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
|
219
|
-
let flags = fileInfo.isStubFile ? 4 /*
|
220
|
-
if (decoratorNode.
|
221
|
-
flags |= 2 /*
|
219
|
+
let flags = fileInfo.isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
|
220
|
+
if (decoratorNode.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
|
221
|
+
flags |= 2 /* EvalFlags.CallBaseDefaults */;
|
222
222
|
}
|
223
|
-
const decoratorType = evaluator.getTypeOfExpression(decoratorNode.
|
224
|
-
if (decoratorNode.
|
225
|
-
const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.
|
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.
|
228
|
-
|
229
|
-
originalClassType.
|
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 (
|
243
|
-
originalClassType.
|
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 (
|
250
|
-
originalClassType.
|
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 (
|
254
|
-
originalClassType.
|
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.
|
264
|
-
callNode = decoratorNode.
|
265
|
-
const decoratorCallType = evaluator.getTypeOfExpression(callNode.
|
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.
|
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.
|
279
|
+
originalClassType.shared.deprecatedMessage = decoratorType.priv.deprecatedInstanceMessage;
|
280
280
|
return inputClassType;
|
281
281
|
}
|
282
282
|
}
|
@@ -286,11 +286,11 @@ exports.applyClassDecorator = applyClassDecorator;
|
|
286
286
|
function getTypeOfDecorator(evaluator, node, functionOrClassType) {
|
287
287
|
var _a, _b;
|
288
288
|
// Evaluate the type of the decorator expression.
|
289
|
-
let flags = (0, analyzerNodeInfo_1.getFileInfo)(node).isStubFile ? 4 /*
|
290
|
-
if (node.
|
291
|
-
flags |= 2 /*
|
289
|
+
let flags = (0, analyzerNodeInfo_1.getFileInfo)(node).isStubFile ? 4 /* EvalFlags.ForwardRefs */ : 0 /* EvalFlags.None */;
|
290
|
+
if (node.d.expr.nodeType !== 9 /* ParseNodeType.Call */) {
|
291
|
+
flags |= 2 /* EvalFlags.CallBaseDefaults */;
|
292
292
|
}
|
293
|
-
const decoratorTypeResult = evaluator.getTypeOfExpression(node.
|
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.
|
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.
|
323
|
-
if (!returnType.
|
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
|
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 || !
|
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.
|
344
|
-
decoratorTypeResult.type.
|
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.
|
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.
|
404
|
-
return types_1.FunctionType.cloneWithDocString(overload, implementation.
|
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.
|
412
|
+
if (implementation && implementation.shared.deprecatedMessage !== undefined) {
|
413
413
|
overloadedTypes = overloadedTypes.map((overload) => {
|
414
|
-
if (types_1.FunctionType.isOverloaded(overload) && overload.
|
415
|
-
return types_1.FunctionType.cloneWithDeprecatedMessage(overload, implementation.
|
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.
|
439
|
-
node.
|
440
|
-
node.
|
441
|
-
const stringListNode = node.
|
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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"}
|