@zzzen/pyright-internal 1.2.0-dev.20230101 → 1.2.0-dev.20230115
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/analyzerFileInfo.js +14 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
- package/dist/analyzer/backgroundAnalysisProgram.js +4 -4
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -1
- package/dist/analyzer/checker.js +145 -53
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +26 -11
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +4 -2
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +18 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/patternMatching.js +2 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +54 -32
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/regions.js +14 -5
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -2
- package/dist/analyzer/service.js +14 -12
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +4 -3
- package/dist/analyzer/sourceFile.js +4 -4
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +2 -2
- package/dist/analyzer/sourceMapper.js +14 -5
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +0 -1
- package/dist/analyzer/typeCacheUtils.js +3 -3
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
- package/dist/analyzer/typeDocStringUtils.js +18 -7
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +494 -423
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +20 -13
- package/dist/analyzer/typeEvaluatorTypes.js +15 -15
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +5 -1
- package/dist/analyzer/typeGuards.js +204 -44
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +8 -0
- package/dist/analyzer/typeUtils.js +15 -4
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -0
- package/dist/analyzer/types.js +10 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +4 -1
- package/dist/backgroundAnalysisBase.js +1 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +5 -2
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/createTypeStub.js +3 -0
- package/dist/commands/createTypeStub.js.map +1 -1
- package/dist/commands/quickActionCommand.js +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +1 -0
- package/dist/common/collectionUtils.js +9 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +4 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnosticRules.d.ts +1 -0
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/textEditUtils.d.ts +3 -2
- package/dist/common/textEditUtils.js +11 -10
- package/dist/common/textEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +1 -1
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +3 -0
- package/dist/languageService/completionProvider.js +212 -159
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +12 -4
- package/dist/languageService/documentSymbolCollector.js +103 -22
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +6 -0
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +0 -1
- package/dist/languageService/hoverProvider.js +7 -20
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +1 -1
- package/dist/languageService/indentationUtils.js +74 -29
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +5 -4
- package/dist/languageService/referencesProvider.js +15 -10
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameModuleProvider.js +11 -11
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +5 -1
- package/dist/languageService/tooltipUtils.js +28 -4
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +3 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +3 -0
- package/dist/parser/tokenizer.js +6 -2
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +16 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.d.ts +1 -0
- package/dist/tests/completions.test.js +331 -0
- package/dist/tests/completions.test.js.map +1 -0
- package/dist/tests/documentSymbolCollector.test.js +86 -5
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +11 -0
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourslash/rename.init.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/rename.init.fourslash.js +23 -0
- package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testState.d.ts +2 -2
- package/dist/tests/harness/fourslash/testState.js +10 -7
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/harness/vfs/filesystem.js +5 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/hoverProvider.test.d.ts +1 -0
- package/dist/tests/hoverProvider.test.js +247 -0
- package/dist/tests/hoverProvider.test.js.map +1 -0
- package/dist/tests/indentationUtils.ptvs.test.js +13 -13
- package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
- package/dist/tests/indentationUtils.test.js +68 -10
- package/dist/tests/indentationUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +24 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -2
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceMap.js +1 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +6 -6
@@ -20,23 +20,23 @@ export declare const enum EvaluatorFlags {
|
|
20
20
|
DoNotSpecialize = 2,
|
21
21
|
AllowForwardReferences = 4,
|
22
22
|
EvaluateStringLiteralAsType = 8,
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
DisallowFinal = 16,
|
24
|
+
DisallowParamSpec = 32,
|
25
|
+
DisallowTypeVarTuple = 64,
|
26
|
+
ExpectingType = 128,
|
27
|
+
ExpectingTypeAnnotation = 256,
|
28
|
+
ConvertEllipsisToUnknown = 512,
|
29
|
+
AllowGenericClassType = 1024,
|
30
30
|
DisallowTypeVarsWithScopeId = 2048,
|
31
31
|
DisallowTypeVarsWithoutScopeId = 4096,
|
32
32
|
AssociateTypeVarsWithCurrentScope = 8192,
|
33
33
|
EnforceTypeVarVarianceConsistency = 16384,
|
34
34
|
VariableTypeAnnotation = 32768,
|
35
35
|
DisallowRecursiveTypeAliasPlaceholder = 65536,
|
36
|
-
|
36
|
+
DisallowClassVar = 131072,
|
37
37
|
DisallowNakedGeneric = 262144,
|
38
38
|
NotParsedByInterpreter = 524288,
|
39
|
-
|
39
|
+
AllowRequired = 1048576,
|
40
40
|
AllowUnpackedTupleOrTypeVarTuple = 2097152,
|
41
41
|
InterpreterParsesStringLiteral = 4194304,
|
42
42
|
AllowUnpackedTypedDict = 8388608
|
@@ -54,6 +54,7 @@ export interface TypeResult {
|
|
54
54
|
isAsymmetricDescriptor?: boolean;
|
55
55
|
isRequired?: boolean;
|
56
56
|
isNotRequired?: boolean;
|
57
|
+
overloadsUsedForCall?: FunctionType[];
|
57
58
|
}
|
58
59
|
export interface TypeResultWithNode extends TypeResult {
|
59
60
|
node: ParseNode;
|
@@ -147,6 +148,10 @@ export interface FunctionResult {
|
|
147
148
|
argumentErrors: boolean;
|
148
149
|
isTypeIncomplete: boolean;
|
149
150
|
}
|
151
|
+
export interface InferenceContext {
|
152
|
+
expectedType: Type;
|
153
|
+
typeVarContext?: TypeVarContext;
|
154
|
+
}
|
150
155
|
export interface CallResult {
|
151
156
|
returnType?: Type | undefined;
|
152
157
|
isTypeIncomplete?: boolean | undefined;
|
@@ -154,6 +159,7 @@ export interface CallResult {
|
|
154
159
|
isArgumentAnyOrUnknown?: boolean;
|
155
160
|
activeParam?: FunctionParameter | undefined;
|
156
161
|
specializedInitSelfType?: Type | undefined;
|
162
|
+
overloadsUsedForCall: FunctionType[];
|
157
163
|
}
|
158
164
|
export interface PrintTypeOptions {
|
159
165
|
expandTypeAlias?: boolean;
|
@@ -163,8 +169,9 @@ export interface PrintTypeOptions {
|
|
163
169
|
export interface TypeEvaluator {
|
164
170
|
runWithCancellationToken<T>(token: CancellationToken, callback: () => T): T;
|
165
171
|
getType: (node: ExpressionNode) => Type | undefined;
|
172
|
+
getTypeResult: (node: ExpressionNode) => TypeResult | undefined;
|
166
173
|
getCachedType: (node: ExpressionNode) => Type | undefined;
|
167
|
-
getTypeOfExpression: (node: ExpressionNode, flags?: EvaluatorFlags,
|
174
|
+
getTypeOfExpression: (node: ExpressionNode, flags?: EvaluatorFlags, context?: InferenceContext) => TypeResult;
|
168
175
|
getTypeOfAnnotation: (node: ExpressionNode, options?: AnnotationTypeOptions) => Type;
|
169
176
|
getTypeOfClass: (node: ClassNode) => ClassTypeResult | undefined;
|
170
177
|
getTypeOfFunction: (node: FunctionNode) => FunctionTypeResult | undefined;
|
@@ -182,7 +189,7 @@ export interface TypeEvaluator {
|
|
182
189
|
getExpectedType: (node: ExpressionNode) => ExpectedTypeResult | undefined;
|
183
190
|
verifyRaiseExceptionType: (node: RaiseNode) => void;
|
184
191
|
verifyDeleteExpression: (node: ExpressionNode) => void;
|
185
|
-
validateOverloadedFunctionArguments: (errorNode: ExpressionNode, argList: FunctionArgument[], type: OverloadedFunctionType, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean,
|
192
|
+
validateOverloadedFunctionArguments: (errorNode: ExpressionNode, argList: FunctionArgument[], type: OverloadedFunctionType, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean, inferenceContext: InferenceContext | undefined) => CallResult;
|
186
193
|
isAfterNodeReachable: (node: ParseNode) => boolean;
|
187
194
|
isNodeReachable: (node: ParseNode, sourceNode: ParseNode | undefined) => boolean;
|
188
195
|
isAsymmetricDescriptorAssignment: (node: ParseNode) => boolean;
|
@@ -213,7 +220,7 @@ export interface TypeEvaluator {
|
|
213
220
|
getTypeOfMember: (member: ClassMember) => Type;
|
214
221
|
getTypeOfObjectMember(errorNode: ExpressionNode, objectType: ClassType, memberName: string): TypeResult | undefined;
|
215
222
|
getBoundMethod: (classType: ClassType, memberName: string, recursionCount?: number, treatConstructorAsClassMember?: boolean) => FunctionType | OverloadedFunctionType | undefined;
|
216
|
-
getTypeOfMagicMethodReturn: (objType: Type, args: TypeResult[], magicMethodName: string, errorNode: ExpressionNode,
|
223
|
+
getTypeOfMagicMethodReturn: (objType: Type, args: TypeResult[], magicMethodName: string, errorNode: ExpressionNode, inferenceContext: InferenceContext | undefined) => Type | undefined;
|
217
224
|
bindFunctionToClassOrObject: (baseType: ClassType | undefined, memberType: FunctionType | OverloadedFunctionType, memberClass?: ClassType, errorNode?: ParseNode, recursionCount?: number, treatConstructorAsClassMember?: boolean, firstParamType?: ClassType | TypeVarType) => FunctionType | OverloadedFunctionType | undefined;
|
218
225
|
getCallSignatureInfo: (node: CallNode, activeIndex: number, activeOrFake: boolean) => CallSignatureInfo | undefined;
|
219
226
|
getAbstractMethods: (classType: ClassType) => AbstractMethod[];
|
@@ -237,7 +244,7 @@ export interface TypeEvaluator {
|
|
237
244
|
addUnusedCode: (node: ParseNode, textRange: TextRange) => void;
|
238
245
|
addUnreachableCode: (node: ParseNode, textRange: TextRange) => void;
|
239
246
|
addDeprecated: (message: string, node: ParseNode) => void;
|
240
|
-
addDiagnostic: (diagLevel: DiagnosticLevel, rule: string, message: string, node: ParseNode) => Diagnostic | undefined;
|
247
|
+
addDiagnostic: (diagLevel: DiagnosticLevel, rule: string, message: string, node: ParseNode, range?: TextRange) => Diagnostic | undefined;
|
241
248
|
addDiagnosticForTextRange: (fileInfo: AnalyzerFileInfo, diagLevel: DiagnosticLevel, rule: string, message: string, range: TextRange) => Diagnostic | undefined;
|
242
249
|
printType: (type: Type, options?: PrintTypeOptions) => string;
|
243
250
|
printFunctionParts: (type: FunctionType) => [string[], string];
|
@@ -27,28 +27,28 @@ var EvaluatorFlags;
|
|
27
27
|
// Treat string literal as a type.
|
28
28
|
EvaluatorFlags[EvaluatorFlags["EvaluateStringLiteralAsType"] = 8] = "EvaluateStringLiteralAsType";
|
29
29
|
// 'Final' is not allowed in this context.
|
30
|
-
EvaluatorFlags[EvaluatorFlags["
|
30
|
+
EvaluatorFlags[EvaluatorFlags["DisallowFinal"] = 16] = "DisallowFinal";
|
31
31
|
// A ParamSpec isn't allowed in this context.
|
32
|
-
EvaluatorFlags[EvaluatorFlags["
|
32
|
+
EvaluatorFlags[EvaluatorFlags["DisallowParamSpec"] = 32] = "DisallowParamSpec";
|
33
|
+
// A TypeVarTuple isn't allowed in this context.
|
34
|
+
EvaluatorFlags[EvaluatorFlags["DisallowTypeVarTuple"] = 64] = "DisallowTypeVarTuple";
|
33
35
|
// Expression is expected to be a type (class) rather
|
34
36
|
// than an instance (object)
|
35
|
-
EvaluatorFlags[EvaluatorFlags["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";
|
37
|
+
EvaluatorFlags[EvaluatorFlags["ExpectingType"] = 128] = "ExpectingType";
|
43
38
|
// A type annotation restricts the types of expressions that are
|
44
39
|
// allowed. If this flag is set, illegal type expressions are
|
45
40
|
// flagged as errors.
|
46
|
-
EvaluatorFlags[EvaluatorFlags["ExpectingTypeAnnotation"] =
|
41
|
+
EvaluatorFlags[EvaluatorFlags["ExpectingTypeAnnotation"] = 256] = "ExpectingTypeAnnotation";
|
42
|
+
// Interpret an ellipsis type annotation to mean "Unknown".
|
43
|
+
EvaluatorFlags[EvaluatorFlags["ConvertEllipsisToUnknown"] = 512] = "ConvertEllipsisToUnknown";
|
44
|
+
// The Generic class type is allowed in this context. It is
|
45
|
+
// normally not allowed if ExpectingType is set.
|
46
|
+
EvaluatorFlags[EvaluatorFlags["AllowGenericClassType"] = 1024] = "AllowGenericClassType";
|
47
47
|
// TypeVars within this expression must not refer to type vars
|
48
|
-
// used in an outer scope
|
48
|
+
// used in an outer scope.
|
49
49
|
EvaluatorFlags[EvaluatorFlags["DisallowTypeVarsWithScopeId"] = 2048] = "DisallowTypeVarsWithScopeId";
|
50
50
|
// TypeVars within this expression must refer to type vars
|
51
|
-
// used in an outer scope
|
51
|
+
// used in an outer scope.
|
52
52
|
EvaluatorFlags[EvaluatorFlags["DisallowTypeVarsWithoutScopeId"] = 4096] = "DisallowTypeVarsWithoutScopeId";
|
53
53
|
// TypeVars within this expression that are otherwise not
|
54
54
|
// associated with an outer scope should be associated with
|
@@ -64,14 +64,14 @@ var EvaluatorFlags;
|
|
64
64
|
// used in this context.
|
65
65
|
EvaluatorFlags[EvaluatorFlags["DisallowRecursiveTypeAliasPlaceholder"] = 65536] = "DisallowRecursiveTypeAliasPlaceholder";
|
66
66
|
// 'ClassVar' is not allowed in this context.
|
67
|
-
EvaluatorFlags[EvaluatorFlags["
|
67
|
+
EvaluatorFlags[EvaluatorFlags["DisallowClassVar"] = 131072] = "DisallowClassVar";
|
68
68
|
// 'Generic' cannot be used without type arguments in this context.
|
69
69
|
EvaluatorFlags[EvaluatorFlags["DisallowNakedGeneric"] = 262144] = "DisallowNakedGeneric";
|
70
70
|
// The node is not parsed by the interpreter because it is within
|
71
71
|
// a comment or a string literal.
|
72
72
|
EvaluatorFlags[EvaluatorFlags["NotParsedByInterpreter"] = 524288] = "NotParsedByInterpreter";
|
73
73
|
// Required and NotRequired are allowed in this context.
|
74
|
-
EvaluatorFlags[EvaluatorFlags["
|
74
|
+
EvaluatorFlags[EvaluatorFlags["AllowRequired"] = 1048576] = "AllowRequired";
|
75
75
|
// Allow Unpack annotation for a tuple or TypeVarTuple.
|
76
76
|
EvaluatorFlags[EvaluatorFlags["AllowUnpackedTupleOrTypeVarTuple"] = 2097152] = "AllowUnpackedTupleOrTypeVarTuple";
|
77
77
|
// Even though an expression is enclosed in a string literal,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA2CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cA0FjB;AA1FD,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,
|
1
|
+
{"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA2CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cA0FjB;AA1FD,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,sEAAsB,CAAA;IAEtB,6CAA6C;IAC7C,8EAA0B,CAAA;IAE1B,gDAAgD;IAChD,oFAA6B,CAAA;IAE7B,qDAAqD;IACrD,4BAA4B;IAC5B,uEAAsB,CAAA;IAEtB,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,2FAAgC,CAAA;IAEhC,2DAA2D;IAC3D,6FAAiC,CAAA;IAEjC,2DAA2D;IAC3D,gDAAgD;IAChD,wFAA+B,CAAA;IAE/B,8DAA8D;IAC9D,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,0DAA0D;IAC1D,0BAA0B;IAC1B,0GAAwC,CAAA;IAExC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,iHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,yDAAyD;IACzD,wBAAwB;IACxB,yHAA+C,CAAA;IAE/C,6CAA6C;IAC7C,gFAA0B,CAAA;IAE1B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,2EAAuB,CAAA;IAEvB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;AACpC,CAAC,EA1FiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA0F/B"}
|
@@ -1,7 +1,11 @@
|
|
1
1
|
import { ExpressionNode } from '../parser/parseNodes';
|
2
2
|
import { TypeEvaluator } from './typeEvaluatorTypes';
|
3
3
|
import { ClassType, Type } from './types';
|
4
|
-
export
|
4
|
+
export interface TypeNarrowingResult {
|
5
|
+
type: Type;
|
6
|
+
isIncomplete: boolean;
|
7
|
+
}
|
8
|
+
export declare type TypeNarrowingCallback = (type: Type) => TypeNarrowingResult | undefined;
|
5
9
|
export declare function getTypeNarrowingCallback(evaluator: TypeEvaluator, reference: ExpressionNode, testExpression: ExpressionNode, isPositiveTest: boolean, recursionCount?: number): TypeNarrowingCallback | undefined;
|
6
10
|
export declare function isIsinstanceFilterSuperclass(evaluator: TypeEvaluator, varType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
|
7
11
|
export declare function isIsinstanceFilterSubclass(evaluator: TypeEvaluator, varType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
|