@zzzen/pyright-internal 1.1.254 → 1.2.0-dev.2022-07-02
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
- package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +9 -2
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +19 -26
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +33 -0
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -4
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.js +11 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/importResult.js +7 -0
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +10 -1
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +1 -1
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/packageTypeReport.js +10 -1
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +11 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/program.d.ts +2 -1
- package/dist/analyzer/program.js +27 -23
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +3 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scope.js +22 -1
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/service.d.ts +20 -8
- package/dist/analyzer/service.js +39 -19
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +1 -1
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +2 -0
- package/dist/analyzer/sourceFileInfoUtils.js +15 -0
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -0
- package/dist/analyzer/symbol.d.ts +3 -1
- package/dist/analyzer/symbol.js +39 -1
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +10 -2
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +86 -32
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -1
- package/dist/analyzer/typeEvaluatorTypes.js +65 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +2 -0
- package/dist/analyzer/typeGuards.js +113 -69
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +23 -1
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +119 -28
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -1
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +195 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -1
- package/dist/commands/commands.js +9 -0
- package/dist/commands/commands.js.map +1 -1
- package/dist/common/commandLineOptions.js +8 -1
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/core.js +7 -1
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.js +9 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/host.js +7 -1
- package/dist/common/host.js.map +1 -1
- package/dist/common/pathUtils.d.ts +1 -0
- package/dist/common/pathUtils.js +34 -1
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/stringUtils.d.ts +1 -0
- package/dist/common/stringUtils.js +8 -1
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +10 -3
- package/dist/languageServerBase.js +40 -14
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +3 -0
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.js +2 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +3 -5
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/parser/parseNodes.d.ts +3 -0
- package/dist/parser/parseNodes.js +110 -2
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +0 -1
- package/dist/parser/parser.js +26 -12
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js +8 -1
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizerTypes.js +155 -1
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/pyright.js +6 -1
- package/dist/pyright.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +12 -9
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +4 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/config.test.js +14 -13
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/debug.test.js +6 -0
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js +53 -0
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js.map +1 -0
- package/dist/tests/fourslash/fourslash.d.ts +16 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.js +24 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/fourSlashParser.js +6 -0
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js +19 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +9 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -0
- package/dist/tests/harness/fourslash/testState.Consts.js +1 -0
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +4 -3
- package/dist/tests/harness/fourslash/testState.js +27 -11
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +25 -1
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/pathUtils.test.js +17 -0
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/testUtils.js +1 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +9 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +9 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +4 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/workspaceMap.d.ts +2 -1
- package/dist/workspaceMap.js +25 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +45 -44
@@ -9,8 +9,72 @@
|
|
9
9
|
*
|
10
10
|
*/
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.maxSubtypesForInferredType = void 0;
|
12
|
+
exports.EvaluatorFlags = exports.maxSubtypesForInferredType = void 0;
|
13
13
|
// Maximum number of unioned subtypes for an inferred type (e.g.
|
14
14
|
// a list) before the type is considered an "Any".
|
15
15
|
exports.maxSubtypesForInferredType = 64;
|
16
|
+
var EvaluatorFlags;
|
17
|
+
(function (EvaluatorFlags) {
|
18
|
+
EvaluatorFlags[EvaluatorFlags["None"] = 0] = "None";
|
19
|
+
// Interpret an ellipsis type annotation to mean "Any".
|
20
|
+
EvaluatorFlags[EvaluatorFlags["ConvertEllipsisToAny"] = 1] = "ConvertEllipsisToAny";
|
21
|
+
// Normally a generic named type is specialized with "Any"
|
22
|
+
// types. This flag indicates that specialization shouldn't take
|
23
|
+
// place.
|
24
|
+
EvaluatorFlags[EvaluatorFlags["DoNotSpecialize"] = 2] = "DoNotSpecialize";
|
25
|
+
// Allow forward references. Don't report unbound errors.
|
26
|
+
EvaluatorFlags[EvaluatorFlags["AllowForwardReferences"] = 4] = "AllowForwardReferences";
|
27
|
+
// Treat string literal as a type.
|
28
|
+
EvaluatorFlags[EvaluatorFlags["EvaluateStringLiteralAsType"] = 8] = "EvaluateStringLiteralAsType";
|
29
|
+
// 'Final' is not allowed in this context.
|
30
|
+
EvaluatorFlags[EvaluatorFlags["FinalDisallowed"] = 16] = "FinalDisallowed";
|
31
|
+
// A ParamSpec isn't allowed in this context.
|
32
|
+
EvaluatorFlags[EvaluatorFlags["ParamSpecDisallowed"] = 32] = "ParamSpecDisallowed";
|
33
|
+
// Expression is expected to be a type (class) rather
|
34
|
+
// than an instance (object)
|
35
|
+
EvaluatorFlags[EvaluatorFlags["ExpectingType"] = 64] = "ExpectingType";
|
36
|
+
// A TypeVarTuple isn't allowed in this context.
|
37
|
+
EvaluatorFlags[EvaluatorFlags["TypeVarTupleDisallowed"] = 128] = "TypeVarTupleDisallowed";
|
38
|
+
// Interpret an ellipsis type annotation to mean "Unknown".
|
39
|
+
EvaluatorFlags[EvaluatorFlags["ConvertEllipsisToUnknown"] = 256] = "ConvertEllipsisToUnknown";
|
40
|
+
// The Generic class type is allowed in this context. It is
|
41
|
+
// normally not allowed if ExpectingType is set.
|
42
|
+
EvaluatorFlags[EvaluatorFlags["AllowGenericClassType"] = 512] = "AllowGenericClassType";
|
43
|
+
// A type annotation restricts the types of expressions that are
|
44
|
+
// allowed. If this flag is set, illegal type expressions are
|
45
|
+
// flagged as errors.
|
46
|
+
EvaluatorFlags[EvaluatorFlags["ExpectingTypeAnnotation"] = 1024] = "ExpectingTypeAnnotation";
|
47
|
+
// TypeVars within this expression must not refer to type vars
|
48
|
+
// used in an outer scope that.
|
49
|
+
EvaluatorFlags[EvaluatorFlags["DisallowTypeVarsWithScopeId"] = 2048] = "DisallowTypeVarsWithScopeId";
|
50
|
+
// TypeVars within this expression must refer to type vars
|
51
|
+
// used in an outer scope that.
|
52
|
+
EvaluatorFlags[EvaluatorFlags["DisallowTypeVarsWithoutScopeId"] = 4096] = "DisallowTypeVarsWithoutScopeId";
|
53
|
+
// TypeVars within this expression that are otherwise not
|
54
|
+
// associated with an outer scope should be associated with
|
55
|
+
// the containing function's scope.
|
56
|
+
EvaluatorFlags[EvaluatorFlags["AssociateTypeVarsWithCurrentScope"] = 8192] = "AssociateTypeVarsWithCurrentScope";
|
57
|
+
// Used for PEP 526-style variable type annotations
|
58
|
+
EvaluatorFlags[EvaluatorFlags["VariableTypeAnnotation"] = 32768] = "VariableTypeAnnotation";
|
59
|
+
// Emit an error if an incomplete recursive type alias is
|
60
|
+
// used in this context.
|
61
|
+
EvaluatorFlags[EvaluatorFlags["DisallowRecursiveTypeAliasPlaceholder"] = 65536] = "DisallowRecursiveTypeAliasPlaceholder";
|
62
|
+
// 'ClassVar' is not allowed in this context.
|
63
|
+
EvaluatorFlags[EvaluatorFlags["ClassVarDisallowed"] = 131072] = "ClassVarDisallowed";
|
64
|
+
// 'Generic' cannot be used without type arguments in this context.
|
65
|
+
EvaluatorFlags[EvaluatorFlags["DisallowNakedGeneric"] = 262144] = "DisallowNakedGeneric";
|
66
|
+
// The node is not parsed by the interpreter because it is within
|
67
|
+
// a comment or a string literal.
|
68
|
+
EvaluatorFlags[EvaluatorFlags["NotParsedByInterpreter"] = 524288] = "NotParsedByInterpreter";
|
69
|
+
// Required and NotRequired are allowed in this context.
|
70
|
+
EvaluatorFlags[EvaluatorFlags["RequiredAllowed"] = 1048576] = "RequiredAllowed";
|
71
|
+
// Allow Unpack annotation for a tuple or TypeVarTuple.
|
72
|
+
EvaluatorFlags[EvaluatorFlags["AllowUnpackedTupleOrTypeVarTuple"] = 2097152] = "AllowUnpackedTupleOrTypeVarTuple";
|
73
|
+
// Even though an expression is enclosed in a string literal,
|
74
|
+
// the interpreter (within a source file, not a stub) still
|
75
|
+
// parses the expression and generates parse errors.
|
76
|
+
EvaluatorFlags[EvaluatorFlags["InterpreterParsesStringLiteral"] = 4194304] = "InterpreterParsesStringLiteral";
|
77
|
+
// Allow Unpack annotation for TypedDict.
|
78
|
+
EvaluatorFlags[EvaluatorFlags["AllowUnpackedTypedDict"] = 8388608] = "AllowUnpackedTypedDict";
|
79
|
+
})(EvaluatorFlags = exports.EvaluatorFlags || (exports.EvaluatorFlags = {}));
|
16
80
|
//# sourceMappingURL=typeEvaluatorTypes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAwCH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC"}
|
1
|
+
{"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAwCH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cAqFjB;AArFD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,uDAAuD;IACvD,mFAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yEAAwB,CAAA;IAExB,yDAAyD;IACzD,uFAA+B,CAAA;IAE/B,kCAAkC;IAClC,iGAAoC,CAAA;IAEpC,0CAA0C;IAC1C,0EAAwB,CAAA;IAExB,6CAA6C;IAC7C,kFAA4B,CAAA;IAE5B,qDAAqD;IACrD,4BAA4B;IAC5B,sEAAsB,CAAA;IAEtB,gDAAgD;IAChD,yFAA+B,CAAA;IAE/B,2DAA2D;IAC3D,6FAAiC,CAAA;IAEjC,2DAA2D;IAC3D,gDAAgD;IAChD,uFAA8B,CAAA;IAE9B,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,4FAAiC,CAAA;IAEjC,8DAA8D;IAC9D,+BAA+B;IAC/B,oGAAqC,CAAA;IAErC,0DAA0D;IAC1D,+BAA+B;IAC/B,0GAAwC,CAAA;IAExC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,yDAAyD;IACzD,wBAAwB;IACxB,yHAA+C,CAAA;IAE/C,6CAA6C;IAC7C,oFAA4B,CAAA;IAE5B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,+EAAyB,CAAA;IAEzB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;AACpC,CAAC,EArFiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAqF/B"}
|
@@ -3,4 +3,6 @@ import { TypeEvaluator } from './typeEvaluatorTypes';
|
|
3
3
|
import { ClassType, Type } from './types';
|
4
4
|
export declare type TypeNarrowingCallback = (type: Type) => Type | undefined;
|
5
5
|
export declare function getTypeNarrowingCallback(evaluator: TypeEvaluator, reference: ExpressionNode, testExpression: ExpressionNode, isPositiveTest: boolean, recursionCount?: number): TypeNarrowingCallback | undefined;
|
6
|
+
export declare function isIsinstanceFilterSuperclass(evaluator: TypeEvaluator, varType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
|
7
|
+
export declare function isIsinstanceFilterSubclass(evaluator: TypeEvaluator, varType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
|
6
8
|
export declare function enumerateLiteralsForType(evaluator: TypeEvaluator, type: ClassType): ClassType[] | undefined;
|
@@ -29,7 +29,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
29
29
|
return result;
|
30
30
|
};
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
32
|
-
exports.enumerateLiteralsForType = exports.getTypeNarrowingCallback = void 0;
|
32
|
+
exports.enumerateLiteralsForType = exports.isIsinstanceFilterSubclass = exports.isIsinstanceFilterSuperclass = exports.getTypeNarrowingCallback = void 0;
|
33
33
|
const parseNodes_1 = require("../parser/parseNodes");
|
34
34
|
const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
|
35
35
|
const constraintSolver_1 = require("./constraintSolver");
|
@@ -94,18 +94,18 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
|
|
94
94
|
}
|
95
95
|
// Look for "type(X) is Y" or "type(X) is not Y".
|
96
96
|
if (isOrIsNotOperator && testExpression.leftExpression.nodeType === 9 /* Call */) {
|
97
|
-
|
98
|
-
if ((0, types_1.isInstantiableClass)(callType) &&
|
99
|
-
types_1.ClassType.isBuiltIn(callType, 'type') &&
|
100
|
-
testExpression.leftExpression.arguments.length === 1 &&
|
97
|
+
if (testExpression.leftExpression.arguments.length === 1 &&
|
101
98
|
testExpression.leftExpression.arguments[0].argumentCategory === 0 /* Simple */) {
|
102
99
|
const arg0Expr = testExpression.leftExpression.arguments[0].valueExpression;
|
103
100
|
if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
|
104
|
-
const
|
105
|
-
if ((0, types_1.isInstantiableClass)(
|
106
|
-
|
107
|
-
|
108
|
-
|
101
|
+
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
102
|
+
if ((0, types_1.isInstantiableClass)(callType) && types_1.ClassType.isBuiltIn(callType, 'type')) {
|
103
|
+
const classType = evaluator.makeTopLevelTypeVarsConcrete(evaluator.getTypeOfExpression(testExpression.rightExpression).type);
|
104
|
+
if ((0, types_1.isInstantiableClass)(classType)) {
|
105
|
+
return (type) => {
|
106
|
+
return narrowTypeForTypeIs(type, classType, adjIsPositiveTest);
|
107
|
+
};
|
108
|
+
}
|
109
109
|
}
|
110
110
|
}
|
111
111
|
}
|
@@ -255,63 +255,65 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
|
|
255
255
|
}
|
256
256
|
}
|
257
257
|
if (testExpression.nodeType === 9 /* Call */) {
|
258
|
-
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
259
258
|
// Look for "isinstance(X, Y)" or "issubclass(X, Y)".
|
260
|
-
if (
|
261
|
-
(callType.details.builtInName === 'isinstance' || callType.details.builtInName === 'issubclass') &&
|
262
|
-
testExpression.arguments.length === 2) {
|
259
|
+
if (testExpression.arguments.length === 2) {
|
263
260
|
// Make sure the first parameter is a supported expression type
|
264
261
|
// and the second parameter is a valid class type or a tuple
|
265
262
|
// of valid class types.
|
266
|
-
const isInstanceCheck = callType.details.builtInName === 'isinstance';
|
267
263
|
const arg0Expr = testExpression.arguments[0].valueExpression;
|
268
264
|
const arg1Expr = testExpression.arguments[1].valueExpression;
|
269
265
|
if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
|
270
|
-
const
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
266
|
+
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
267
|
+
if ((0, types_1.isFunction)(callType) &&
|
268
|
+
(callType.details.builtInName === 'isinstance' || callType.details.builtInName === 'issubclass')) {
|
269
|
+
const isInstanceCheck = callType.details.builtInName === 'isinstance';
|
270
|
+
const arg1Type = evaluator.getTypeOfExpression(arg1Expr, 8 /* EvaluateStringLiteralAsType */ |
|
271
|
+
32 /* ParamSpecDisallowed */ |
|
272
|
+
128 /* TypeVarTupleDisallowed */).type;
|
273
|
+
const classTypeList = getIsInstanceClassTypes(arg1Type);
|
274
|
+
if (classTypeList) {
|
275
|
+
return (type) => {
|
276
|
+
const narrowedType = narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck, isPositiveTest,
|
277
|
+
/* allowIntersections */ false, testExpression);
|
278
|
+
if (!(0, types_1.isNever)(narrowedType)) {
|
279
|
+
return narrowedType;
|
280
|
+
}
|
281
|
+
// Try again with intersection types allowed.
|
282
|
+
return narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck, isPositiveTest,
|
283
|
+
/* allowIntersections */ true, testExpression);
|
284
|
+
};
|
285
|
+
}
|
285
286
|
}
|
286
287
|
}
|
287
288
|
}
|
288
289
|
// Look for "callable(X)"
|
289
|
-
if (
|
290
|
-
callType.details.builtInName === 'callable' &&
|
291
|
-
testExpression.arguments.length === 1) {
|
290
|
+
if (testExpression.arguments.length === 1) {
|
292
291
|
const arg0Expr = testExpression.arguments[0].valueExpression;
|
293
292
|
if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
293
|
+
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
294
|
+
if ((0, types_1.isFunction)(callType) && callType.details.builtInName === 'callable') {
|
295
|
+
return (type) => {
|
296
|
+
let narrowedType = narrowTypeForCallable(evaluator, type, isPositiveTest, testExpression,
|
297
|
+
/* allowIntersections */ false);
|
298
|
+
if (isPositiveTest && (0, types_1.isNever)(narrowedType)) {
|
299
|
+
// Try again with intersections allowed.
|
300
|
+
narrowedType = narrowTypeForCallable(evaluator, type, isPositiveTest, testExpression,
|
301
|
+
/* allowIntersections */ true);
|
302
|
+
}
|
303
|
+
return narrowedType;
|
304
|
+
};
|
305
|
+
}
|
304
306
|
}
|
305
307
|
}
|
306
308
|
// Look for "bool(X)"
|
307
|
-
if (
|
308
|
-
types_1.ClassType.isBuiltIn(callType, 'bool') &&
|
309
|
-
testExpression.arguments.length === 1 &&
|
310
|
-
!testExpression.arguments[0].name) {
|
309
|
+
if (testExpression.arguments.length === 1 && !testExpression.arguments[0].name) {
|
311
310
|
if (ParseTreeUtils.isMatchingExpression(reference, testExpression.arguments[0].valueExpression)) {
|
312
|
-
|
313
|
-
|
314
|
-
|
311
|
+
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
312
|
+
if ((0, types_1.isInstantiableClass)(callType) && types_1.ClassType.isBuiltIn(callType, 'bool')) {
|
313
|
+
return (type) => {
|
314
|
+
return narrowTypeForTruthiness(evaluator, type, isPositiveTest);
|
315
|
+
};
|
316
|
+
}
|
315
317
|
}
|
316
318
|
}
|
317
319
|
// Look for a TypeGuard function.
|
@@ -319,16 +321,27 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
|
|
319
321
|
const arg0Expr = testExpression.arguments[0].valueExpression;
|
320
322
|
if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
|
321
323
|
// Does this look like it's a custom type guard function?
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
324
|
+
let isPossiblyTypeGuard = false;
|
325
|
+
const isFunctionReturnTypeGuard = (type) => {
|
326
|
+
return (type.details.declaredReturnType &&
|
327
|
+
(0, types_1.isClassInstance)(type.details.declaredReturnType) &&
|
328
|
+
types_1.ClassType.isBuiltIn(type.details.declaredReturnType, ['TypeGuard', 'StrictTypeGuard']));
|
329
|
+
};
|
330
|
+
const callType = evaluator.getTypeOfExpression(testExpression.leftExpression, 2 /* DoNotSpecialize */).type;
|
331
|
+
if ((0, types_1.isFunction)(callType) && isFunctionReturnTypeGuard(callType)) {
|
332
|
+
isPossiblyTypeGuard = true;
|
333
|
+
}
|
334
|
+
else if ((0, types_1.isOverloadedFunction)(callType) &&
|
335
|
+
callType.overloads.some((o) => types_1.FunctionType.isOverloaded(o) && isFunctionReturnTypeGuard(o))) {
|
336
|
+
isPossiblyTypeGuard = true;
|
337
|
+
}
|
338
|
+
if (isPossiblyTypeGuard) {
|
326
339
|
// Evaluate the type guard call expression.
|
327
340
|
const functionReturnType = evaluator.getTypeOfExpression(testExpression).type;
|
328
341
|
if ((0, types_1.isClassInstance)(functionReturnType) &&
|
329
342
|
types_1.ClassType.isBuiltIn(functionReturnType, 'bool') &&
|
330
343
|
functionReturnType.typeGuardType) {
|
331
|
-
const isStrictTypeGuard =
|
344
|
+
const isStrictTypeGuard = !!functionReturnType.isStrictTypeGuard;
|
332
345
|
const typeGuardType = functionReturnType.typeGuardType;
|
333
346
|
return (type) => {
|
334
347
|
return narrowTypeForUserDefinedTypeGuard(evaluator, type, typeGuardType, isPositiveTest, isStrictTypeGuard);
|
@@ -594,6 +607,45 @@ function getIsInstanceClassTypes(argType) {
|
|
594
607
|
});
|
595
608
|
return foundNonClassType ? undefined : classTypeList;
|
596
609
|
}
|
610
|
+
function isIsinstanceFilterSuperclass(evaluator, varType, filterType, concreteFilterType, isInstanceCheck) {
|
611
|
+
// If the filter type represents all possible subclasses
|
612
|
+
// of a type, we can't make any statements about its superclass
|
613
|
+
// relationship with varType.
|
614
|
+
if (concreteFilterType.includeSubclasses) {
|
615
|
+
return false;
|
616
|
+
}
|
617
|
+
if ((0, types_1.isTypeVar)(filterType)) {
|
618
|
+
return false;
|
619
|
+
}
|
620
|
+
if (types_1.ClassType.isDerivedFrom(varType, concreteFilterType)) {
|
621
|
+
return true;
|
622
|
+
}
|
623
|
+
if (isInstanceCheck) {
|
624
|
+
if (types_1.ClassType.isProtocolClass(concreteFilterType) && evaluator.assignType(concreteFilterType, varType)) {
|
625
|
+
return true;
|
626
|
+
}
|
627
|
+
}
|
628
|
+
// Handle the special case where the variable type is a TypedDict and
|
629
|
+
// we're filtering against 'dict'. TypedDict isn't derived from dict,
|
630
|
+
// but at runtime, isinstance returns True.
|
631
|
+
if (types_1.ClassType.isBuiltIn(concreteFilterType, 'dict') && types_1.ClassType.isTypedDictClass(varType)) {
|
632
|
+
return true;
|
633
|
+
}
|
634
|
+
return false;
|
635
|
+
}
|
636
|
+
exports.isIsinstanceFilterSuperclass = isIsinstanceFilterSuperclass;
|
637
|
+
function isIsinstanceFilterSubclass(evaluator, varType, filterType, concreteFilterType, isInstanceCheck) {
|
638
|
+
if (types_1.ClassType.isDerivedFrom(concreteFilterType, varType)) {
|
639
|
+
return true;
|
640
|
+
}
|
641
|
+
if (isInstanceCheck) {
|
642
|
+
if (types_1.ClassType.isProtocolClass(varType) && evaluator.assignType(varType, concreteFilterType)) {
|
643
|
+
return true;
|
644
|
+
}
|
645
|
+
}
|
646
|
+
return false;
|
647
|
+
}
|
648
|
+
exports.isIsinstanceFilterSubclass = isIsinstanceFilterSubclass;
|
597
649
|
// Attempts to narrow a type (make it more constrained) based on a
|
598
650
|
// call to isinstance or issubclass. For example, if the original
|
599
651
|
// type of expression "x" is "Mammal" and the test expression is
|
@@ -613,19 +665,8 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
|
|
613
665
|
for (const filterType of classTypeList) {
|
614
666
|
const concreteFilterType = evaluator.makeTopLevelTypeVarsConcrete(filterType);
|
615
667
|
if ((0, types_1.isInstantiableClass)(concreteFilterType)) {
|
616
|
-
|
617
|
-
|
618
|
-
// but at runtime, isinstance returns True.
|
619
|
-
const filterIsSuperclass = !(0, types_1.isTypeVar)(filterType) &&
|
620
|
-
(types_1.ClassType.isDerivedFrom(varType, concreteFilterType) ||
|
621
|
-
(isInstanceCheck &&
|
622
|
-
types_1.ClassType.isProtocolClass(concreteFilterType) &&
|
623
|
-
evaluator.assignType(concreteFilterType, varType)) ||
|
624
|
-
(types_1.ClassType.isBuiltIn(concreteFilterType, 'dict') && types_1.ClassType.isTypedDictClass(varType)));
|
625
|
-
const filterIsSubclass = types_1.ClassType.isDerivedFrom(concreteFilterType, varType) ||
|
626
|
-
(isInstanceCheck &&
|
627
|
-
types_1.ClassType.isProtocolClass(varType) &&
|
628
|
-
evaluator.assignType(varType, concreteFilterType));
|
668
|
+
const filterIsSuperclass = isIsinstanceFilterSuperclass(evaluator, varType, filterType, concreteFilterType, isInstanceCheck);
|
669
|
+
const filterIsSubclass = isIsinstanceFilterSubclass(evaluator, varType, filterType, concreteFilterType, isInstanceCheck);
|
629
670
|
if (filterIsSuperclass) {
|
630
671
|
foundSuperclass = true;
|
631
672
|
}
|
@@ -774,7 +815,10 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
|
|
774
815
|
}
|
775
816
|
}
|
776
817
|
if (!isInstanceCheck) {
|
777
|
-
|
818
|
+
// We perform a double conversion from instance to instantiable
|
819
|
+
// here to make sure that the includeSubclasses flag is cleared
|
820
|
+
// if it's a class.
|
821
|
+
return filteredTypes.map((t) => ((0, types_1.isInstantiableClass)(t) ? (0, typeUtils_1.convertToInstantiable)((0, typeUtils_1.convertToInstance)(t)) : t));
|
778
822
|
}
|
779
823
|
return filteredTypes.map((t) => (0, typeUtils_1.convertToInstance)(t));
|
780
824
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../src/analyzer/typeGuards.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../src/analyzer/typeGuards.ts"],"names":[],"mappings":"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"}
|
@@ -27,12 +27,34 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
27
27
|
return result;
|
28
28
|
};
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
30
|
-
exports.printFunctionParts = exports.printObjectTypeForClass = exports.printLiteralValue = exports.printType = void 0;
|
30
|
+
exports.printFunctionParts = exports.printObjectTypeForClass = exports.printLiteralValue = exports.printType = exports.PrintTypeFlags = void 0;
|
31
31
|
const ParseTreeUtils = __importStar(require("./parseTreeUtils"));
|
32
32
|
const types_1 = require("./types");
|
33
33
|
const typeUtils_1 = require("./typeUtils");
|
34
34
|
const singleTickRegEx = /'/g;
|
35
35
|
const escapedDoubleQuoteRegEx = /\\"/g;
|
36
|
+
var PrintTypeFlags;
|
37
|
+
(function (PrintTypeFlags) {
|
38
|
+
PrintTypeFlags[PrintTypeFlags["None"] = 0] = "None";
|
39
|
+
// Avoid printing "Unknown" and always use "Any" instead.
|
40
|
+
PrintTypeFlags[PrintTypeFlags["PrintUnknownWithAny"] = 1] = "PrintUnknownWithAny";
|
41
|
+
// Omit type arguments for generic classes if they are "Any".
|
42
|
+
PrintTypeFlags[PrintTypeFlags["OmitTypeArgumentsIfAny"] = 2] = "OmitTypeArgumentsIfAny";
|
43
|
+
// Omit printing type for param if type is not specified.
|
44
|
+
PrintTypeFlags[PrintTypeFlags["OmitUnannotatedParamType"] = 4] = "OmitUnannotatedParamType";
|
45
|
+
// Print Union and Optional in PEP 604 format.
|
46
|
+
PrintTypeFlags[PrintTypeFlags["PEP604"] = 8] = "PEP604";
|
47
|
+
// Include a parentheses around a union if there's more than
|
48
|
+
// one subtype.
|
49
|
+
PrintTypeFlags[PrintTypeFlags["ParenthesizeUnion"] = 16] = "ParenthesizeUnion";
|
50
|
+
// Expand type aliases to display their individual parts?
|
51
|
+
PrintTypeFlags[PrintTypeFlags["ExpandTypeAlias"] = 32] = "ExpandTypeAlias";
|
52
|
+
// Omit "*" for types that are conditionally constrained when
|
53
|
+
// used with constrained TypeVars.
|
54
|
+
PrintTypeFlags[PrintTypeFlags["OmitConditionalConstraint"] = 64] = "OmitConditionalConstraint";
|
55
|
+
// Include a parentheses around a callable.
|
56
|
+
PrintTypeFlags[PrintTypeFlags["ParenthesizeCallable"] = 128] = "ParenthesizeCallable";
|
57
|
+
})(PrintTypeFlags = exports.PrintTypeFlags || (exports.PrintTypeFlags = {}));
|
36
58
|
function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []) {
|
37
59
|
const parenthesizeUnion = (printTypeFlags & 16 /* ParenthesizeUnion */) !== 0;
|
38
60
|
const parenthesizeCallable = (printTypeFlags & 128 /* ParenthesizeCallable */) !== 0;
|