@zzzen/pyright-internal 1.2.0-dev.20240721 → 1.2.0-dev.20240728

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 (211) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +2 -2
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +8 -8
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/cacheManager.js +3 -0
  6. package/dist/analyzer/cacheManager.js.map +1 -1
  7. package/dist/analyzer/checker.d.ts +3 -2
  8. package/dist/analyzer/checker.js +115 -122
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.d.ts +2 -2
  11. package/dist/analyzer/codeFlowEngine.js +49 -42
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowTypes.js +1 -1
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.d.ts +2 -2
  16. package/dist/analyzer/constraintSolver.js +164 -204
  17. package/dist/analyzer/constraintSolver.js.map +1 -1
  18. package/dist/analyzer/constructorTransform.d.ts +2 -2
  19. package/dist/analyzer/constructorTransform.js +15 -15
  20. package/dist/analyzer/constructorTransform.js.map +1 -1
  21. package/dist/analyzer/constructors.d.ts +2 -2
  22. package/dist/analyzer/constructors.js +28 -33
  23. package/dist/analyzer/constructors.js.map +1 -1
  24. package/dist/analyzer/dataClasses.d.ts +2 -2
  25. package/dist/analyzer/dataClasses.js +59 -36
  26. package/dist/analyzer/dataClasses.js.map +1 -1
  27. package/dist/analyzer/declaration.d.ts +9 -9
  28. package/dist/analyzer/declaration.js +9 -9
  29. package/dist/analyzer/declaration.js.map +1 -1
  30. package/dist/analyzer/declarationUtils.d.ts +1 -1
  31. package/dist/analyzer/declarationUtils.js +6 -6
  32. package/dist/analyzer/declarationUtils.js.map +1 -1
  33. package/dist/analyzer/decorators.js +4 -4
  34. package/dist/analyzer/decorators.js.map +1 -1
  35. package/dist/analyzer/docStringConversion.js +2 -2
  36. package/dist/analyzer/docStringConversion.js.map +1 -1
  37. package/dist/analyzer/enums.d.ts +2 -2
  38. package/dist/analyzer/enums.js +6 -6
  39. package/dist/analyzer/enums.js.map +1 -1
  40. package/dist/analyzer/functionTransform.d.ts +2 -2
  41. package/dist/analyzer/functionTransform.js +4 -4
  42. package/dist/analyzer/functionTransform.js.map +1 -1
  43. package/dist/analyzer/importResolver.js +5 -3
  44. package/dist/analyzer/importResolver.js.map +1 -1
  45. package/dist/analyzer/namedTuples.d.ts +3 -3
  46. package/dist/analyzer/namedTuples.js +21 -22
  47. package/dist/analyzer/namedTuples.js.map +1 -1
  48. package/dist/analyzer/operations.js +10 -10
  49. package/dist/analyzer/operations.js.map +1 -1
  50. package/dist/analyzer/packageTypeVerifier.js +8 -8
  51. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  52. package/dist/analyzer/parameterUtils.d.ts +10 -10
  53. package/dist/analyzer/parameterUtils.js +58 -58
  54. package/dist/analyzer/parameterUtils.js.map +1 -1
  55. package/dist/analyzer/parseTreeUtils.d.ts +6 -6
  56. package/dist/analyzer/parseTreeUtils.js +22 -22
  57. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  58. package/dist/analyzer/patternMatching.js +108 -89
  59. package/dist/analyzer/patternMatching.js.map +1 -1
  60. package/dist/analyzer/program.js +11 -4
  61. package/dist/analyzer/program.js.map +1 -1
  62. package/dist/analyzer/properties.js +19 -19
  63. package/dist/analyzer/properties.js.map +1 -1
  64. package/dist/analyzer/protocols.js +14 -15
  65. package/dist/analyzer/protocols.js.map +1 -1
  66. package/dist/analyzer/pythonPathUtils.js +1 -1
  67. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  68. package/dist/analyzer/service.d.ts +3 -7
  69. package/dist/analyzer/service.js +28 -30
  70. package/dist/analyzer/service.js.map +1 -1
  71. package/dist/analyzer/serviceUtils.d.ts +8 -0
  72. package/dist/analyzer/serviceUtils.js +31 -0
  73. package/dist/analyzer/serviceUtils.js.map +1 -0
  74. package/dist/analyzer/sourceFile.js +5 -19
  75. package/dist/analyzer/sourceFile.js.map +1 -1
  76. package/dist/analyzer/sourceMapper.d.ts +1 -1
  77. package/dist/analyzer/sourceMapper.js +4 -4
  78. package/dist/analyzer/sourceMapper.js.map +1 -1
  79. package/dist/analyzer/staticExpressions.js +1 -1
  80. package/dist/analyzer/staticExpressions.js.map +1 -1
  81. package/dist/analyzer/tracePrinter.js +4 -4
  82. package/dist/analyzer/tracePrinter.js.map +1 -1
  83. package/dist/analyzer/tuples.d.ts +9 -0
  84. package/dist/analyzer/tuples.js +252 -0
  85. package/dist/analyzer/tuples.js.map +1 -0
  86. package/dist/analyzer/typeComplexity.d.ts +2 -0
  87. package/dist/analyzer/typeComplexity.js +86 -0
  88. package/dist/analyzer/typeComplexity.js.map +1 -0
  89. package/dist/analyzer/typeEvaluator.js +1062 -1311
  90. package/dist/analyzer/typeEvaluator.js.map +1 -1
  91. package/dist/analyzer/typeEvaluatorTypes.d.ts +44 -40
  92. package/dist/analyzer/typeEvaluatorTypes.js +7 -1
  93. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  94. package/dist/analyzer/typeGuards.js +114 -85
  95. package/dist/analyzer/typeGuards.js.map +1 -1
  96. package/dist/analyzer/typePrinter.d.ts +1 -1
  97. package/dist/analyzer/typePrinter.js +54 -53
  98. package/dist/analyzer/typePrinter.js.map +1 -1
  99. package/dist/analyzer/typeStubWriter.d.ts +3 -3
  100. package/dist/analyzer/typeStubWriter.js +15 -15
  101. package/dist/analyzer/typeStubWriter.js.map +1 -1
  102. package/dist/analyzer/typeUtils.d.ts +20 -18
  103. package/dist/analyzer/typeUtils.js +316 -321
  104. package/dist/analyzer/typeUtils.js.map +1 -1
  105. package/dist/analyzer/typeVarContext.d.ts +24 -36
  106. package/dist/analyzer/typeVarContext.js +89 -193
  107. package/dist/analyzer/typeVarContext.js.map +1 -1
  108. package/dist/analyzer/typeWalker.js +4 -4
  109. package/dist/analyzer/typeWalker.js.map +1 -1
  110. package/dist/analyzer/typedDicts.d.ts +2 -2
  111. package/dist/analyzer/typedDicts.js +48 -52
  112. package/dist/analyzer/typedDicts.js.map +1 -1
  113. package/dist/analyzer/types.d.ts +79 -57
  114. package/dist/analyzer/types.js +125 -113
  115. package/dist/analyzer/types.js.map +1 -1
  116. package/dist/commands/dumpFileDebugInfoCommand.js +11 -11
  117. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  118. package/dist/common/configOptions.d.ts +1 -0
  119. package/dist/common/configOptions.js +5 -0
  120. package/dist/common/configOptions.js.map +1 -1
  121. package/dist/common/diagnosticRules.d.ts +1 -0
  122. package/dist/common/diagnosticRules.js +1 -0
  123. package/dist/common/diagnosticRules.js.map +1 -1
  124. package/dist/common/fileSystem.d.ts +0 -1
  125. package/dist/common/fileSystem.js.map +1 -1
  126. package/dist/common/languageServerInterface.d.ts +13 -0
  127. package/dist/common/languageServerInterface.js +15 -1
  128. package/dist/common/languageServerInterface.js.map +1 -1
  129. package/dist/common/lspUtils.js +2 -2
  130. package/dist/common/memUtils.d.ts +4 -0
  131. package/dist/common/memUtils.js +33 -2
  132. package/dist/common/memUtils.js.map +1 -1
  133. package/dist/common/serviceKeys.d.ts +3 -0
  134. package/dist/common/serviceKeys.js +2 -0
  135. package/dist/common/serviceKeys.js.map +1 -1
  136. package/dist/common/serviceProviderExtensions.js +7 -0
  137. package/dist/common/serviceProviderExtensions.js.map +1 -1
  138. package/dist/languageServerBase.d.ts +4 -3
  139. package/dist/languageServerBase.js +14 -10
  140. package/dist/languageServerBase.js.map +1 -1
  141. package/dist/languageService/autoImporter.d.ts +3 -2
  142. package/dist/languageService/autoImporter.js +5 -1
  143. package/dist/languageService/autoImporter.js.map +1 -1
  144. package/dist/languageService/completionProvider.d.ts +5 -3
  145. package/dist/languageService/completionProvider.js +38 -37
  146. package/dist/languageService/completionProvider.js.map +1 -1
  147. package/dist/languageService/completionProviderUtils.d.ts +1 -1
  148. package/dist/languageService/completionProviderUtils.js +3 -3
  149. package/dist/languageService/completionProviderUtils.js.map +1 -1
  150. package/dist/languageService/fileWatcherDynamicFeature.js +2 -2
  151. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  152. package/dist/languageService/hoverProvider.js +3 -3
  153. package/dist/languageService/hoverProvider.js.map +1 -1
  154. package/dist/languageService/referencesProvider.js +2 -2
  155. package/dist/languageService/signatureHelpProvider.js +1 -1
  156. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  157. package/dist/languageService/tooltipUtils.js +3 -3
  158. package/dist/languageService/tooltipUtils.js.map +1 -1
  159. package/dist/localization/localize.d.ts +5 -0
  160. package/dist/localization/localize.js +6 -0
  161. package/dist/localization/localize.js.map +1 -1
  162. package/dist/localization/package.nls.cs.json +5 -1
  163. package/dist/localization/package.nls.de.json +5 -1
  164. package/dist/localization/package.nls.en-us.json +5 -0
  165. package/dist/localization/package.nls.es.json +5 -1
  166. package/dist/localization/package.nls.fr.json +5 -1
  167. package/dist/localization/package.nls.it.json +5 -1
  168. package/dist/localization/package.nls.ja.json +5 -1
  169. package/dist/localization/package.nls.ko.json +5 -1
  170. package/dist/localization/package.nls.pl.json +5 -1
  171. package/dist/localization/package.nls.pt-br.json +5 -1
  172. package/dist/localization/package.nls.qps-ploc.json +5 -1
  173. package/dist/localization/package.nls.ru.json +5 -1
  174. package/dist/localization/package.nls.tr.json +5 -1
  175. package/dist/localization/package.nls.zh-cn.json +5 -1
  176. package/dist/localization/package.nls.zh-tw.json +5 -1
  177. package/dist/parser/parseNodes.d.ts +9 -9
  178. package/dist/parser/parseNodes.js +20 -20
  179. package/dist/parser/parseNodes.js.map +1 -1
  180. package/dist/parser/parser.js +30 -30
  181. package/dist/parser/parser.js.map +1 -1
  182. package/dist/tests/checker.test.js +2 -2
  183. package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js +4 -21
  184. package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js.map +1 -1
  185. package/dist/tests/fourslash/signature.complicated.fourslash.js +1 -1
  186. package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
  187. package/dist/tests/harness/fourslash/fourSlashParser.js +1 -1
  188. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  189. package/dist/tests/harness/fourslash/testStateUtils.js +2 -2
  190. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  191. package/dist/tests/harness/vfs/filesystem.d.ts +0 -1
  192. package/dist/tests/harness/vfs/filesystem.js +0 -4
  193. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  194. package/dist/tests/importResolver.test.js +62 -15
  195. package/dist/tests/importResolver.test.js.map +1 -1
  196. package/dist/tests/lsp/languageServerTestUtils.js +1 -1
  197. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  198. package/dist/tests/typeEvaluator3.test.js +1 -1
  199. package/dist/tests/typeEvaluator4.test.js +9 -1
  200. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  201. package/dist/tests/typeEvaluator5.test.js +8 -2
  202. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  203. package/dist/tests/typeEvaluator6.test.js +72 -60
  204. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  205. package/dist/tests/typeEvaluator7.test.js +2 -2
  206. package/dist/tests/typePrinter.test.js +13 -18
  207. package/dist/tests/typePrinter.test.js.map +1 -1
  208. package/dist/workspaceFactory.d.ts +3 -2
  209. package/dist/workspaceFactory.js +15 -2
  210. package/dist/workspaceFactory.js.map +1 -1
  211. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { ConsoleInterface } from '../common/console';
