@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.
Files changed (145) hide show
  1. package/dist/analyzer/analyzerFileInfo.js +14 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  4. package/dist/analyzer/backgroundAnalysisProgram.js +4 -4
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +1 -1
  7. package/dist/analyzer/checker.js +145 -53
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +26 -11
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +4 -2
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +6 -1
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/importResolver.d.ts +2 -1
  16. package/dist/analyzer/importResolver.js +18 -3
  17. package/dist/analyzer/importResolver.js.map +1 -1
  18. package/dist/analyzer/patternMatching.js +2 -2
  19. package/dist/analyzer/patternMatching.js.map +1 -1
  20. package/dist/analyzer/program.d.ts +1 -0
  21. package/dist/analyzer/program.js +54 -32
  22. package/dist/analyzer/program.js.map +1 -1
  23. package/dist/analyzer/regions.js +14 -5
  24. package/dist/analyzer/regions.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +3 -2
  26. package/dist/analyzer/service.js +14 -12
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +4 -3
  29. package/dist/analyzer/sourceFile.js +4 -4
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceMapper.d.ts +2 -2
  32. package/dist/analyzer/sourceMapper.js +14 -5
  33. package/dist/analyzer/sourceMapper.js.map +1 -1
  34. package/dist/analyzer/typeCacheUtils.d.ts +0 -1
  35. package/dist/analyzer/typeCacheUtils.js +3 -3
  36. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  37. package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
  38. package/dist/analyzer/typeDocStringUtils.js +18 -7
  39. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  40. package/dist/analyzer/typeEvaluator.js +494 -423
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +20 -13
  43. package/dist/analyzer/typeEvaluatorTypes.js +15 -15
  44. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  45. package/dist/analyzer/typeGuards.d.ts +5 -1
  46. package/dist/analyzer/typeGuards.js +204 -44
  47. package/dist/analyzer/typeGuards.js.map +1 -1
  48. package/dist/analyzer/typeUtils.d.ts +8 -0
  49. package/dist/analyzer/typeUtils.js +15 -4
  50. package/dist/analyzer/typeUtils.js.map +1 -1
  51. package/dist/analyzer/types.d.ts +3 -0
  52. package/dist/analyzer/types.js +10 -2
  53. package/dist/analyzer/types.js.map +1 -1
  54. package/dist/backgroundAnalysisBase.d.ts +4 -1
  55. package/dist/backgroundAnalysisBase.js +1 -1
  56. package/dist/backgroundAnalysisBase.js.map +1 -1
  57. package/dist/backgroundThreadBase.d.ts +5 -2
  58. package/dist/backgroundThreadBase.js.map +1 -1
  59. package/dist/commands/createTypeStub.js +3 -0
  60. package/dist/commands/createTypeStub.js.map +1 -1
  61. package/dist/commands/quickActionCommand.js +1 -1
  62. package/dist/commands/quickActionCommand.js.map +1 -1
  63. package/dist/common/collectionUtils.d.ts +1 -0
  64. package/dist/common/collectionUtils.js +9 -1
  65. package/dist/common/collectionUtils.js.map +1 -1
  66. package/dist/common/configOptions.d.ts +1 -0
  67. package/dist/common/configOptions.js +4 -0
  68. package/dist/common/configOptions.js.map +1 -1
  69. package/dist/common/diagnosticRules.d.ts +1 -0
  70. package/dist/common/diagnosticRules.js +1 -0
  71. package/dist/common/diagnosticRules.js.map +1 -1
  72. package/dist/common/fileSystem.d.ts +1 -0
  73. package/dist/common/fileSystem.js.map +1 -1
  74. package/dist/common/textEditUtils.d.ts +3 -2
  75. package/dist/common/textEditUtils.js +11 -10
  76. package/dist/common/textEditUtils.js.map +1 -1
  77. package/dist/languageServerBase.d.ts +1 -1
  78. package/dist/languageServerBase.js +2 -2
  79. package/dist/languageServerBase.js.map +1 -1
  80. package/dist/languageService/completionProvider.d.ts +3 -0
  81. package/dist/languageService/completionProvider.js +212 -159
  82. package/dist/languageService/completionProvider.js.map +1 -1
  83. package/dist/languageService/documentSymbolCollector.d.ts +12 -4
  84. package/dist/languageService/documentSymbolCollector.js +103 -22
  85. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  86. package/dist/languageService/documentSymbolProvider.js +6 -0
  87. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  88. package/dist/languageService/hoverProvider.d.ts +0 -1
  89. package/dist/languageService/hoverProvider.js +7 -20
  90. package/dist/languageService/hoverProvider.js.map +1 -1
  91. package/dist/languageService/indentationUtils.d.ts +1 -1
  92. package/dist/languageService/indentationUtils.js +74 -29
  93. package/dist/languageService/indentationUtils.js.map +1 -1
  94. package/dist/languageService/referencesProvider.d.ts +5 -4
  95. package/dist/languageService/referencesProvider.js +15 -10
  96. package/dist/languageService/referencesProvider.js.map +1 -1
  97. package/dist/languageService/renameModuleProvider.js +11 -11
  98. package/dist/languageService/renameModuleProvider.js.map +1 -1
  99. package/dist/languageService/tooltipUtils.d.ts +5 -1
  100. package/dist/languageService/tooltipUtils.js +28 -4
  101. package/dist/languageService/tooltipUtils.js.map +1 -1
  102. package/dist/localization/localize.d.ts +3 -0
  103. package/dist/localization/localize.js +3 -0
  104. package/dist/localization/localize.js.map +1 -1
  105. package/dist/localization/package.nls.en-us.json +3 -0
  106. package/dist/parser/tokenizer.js +6 -2
  107. package/dist/parser/tokenizer.js.map +1 -1
  108. package/dist/tests/checker.test.js +16 -0
  109. package/dist/tests/checker.test.js.map +1 -1
  110. package/dist/tests/completions.test.d.ts +1 -0
  111. package/dist/tests/completions.test.js +331 -0
  112. package/dist/tests/completions.test.js.map +1 -0
  113. package/dist/tests/documentSymbolCollector.test.js +86 -5
  114. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  115. package/dist/tests/filesystem.test.js +11 -0
  116. package/dist/tests/filesystem.test.js.map +1 -1
  117. package/dist/tests/fourslash/rename.init.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/rename.init.fourslash.js +23 -0
  119. package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -0
  120. package/dist/tests/harness/fourslash/testState.d.ts +2 -2
  121. package/dist/tests/harness/fourslash/testState.js +10 -7
  122. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  123. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  124. package/dist/tests/harness/vfs/filesystem.js +5 -1
  125. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  126. package/dist/tests/hoverProvider.test.d.ts +1 -0
  127. package/dist/tests/hoverProvider.test.js +247 -0
  128. package/dist/tests/hoverProvider.test.js.map +1 -0
  129. package/dist/tests/indentationUtils.ptvs.test.js +13 -13
  130. package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
  131. package/dist/tests/indentationUtils.test.js +68 -10
  132. package/dist/tests/indentationUtils.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator1.test.js +24 -0
  134. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator2.test.js +5 -1
  136. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator3.test.js +10 -2
  138. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  139. package/dist/tests/typeEvaluator4.test.js +4 -0
  140. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  141. package/dist/tests/typeEvaluator5.test.js +6 -0
  142. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  143. package/dist/workspaceMap.js +1 -3
  144. package/dist/workspaceMap.js.map +1 -1
  145. 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
- FinalDisallowed = 16,
24
- ParamSpecDisallowed = 32,
25
- ExpectingType = 64,
26
- TypeVarTupleDisallowed = 128,
27
- ConvertEllipsisToUnknown = 256,
28
- AllowGenericClassType = 512,
29
- ExpectingTypeAnnotation = 1024,
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
- ClassVarDisallowed = 131072,
36
+ DisallowClassVar = 131072,
37
37
  DisallowNakedGeneric = 262144,
38
38
  NotParsedByInterpreter = 524288,
39
- RequiredAllowed = 1048576,
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, expectedType?: Type) => TypeResult;
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, expectedType: Type | undefined) => CallResult;
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, expectedType: Type | undefined) => Type | undefined;
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["FinalDisallowed"] = 16] = "FinalDisallowed";
30
+ EvaluatorFlags[EvaluatorFlags["DisallowFinal"] = 16] = "DisallowFinal";
31
31
  // A ParamSpec isn't allowed in this context.
32
- EvaluatorFlags[EvaluatorFlags["ParamSpecDisallowed"] = 32] = "ParamSpecDisallowed";
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"] = 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";
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"] = 1024] = "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 that.
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 that.
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["ClassVarDisallowed"] = 131072] = "ClassVarDisallowed";
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["RequiredAllowed"] = 1048576] = "RequiredAllowed";
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,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,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,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,EA1FiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA0F/B"}
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 declare type TypeNarrowingCallback = (type: Type) => Type | undefined;
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;