3
3
  import { Diagnostic, DiagnosticAddendum } from '../common/diagnostic';
4
4
  import { DiagnosticRule } from '../common/diagnosticRules';
5
5
  import { TextRange } from '../common/textRange';
6
- import { ArgumentCategory, ArgumentNode, CallNode, CaseNode, ClassNode, DecoratorNode, ExpressionNode, FunctionNode, MatchNode, NameNode, ParameterCategory, ParameterNode, ParseNode, RaiseNode, StringNode } from '../parser/parseNodes';
6
+ import { ArgCategory, ArgumentNode, CallNode, CaseNode, ClassNode, DecoratorNode, ExpressionNode, FunctionNode, MatchNode, NameNode, ParamCategory, ParameterNode, ParseNode, RaiseNode, StringNode } from '../parser/parseNodes';
7
7
  import { AnalyzerFileInfo } from './analyzerFileInfo';
8
8
  import { CodeFlowReferenceExpressionNode, FlowNode } from './codeFlowTypes';
9
9
  import { Declaration } from './declaration';
@@ -75,7 +75,7 @@ export interface TypeResultWithNode extends TypeResult {
75
75
  export interface MemberAccessDeprecationInfo {
76
76
  accessType: 'property' | 'descriptor';
77
77
  accessMethod: 'get' | 'set' | 'del';
78
- deprecationMessage: string;
78
+ deprecatedMessage: string;
79
79
  }
80
80
  export interface EvaluatorUsage {
81
81
  method: 'get' | 'set' | 'del';
@@ -105,21 +105,21 @@ export interface AbstractSymbol {
105
105
  classType: Type;
106
106
  hasImplementation: boolean;
107
107
  }
108
- export interface FunctionArgumentBase {
109
- argumentCategory: ArgumentCategory;
108
+ export interface ArgBase {
109
+ argCategory: ArgCategory;
110
110
  node?: ArgumentNode | undefined;
111
111
  name?: NameNode | undefined;
112
112
  typeResult?: TypeResult | undefined;
113
113
  valueExpression?: ExpressionNode | undefined;
114
114
  active?: boolean | undefined;
115
115
  }
116
- export interface FunctionArgumentWithType extends FunctionArgumentBase {
116
+ export interface ArgWithType extends ArgBase {
117
117
  typeResult: TypeResult;
118
118
  }
119
- export interface FunctionArgumentWithExpression extends FunctionArgumentBase {
119
+ export interface ArgWithExpression extends ArgBase {
120
120
  valueExpression: ExpressionNode;
121
121
  }
122
- export type FunctionArgument = FunctionArgumentWithType | FunctionArgumentWithExpression;
122
+ export type Arg = ArgWithType | ArgWithExpression;
123
123
  export interface EffectiveTypeResult {
124
124
  type: Type;
125
125
  isIncomplete: boolean;
@@ -130,10 +130,10 @@ export interface EffectiveTypeResult {
130
130
  evaluationAttempts?: number;
131
131
  }
132
132
  export interface ValidateArgTypeParams {
133
- paramCategory: ParameterCategory;
133
+ paramCategory: ParamCategory;
134
134
  paramType: Type;
135
135
  requiresTypeVarMatching: boolean;
136
- argument: FunctionArgument;
136
+ argument: Arg;
137
137
  isDefaultArg?: boolean;
138
138
  argType?: Type | undefined;
139
139
  errorNode: ExpressionNode;
@@ -142,28 +142,23 @@ export interface ValidateArgTypeParams {
142
142
  mapsToVarArgList?: boolean | undefined;
143
143
  isinstanceParam?: boolean;
144
144
  }
145
- export interface AnnotationTypeOptions {
146
- isVariableAnnotation?: boolean;
147
- allowFinal?: boolean;
148
- allowClassVar?: boolean;
149
- associateTypeVarsWithScope?: boolean;
150
- allowTypeVarTuple?: boolean;
151
- allowParamSpec?: boolean;
152
- allowRequired?: boolean;
153
- allowUnpackedTypedDict?: boolean;
154
- allowUnpackedTuple?: boolean;
155
- notParsedByInterpreter?: boolean;
156
- enforceClassTypeVarScope?: boolean;
157
- }
158
145
  export interface ExpectedTypeOptions {
159
146
  allowFinal?: boolean;
160
147
  allowRequired?: boolean;
161
148
  allowUnpackedTuple?: boolean;
149
+ allowUnpackedTypedDict?: boolean;
162
150
  allowParamSpec?: boolean;
163
- allowForwardReference?: boolean;
151
+ allowClassVar?: boolean;
152
+ varTypeAnnotation?: boolean;
153
+ typeVarGetsCurScope?: boolean;
164
154
  allowTypeVarsWithoutScopeId?: boolean;
165
- enforceTypeAnnotationRules?: boolean;
166
- disallowProtocolAndTypedDict?: boolean;
155
+ enforceClassTypeVarScope?: boolean;
156
+ parsesStringLiteral?: boolean;
157
+ notParsed?: boolean;
158
+ noNonTypeSpecialForms?: boolean;
159
+ forwardRefs?: boolean;
160
+ typeExpression?: boolean;
161
+ convertEllipsisToAny?: boolean;
167
162
  }
168
163
  export interface ExpectedTypeResult {
169
164
  type: Type;
@@ -186,7 +181,7 @@ export interface CallResult {
186
181
  returnType?: Type | undefined;
187
182
  isTypeIncomplete?: boolean | undefined;
188
183
  argumentErrors?: boolean;
189
- anyOrUnknownArgument?: UnknownType | AnyType;
184
+ anyOrUnknownArg?: UnknownType | AnyType;
190
185
  activeParam?: FunctionParam | undefined;
191
186
  specializedInitSelfType?: Type | undefined;
192
187
  overloadsUsedForCall?: FunctionType[];
@@ -204,6 +199,11 @@ export interface ClassMemberLookup {
204
199
  narrowedTypeForSet?: Type;
205
200
  memberAccessDeprecationInfo?: MemberAccessDeprecationInfo;
206
201
  }
202
+ export declare enum Reachability {
203
+ Reachable = 0,
204
+ UnreachableAlways = 1,
205
+ UnreachableByAnalysis = 2
206
+ }
207
207
  export interface PrintTypeOptions {
208
208
  expandTypeAlias?: boolean;
209
209
  enforcePythonSyntax?: boolean;
@@ -211,7 +211,7 @@ export interface PrintTypeOptions {
211
211
  useTypingUnpack?: boolean;
212
212
  printUnknownWithAny?: boolean;
213
213
  printTypeVarVariance?: boolean;
214
- omitTypeArgumentsIfUnknown?: boolean;
214
+ omitTypeArgsIfUnknown?: boolean;
215
215
  }
216
216
  export interface DeclaredSymbolTypeInfo {
217
217
  type: Type | undefined;
@@ -223,7 +223,7 @@ export interface ResolveAliasOptions {
223
223
  }
224
224
  export interface ValidateTypeArgsOptions {
225
225
  allowEmptyTuple?: boolean;
226
- allowVariadicTypeVar?: boolean;
226
+ allowTypeVarTuple?: boolean;
227
227
  allowParamSpec?: boolean;
228
228
  allowTypeArgList?: boolean;
229
229
  allowUnpackedTuples?: boolean;
@@ -244,27 +244,31 @@ export interface TypeEvaluator {
244
244
  getTypeResultForDecorator: (node: DecoratorNode) => TypeResult | undefined;
245
245
  getCachedType: (node: ExpressionNode) => Type | undefined;
246
246
  getTypeOfExpression: (node: ExpressionNode, flags?: EvalFlags, context?: InferenceContext) => TypeResult;
247
- getTypeOfAnnotation: (node: ExpressionNode, options?: AnnotationTypeOptions) => Type;
247
+ getTypeOfAnnotation: (node: ExpressionNode, options?: ExpectedTypeOptions) => Type;
248
248
  getTypeOfClass: (node: ClassNode) => ClassTypeResult | undefined;
249
+ createSubclass: (errorNode: ExpressionNode, type1: ClassType, type2: ClassType) => ClassType;
249
250
  getTypeOfFunction: (node: FunctionNode) => FunctionTypeResult | undefined;
250
251
  getTypeOfExpressionExpectingType: (node: ExpressionNode, options?: ExpectedTypeOptions) => TypeResult;
251
252
  evaluateTypeForSubnode: (subnode: ParseNode, callback: () => void) => TypeResult | undefined;
252
253
  evaluateTypesForStatement: (node: ParseNode) => void;
253
254
  evaluateTypesForMatchStatement: (node: MatchNode) => void;
254
255
  evaluateTypesForCaseStatement: (node: CaseNode) => void;
255
- evaluateTypeOfParameter: (node: ParameterNode) => void;
256
+ evaluateTypeOfParam: (node: ParameterNode) => void;
256
257
  canBeTruthy: (type: Type) => boolean;
257
258
  canBeFalsy: (type: Type) => boolean;
258
259
  stripLiteralValue: (type: Type) => Type;
259
260
  removeTruthinessFromType: (type: Type) => Type;
260
261
  removeFalsinessFromType: (type: Type) => Type;
262
+ stripTypeGuard: (type: Type) => Type;
261
263
  getExpectedType: (node: ExpressionNode) => ExpectedTypeResult | undefined;
262
264
  verifyRaiseExceptionType: (node: RaiseNode) => void;
263
265
  verifyDeleteExpression: (node: ExpressionNode) => void;
264
- validateOverloadedArgTypes: (errorNode: ExpressionNode, argList: FunctionArgument[], typeResult: TypeResult<OverloadedFunctionType>, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean, inferenceContext: InferenceContext | undefined) => CallResult;
266
+ validateOverloadedArgTypes: (errorNode: ExpressionNode, argList: Arg[], typeResult: TypeResult<OverloadedFunctionType>, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean, inferenceContext: InferenceContext | undefined) => CallResult;
265
267
  validateInitSubclassArgs: (node: ClassNode, classType: ClassType) => void;
266
- isAfterNodeReachable: (node: ParseNode) => boolean;
267
268
  isNodeReachable: (node: ParseNode, sourceNode?: ParseNode | undefined) => boolean;
269
+ isAfterNodeReachable: (node: ParseNode) => boolean;
270
+ getNodeReachability: (node: ParseNode, sourceNode?: ParseNode | undefined) => Reachability;
271
+ getAfterNodeReachability: (node: ParseNode) => Reachability;
268
272
  isAsymmetricAccessorAssignment: (node: ParseNode) => boolean;
269
273
  suppressDiagnostics: (node: ParseNode, callback: () => void) => void;
270
274
  isSpecialFormClass: (classType: ClassType, flags: AssignTypeFlags) => boolean;
@@ -276,7 +280,7 @@ export interface TypeEvaluator {
276
280
  getTypeOfIterable: (typeResult: TypeResult, isAsync: boolean, errorNode: ExpressionNode, emitNotIterableError?: boolean) => TypeResult | undefined;
277
281
  getTypeOfIterator: (typeResult: TypeResult, isAsync: boolean, errorNode: ExpressionNode, emitNotIterableError?: boolean) => TypeResult | undefined;
278
282
  getGetterTypeFromProperty: (propertyClass: ClassType, inferTypeIfNeeded: boolean) => Type | undefined;
279
- getTypeOfArgument: (arg: FunctionArgument, inferenceContext: InferenceContext | undefined) => TypeResult;
283
+ getTypeOfArg: (arg: Arg, inferenceContext: InferenceContext | undefined) => TypeResult;
280
284
  markNamesAccessed: (node: ParseNode, names: string[]) => void;
281
285
  expandPromotionTypes: (node: ParseNode, type: Type) => Type;
282
286
  makeTopLevelTypeVarsConcrete: (type: Type, makeParamSpecsConcrete?: boolean) => Type;
@@ -290,7 +294,7 @@ export interface TypeEvaluator {
290
294
  getDeclaredTypeForExpression: (expression: ExpressionNode, usage?: EvaluatorUsage) => Type | undefined;
291
295
  getFunctionDeclaredReturnType: (node: FunctionNode) => Type | undefined;
292
296
  getFunctionInferredReturnType: (type: FunctionType, callSiteInfo?: CallSiteEvaluationInfo) => Type;
293
- getBestOverloadForArguments: (errorNode: ExpressionNode, typeResult: TypeResult<OverloadedFunctionType>, argList: FunctionArgument[]) => FunctionType | undefined;
297
+ getBestOverloadForArgs: (errorNode: ExpressionNode, typeResult: TypeResult<OverloadedFunctionType>, argList: Arg[]) => FunctionType | undefined;
294
298
  getBuiltInType: (node: ParseNode, name: string) => Type;
295
299
  getTypeOfMember: (member: ClassMember) => Type;
296
300
  getTypeOfBoundMember(errorNode: ExpressionNode, objectType: ClassType, memberName: string, usage?: EvaluatorUsage, diag?: DiagnosticAddendum | undefined, flags?: MemberAccessFlags, selfType?: ClassType | TypeVarType): TypeResult | undefined;
@@ -302,11 +306,11 @@ export interface TypeEvaluator {
302
306
  narrowConstrainedTypeVar: (node: ParseNode, typeVar: TypeVarType) => Type | undefined;
303
307
  assignType: (destType: Type, srcType: Type, diag?: DiagnosticAddendum, destTypeVarContext?: TypeVarContext, srcTypeVarContext?: TypeVarContext, flags?: AssignTypeFlags, recursionCount?: number) => boolean;
304
308
  validateOverrideMethod: (baseMethod: Type, overrideMethod: FunctionType | OverloadedFunctionType, baseClass: ClassType | undefined, diag: DiagnosticAddendum, enforceParamNames?: boolean) => boolean;
305
- validateCallArguments: (errorNode: ExpressionNode, argList: FunctionArgument[], callTypeResult: TypeResult, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean | undefined, inferenceContext: InferenceContext | undefined) => CallResult;
309
+ validateCallArgs: (errorNode: ExpressionNode, argList: Arg[], callTypeResult: TypeResult, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean | undefined, inferenceContext: InferenceContext | undefined) => CallResult;
306
310
  validateTypeArg: (argResult: TypeResultWithNode, options?: ValidateTypeArgsOptions) => boolean;
307
311
  assignTypeToExpression: (target: ExpressionNode, typeResult: TypeResult, srcExpr: ExpressionNode) => void;
308
312
  assignClassToSelf: (destType: ClassType, srcType: ClassType, assumedVariance: Variance) => boolean;
309
- getBuiltInObject: (node: ParseNode, name: string, typeArguments?: Type[]) => Type;
313
+ getBuiltInObject: (node: ParseNode, name: string, typeArgs?: Type[]) => Type;
310
314
  getTypedDictClassType: () => ClassType | undefined;
311
315
  getTupleClassType: () => ClassType | undefined;
312
316
  getObjectType: () => Type;
@@ -315,15 +319,15 @@ export interface TypeEvaluator {
315
319
  getTypeClassType(): ClassType | undefined;
316
320
  getTypingType: (node: ParseNode, symbolName: string) => Type | undefined;
317
321
  inferReturnTypeIfNecessary: (type: Type) => void;
318
- inferTypeParameterVarianceForClass: (type: ClassType) => void;
319
- assignTypeArguments: (destType: ClassType, srcType: ClassType, diag: DiagnosticAddendum | undefined, destTypeVarContext: TypeVarContext | undefined, srcTypeVarContext: TypeVarContext | undefined, flags: AssignTypeFlags, recursionCount: number) => boolean;
320
- reportMissingTypeArguments: (node: ExpressionNode, type: Type, flags: EvalFlags) => Type;
322
+ inferVarianceForClass: (type: ClassType) => void;
323
+ assignTypeArgs: (destType: ClassType, srcType: ClassType, diag: DiagnosticAddendum | undefined, destTypeVarContext: TypeVarContext | undefined, srcTypeVarContext: TypeVarContext | undefined, flags: AssignTypeFlags, recursionCount: number) => boolean;
324
+ reportMissingTypeArgs: (node: ExpressionNode, type: Type, flags: EvalFlags) => Type;
321
325
  isFinalVariable: (symbol: Symbol) => boolean;
322
326
  isFinalVariableDeclaration: (decl: Declaration) => boolean;
323
327
  isExplicitTypeAliasDeclaration: (decl: Declaration) => boolean;
324
328
  addInformation: (message: string, node: ParseNode, range?: TextRange) => Diagnostic | undefined;
325
329
  addUnusedCode: (node: ParseNode, textRange: TextRange) => void;
326
- addUnreachableCode: (node: ParseNode, textRange: TextRange) => void;
330
+ addUnreachableCode: (node: ParseNode, reachability: Reachability, textRange: TextRange) => void;
327
331
  addDeprecated: (message: string, node: ParseNode) => void;
328
332
  addDiagnostic: (rule: DiagnosticRule, message: string, node: ParseNode, range?: TextRange) => Diagnostic | undefined;
329
333
  addDiagnosticForTextRange: (fileInfo: AnalyzerFileInfo, rule: DiagnosticRule, message: string, range: TextRange) => Diagnostic | undefined;
@@ -8,7 +8,7 @@
8
8
  * Abstract interface and other helper types for type evaluator module.
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.EvalFlags = exports.maxSubtypesForInferredType = void 0;
11
+ exports.Reachability = exports.EvalFlags = exports.maxSubtypesForInferredType = void 0;
12
12
  // Maximum number of unioned subtypes for an inferred type (e.g.
13
13
  // a list) before the type is considered an "Any".
14
14
  exports.maxSubtypesForInferredType = 64;
@@ -103,4 +103,10 @@ var EvalFlags;
103
103
  // or 'issubclass' call.
104
104
  EvalFlags[EvalFlags["IsInstanceArgDefaults"] = 536871546] = "IsInstanceArgDefaults";
105
105
  })(EvalFlags || (exports.EvalFlags = EvalFlags = {}));
106
+ var Reachability;
107
+ (function (Reachability) {
108
+ Reachability[Reachability["Reachable"] = 0] = "Reachable";
109
+ Reachability[Reachability["UnreachableAlways"] = 1] = "UnreachableAlways";
110
+ Reachability[Reachability["UnreachableByAnalysis"] = 2] = "UnreachableByAnalysis";
111
+ })(Reachability || (exports.Reachability = Reachability = {}));
106
112
  //# sourceMappingURL=typeEvaluatorTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA+CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,SAgIjB;AAhID,WAAkB,SAAS;IACvB,yCAAQ,CAAA;IAER,uDAAuD;IACvD,yEAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yDAAqB,CAAA;IAErB,yDAAyD;IACzD,uDAAoB,CAAA;IAEpB,kCAAkC;IAClC,iEAAyB,CAAA;IAEzB,0CAA0C;IAC1C,gDAAgB,CAAA;IAEhB,6CAA6C;IAC7C,wDAAoB,CAAA;IAEpB,gDAAgD;IAChD,8DAAuB,CAAA;IAEvB,2DAA2D;IAC3D,4BAA4B;IAC5B,mEAAyB,CAAA;IAEzB,kEAAkE;IAClE,gEAAgE;IAChE,qBAAqB;IACrB,+DAAuB,CAAA;IAEvB,qEAAqE;IACrE,2EAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,4DAAsB,CAAA;IAEtB,8DAA8D;IAC9D,0BAA0B;IAC1B,4EAA8B,CAAA;IAE9B,oEAAoE;IACpE,0BAA0B;IAC1B,wFAAoC,CAAA;IAEpC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,0EAA6B,CAAA;IAE7B,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,yFAAoC,CAAA;IAEpC,mDAAmD;IACnD,uEAA2B,CAAA;IAE3B,6CAA6C;IAC7C,0DAAoB,CAAA;IAEpB,mEAAmE;IACnE,kEAAwB,CAAA;IAExB,iEAAiE;IACjE,iCAAiC;IACjC,wDAAmB,CAAA;IAEnB,wDAAwD;IACxD,iEAAuB,CAAA;IAEvB,uDAAuD;IACvD,2EAA4B,CAAA;IAE5B,yCAAyC;IACzC,mFAAgC,CAAA;IAEhC,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6EAA6B,CAAA;IAE7B,8DAA8D;IAC9D,iDAAiD;IACjD,gFAA8B,CAAA;IAE9B,oEAAoE;IACpE,mBAAmB;IACnB,kFAA+B,CAAA;IAE/B,6CAA6C;IAC7C,yEAA0B,CAAA;IAE1B,2EAA2E;IAC3E,4BAA4B;IAC5B,6EAA4B,CAAA;IAE5B,sEAAsE;IACtE,+DAA+D;IAC/D,mEAAuB,CAAA;IAEvB,yEAAyE;IACzE,8CAA8C;IAC9C,0FAAkC,CAAA;IAElC,6DAA6D;IAC7D,iEAA+B,CAAA;IAE/B,sEAAsE;IACtE,mEAAgC,CAAA;IAEhC,sEAAsE;IACtE,iFAAuC,CAAA;IAEvC,sEAAsE;IACtE,wBAAwB;IACxB,mFAMiB,CAAA;AACrB,CAAC,EAhIiB,SAAS,yBAAT,SAAS,QAgI1B"}
1
+ {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA+CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,SAgIjB;AAhID,WAAkB,SAAS;IACvB,yCAAQ,CAAA;IAER,uDAAuD;IACvD,yEAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yDAAqB,CAAA;IAErB,yDAAyD;IACzD,uDAAoB,CAAA;IAEpB,kCAAkC;IAClC,iEAAyB,CAAA;IAEzB,0CAA0C;IAC1C,gDAAgB,CAAA;IAEhB,6CAA6C;IAC7C,wDAAoB,CAAA;IAEpB,gDAAgD;IAChD,8DAAuB,CAAA;IAEvB,2DAA2D;IAC3D,4BAA4B;IAC5B,mEAAyB,CAAA;IAEzB,kEAAkE;IAClE,gEAAgE;IAChE,qBAAqB;IACrB,+DAAuB,CAAA;IAEvB,qEAAqE;IACrE,2EAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,4DAAsB,CAAA;IAEtB,8DAA8D;IAC9D,0BAA0B;IAC1B,4EAA8B,CAAA;IAE9B,oEAAoE;IACpE,0BAA0B;IAC1B,wFAAoC,CAAA;IAEpC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,0EAA6B,CAAA;IAE7B,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,yFAAoC,CAAA;IAEpC,mDAAmD;IACnD,uEAA2B,CAAA;IAE3B,6CAA6C;IAC7C,0DAAoB,CAAA;IAEpB,mEAAmE;IACnE,kEAAwB,CAAA;IAExB,iEAAiE;IACjE,iCAAiC;IACjC,wDAAmB,CAAA;IAEnB,wDAAwD;IACxD,iEAAuB,CAAA;IAEvB,uDAAuD;IACvD,2EAA4B,CAAA;IAE5B,yCAAyC;IACzC,mFAAgC,CAAA;IAEhC,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6EAA6B,CAAA;IAE7B,8DAA8D;IAC9D,iDAAiD;IACjD,gFAA8B,CAAA;IAE9B,oEAAoE;IACpE,mBAAmB;IACnB,kFAA+B,CAAA;IAE/B,6CAA6C;IAC7C,yEAA0B,CAAA;IAE1B,2EAA2E;IAC3E,4BAA4B;IAC5B,6EAA4B,CAAA;IAE5B,sEAAsE;IACtE,+DAA+D;IAC/D,mEAAuB,CAAA;IAEvB,yEAAyE;IACzE,8CAA8C;IAC9C,0FAAkC,CAAA;IAElC,6DAA6D;IAC7D,iEAA+B,CAAA;IAE/B,sEAAsE;IACtE,mEAAgC,CAAA;IAEhC,sEAAsE;IACtE,iFAAuC,CAAA;IAEvC,sEAAsE;IACtE,wBAAwB;IACxB,mFAMiB,CAAA;AACrB,CAAC,EAhIiB,SAAS,yBAAT,SAAS,QAgI1B;AA8PD,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,yDAAS,CAAA;IACT,yEAAiB,CAAA;IACjB,iFAAqB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}