@zzzen/pyright-internal 1.2.0-dev.20240901 → 1.2.0-dev.20240915

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 (152) hide show
  1. package/dist/analyzer/analysis.d.ts +1 -0
  2. package/dist/analyzer/analysis.js +2 -0
  3. package/dist/analyzer/analysis.js.map +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.js +6 -2
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/binder.js +14 -8
  7. package/dist/analyzer/binder.js.map +1 -1
  8. package/dist/analyzer/cacheManager.d.ts +2 -2
  9. package/dist/analyzer/cacheManager.js.map +1 -1
  10. package/dist/analyzer/checker.js +53 -192
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.js +7 -2
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/constraintSolver.d.ts +1 -2
  15. package/dist/analyzer/constraintSolver.js +2 -2
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/constructors.js +7 -1
  18. package/dist/analyzer/constructors.js.map +1 -1
  19. package/dist/analyzer/dataClasses.js +6 -1
  20. package/dist/analyzer/dataClasses.js.map +1 -1
  21. package/dist/analyzer/namedTuples.js +4 -1
  22. package/dist/analyzer/namedTuples.js.map +1 -1
  23. package/dist/analyzer/operations.js +5 -0
  24. package/dist/analyzer/operations.js.map +1 -1
  25. package/dist/analyzer/parseTreeWalker.js +1 -1
  26. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  27. package/dist/analyzer/patternMatching.js +3 -1
  28. package/dist/analyzer/patternMatching.js.map +1 -1
  29. package/dist/analyzer/program.js +2 -3
  30. package/dist/analyzer/program.js.map +1 -1
  31. package/dist/analyzer/properties.js.map +1 -1
  32. package/dist/analyzer/protocols.d.ts +1 -2
  33. package/dist/analyzer/protocols.js +5 -8
  34. package/dist/analyzer/protocols.js.map +1 -1
  35. package/dist/analyzer/pythonPathUtils.d.ts +1 -1
  36. package/dist/analyzer/service.d.ts +3 -1
  37. package/dist/analyzer/service.js +50 -33
  38. package/dist/analyzer/service.js.map +1 -1
  39. package/dist/analyzer/sourceMapper.js +10 -5
  40. package/dist/analyzer/sourceMapper.js.map +1 -1
  41. package/dist/analyzer/tuples.d.ts +1 -2
  42. package/dist/analyzer/tuples.js.map +1 -1
  43. package/dist/analyzer/typeEvaluator.js +599 -181
  44. package/dist/analyzer/typeEvaluator.js.map +1 -1
  45. package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -6
  46. package/dist/analyzer/typeEvaluatorTypes.js +66 -2
  47. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  48. package/dist/analyzer/typeGuards.d.ts +3 -12
  49. package/dist/analyzer/typeGuards.js +286 -461
  50. package/dist/analyzer/typeGuards.js.map +1 -1
  51. package/dist/analyzer/typeStubWriter.js +12 -1
  52. package/dist/analyzer/typeStubWriter.js.map +1 -1
  53. package/dist/analyzer/typeUtils.d.ts +4 -17
  54. package/dist/analyzer/typeUtils.js +61 -60
  55. package/dist/analyzer/typeUtils.js.map +1 -1
  56. package/dist/analyzer/typedDicts.d.ts +1 -2
  57. package/dist/analyzer/typedDicts.js.map +1 -1
  58. package/dist/analyzer/types.d.ts +9 -4
  59. package/dist/analyzer/types.js +80 -26
  60. package/dist/analyzer/types.js.map +1 -1
  61. package/dist/backgroundAnalysisBase.d.ts +23 -16
  62. package/dist/backgroundAnalysisBase.js +64 -35
  63. package/dist/backgroundAnalysisBase.js.map +1 -1
  64. package/dist/backgroundThreadBase.js +9 -0
  65. package/dist/backgroundThreadBase.js.map +1 -1
  66. package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
  67. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  68. package/dist/common/languageServerInterface.d.ts +1 -1
  69. package/dist/common/uri/uriUtils.d.ts +1 -1
  70. package/dist/common/uri/uriUtils.js +6 -1
  71. package/dist/common/uri/uriUtils.js.map +1 -1
  72. package/dist/languageServerBase.d.ts +2 -2
  73. package/dist/languageServerBase.js +1 -3
  74. package/dist/languageServerBase.js.map +1 -1
  75. package/dist/languageService/analyzerServiceExecutor.d.ts +6 -1
  76. package/dist/languageService/analyzerServiceExecutor.js +7 -6
  77. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  78. package/dist/languageService/callHierarchyProvider.js +2 -1
  79. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  80. package/dist/languageService/completionProvider.js +12 -12
  81. package/dist/languageService/completionProvider.js.map +1 -1
  82. package/dist/languageService/definitionProvider.js +6 -6
  83. package/dist/languageService/definitionProvider.js.map +1 -1
  84. package/dist/languageService/documentSymbolCollector.js +9 -9
  85. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  86. package/dist/languageService/fileWatcherDynamicFeature.d.ts +5 -1
  87. package/dist/languageService/fileWatcherDynamicFeature.js +12 -2
  88. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  89. package/dist/languageService/hoverProvider.d.ts +1 -0
  90. package/dist/languageService/hoverProvider.js +30 -3
  91. package/dist/languageService/hoverProvider.js.map +1 -1
  92. package/dist/languageService/signatureHelpProvider.js +2 -2
  93. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  94. package/dist/languageService/tooltipUtils.js +2 -2
  95. package/dist/languageService/tooltipUtils.js.map +1 -1
  96. package/dist/localization/localize.d.ts +10 -0
  97. package/dist/localization/localize.js +4 -0
  98. package/dist/localization/localize.js.map +1 -1
  99. package/dist/localization/package.nls.cs.json +155 -153
  100. package/dist/localization/package.nls.de.json +128 -126
  101. package/dist/localization/package.nls.en-us.json +1632 -404
  102. package/dist/localization/package.nls.es.json +151 -149
  103. package/dist/localization/package.nls.fr.json +129 -127
  104. package/dist/localization/package.nls.it.json +143 -141
  105. package/dist/localization/package.nls.ja.json +142 -140
  106. package/dist/localization/package.nls.ko.json +155 -153
  107. package/dist/localization/package.nls.pl.json +178 -176
  108. package/dist/localization/package.nls.pt-br.json +139 -137
  109. package/dist/localization/package.nls.qps-ploc.json +392 -390
  110. package/dist/localization/package.nls.ru.json +170 -168
  111. package/dist/localization/package.nls.tr.json +153 -151
  112. package/dist/localization/package.nls.zh-cn.json +149 -147
  113. package/dist/localization/package.nls.zh-tw.json +133 -131
  114. package/dist/parser/parseNodes.d.ts +2 -3
  115. package/dist/parser/parseNodes.js.map +1 -1
  116. package/dist/parser/parser.js +6 -20
  117. package/dist/parser/parser.js.map +1 -1
  118. package/dist/tests/checker.test.js +14 -1
  119. package/dist/tests/checker.test.js.map +1 -1
  120. package/dist/tests/envVarUtils.test.js +0 -3
  121. package/dist/tests/envVarUtils.test.js.map +1 -1
  122. package/dist/tests/harness/fourslash/testLanguageService.js +0 -3
  123. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  124. package/dist/tests/harness/fourslash/testState.js +2 -5
  125. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  126. package/dist/tests/harness/fourslash/testStateUtils.d.ts +1 -0
  127. package/dist/tests/harness/fourslash/testStateUtils.js +5 -0
  128. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  129. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  130. package/dist/tests/harness/vfs/filesystem.js +6 -3
  131. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  132. package/dist/tests/importStatementUtils.test.js +1 -1
  133. package/dist/tests/importStatementUtils.test.js.map +1 -1
  134. package/dist/tests/service.test.js +31 -0
  135. package/dist/tests/service.test.js.map +1 -1
  136. package/dist/tests/typeEvaluator1.test.js +5 -1
  137. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  138. package/dist/tests/typeEvaluator2.test.js +13 -1
  139. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  140. package/dist/tests/typeEvaluator3.test.js +5 -1
  141. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  142. package/dist/tests/typeEvaluator5.test.js +6 -0
  143. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  144. package/dist/tests/typeEvaluator6.test.js +5 -1
  145. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  146. package/dist/tests/typeEvaluator7.test.js +1 -1
  147. package/dist/tests/typeEvaluator8.test.js +40 -0
  148. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  149. package/dist/workspaceFactory.d.ts +2 -20
  150. package/dist/workspaceFactory.js +26 -64
  151. package/dist/workspaceFactory.js.map +1 -1
  152. 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 { ArgCategory, ArgumentNode, CallNode, CaseNode, ClassNode, DecoratorNode, ExpressionNode, FunctionNode, MatchNode, NameNode, ParamCategory, ParameterNode, ParseNode, RaiseNode, StringNode } from '../parser/parseNodes';
6
+ import { ArgCategory, ArgumentNode, CallNode, CaseNode, ClassNode, DecoratorNode, ExpressionNode, FunctionNode, MatchNode, NameNode, ParamCategory, ParameterNode, ParseNode, StringNode } from '../parser/parseNodes';
7
7
  import { AnalyzerFileInfo } from './analyzerFileInfo';
8
8
  import { CodeFlowReferenceExpressionNode, FlowNode } from './codeFlowTypes';
9
9
  import { ConstraintTracker } from './constraintTracker';
@@ -13,7 +13,7 @@ import { SymbolWithScope } from './scope';
13
13
  import { Symbol } from './symbol';
14
14
  import { PrintTypeFlags } from './typePrinter';
15
15
  import { AnyType, ClassType, FunctionParam, FunctionType, OverloadedType, Type, TypeCondition, TypeVarScopeId, TypeVarType, UnknownType, Variance } from './types';
16
- import { AssignTypeFlags, ClassMember, InferenceContext, MemberAccessFlags } from './typeUtils';
16
+ import { ClassMember, InferenceContext, MemberAccessFlags } from './typeUtils';
17
17
  export declare const maxSubtypesForInferredType = 64;
18
18
  export declare const enum EvalFlags {
19
19
  None = 0,
@@ -45,7 +45,8 @@ export declare const enum EvalFlags {
45
45
  AllowConcatenate = 134217728,
46
46
  StripTupleLiterals = 268435456,
47
47
  IsinstanceArg = 536870912,
48
- EnforceClassTypeVarScope = 1073741824,
48
+ TypeFormArg = 1073741824,
49
+ EnforceClassTypeVarScope = -2147483648,
49
50
  CallBaseDefaults = 2,
50
51
  IndexBaseDefaults = 2,
51
52
  MemberAccessBaseDefaults = 2,
@@ -162,6 +163,7 @@ export interface ExpectedTypeOptions {
162
163
  parsesStringLiteral?: boolean;
163
164
  notParsed?: boolean;
164
165
  noNonTypeSpecialForms?: boolean;
166
+ typeFormArg?: boolean;
165
167
  forwardRefs?: boolean;
166
168
  typeExpression?: boolean;
167
169
  convertEllipsisToAny?: boolean;
@@ -255,6 +257,28 @@ export interface CallSiteEvaluationInfo {
255
257
  errorNode: ExpressionNode;
256
258
  args: ValidateArgTypeParams[];
257
259
  }
260
+ export interface SymbolDeclInfo {
261
+ decls: Declaration[];
262
+ synthesizedTypes: Type[];
263
+ }
264
+ export declare const enum AssignTypeFlags {
265
+ Default = 0,
266
+ Invariant = 1,
267
+ Contravariant = 2,
268
+ SkipRecursiveTypeCheck = 4,
269
+ ArgAssignmentFirstPass = 8,
270
+ OverloadOverlap = 16,
271
+ PartialOverloadOverlap = 32,
272
+ SkipReturnTypeCheck = 64,
273
+ RetainLiteralsForTypeVar = 256,
274
+ SkipSelfClsTypeCheck = 512,
275
+ PopulateExpectedType = 2048,
276
+ SkipPopulateUnknownExpectedType = 4096,
277
+ AllowUnspecifiedTypeArgs = 8192,
278
+ AllowIsinstanceSpecialForms = 16384,
279
+ SkipSelfClsParamCheck = 32768,
280
+ AllowProtocolClassSource = 65536
281
+ }
258
282
  export interface TypeEvaluator {
259
283
  runWithCancellationToken<T>(token: CancellationToken, callback: () => T): T;
260
284
  getType: (node: ExpressionNode) => Type | undefined;
@@ -280,7 +304,7 @@ export interface TypeEvaluator {
280
304
  stripTypeGuard: (type: Type) => Type;
281
305
  solveAndApplyConstraints: (type: Type, constraints: ConstraintTracker, applyOptions?: ApplyTypeVarOptions, solveOptions?: SolveConstraintsOptions) => Type;
282
306
  getExpectedType: (node: ExpressionNode) => ExpectedTypeResult | undefined;
283
- verifyRaiseExceptionType: (node: RaiseNode) => void;
307
+ verifyRaiseExceptionType: (node: ExpressionNode) => void;
284
308
  verifyDeleteExpression: (node: ExpressionNode) => void;
285
309
  validateOverloadedArgTypes: (errorNode: ExpressionNode, argList: Arg[], typeResult: TypeResult<OverloadedType>, constraints: ConstraintTracker | undefined, skipUnknownArgCheck: boolean, inferenceContext: InferenceContext | undefined) => CallResult;
286
310
  validateInitSubclassArgs: (node: ClassNode, classType: ClassType) => void;
@@ -291,8 +315,8 @@ export interface TypeEvaluator {
291
315
  isAsymmetricAccessorAssignment: (node: ParseNode) => boolean;
292
316
  suppressDiagnostics: (node: ParseNode, callback: () => void) => void;
293
317
  isSpecialFormClass: (classType: ClassType, flags: AssignTypeFlags) => boolean;
294
- getDeclarationsForStringNode: (node: StringNode) => Declaration[] | undefined;
295
- getDeclarationsForNameNode: (node: NameNode, skipUnreachableCode?: boolean) => Declaration[] | undefined;
318
+ getDeclInfoForStringNode: (node: StringNode) => SymbolDeclInfo | undefined;
319
+ getDeclInfoForNameNode: (node: NameNode, skipUnreachableCode?: boolean) => SymbolDeclInfo | undefined;
296
320
  getTypeForDeclaration: (declaration: Declaration) => DeclaredSymbolTypeInfo;
297
321
  resolveAliasDeclaration: (declaration: Declaration, resolveLocalNames: boolean, options?: ResolveAliasOptions) => Declaration | undefined;
298
322
  resolveAliasDeclarationWithInfo: (declaration: Declaration, resolveLocalNames: boolean, options?: ResolveAliasOptions) => DeclarationUtils.ResolvedAliasInfo | undefined;
@@ -320,6 +344,7 @@ export interface TypeEvaluator {
320
344
  getBoundMagicMethod: (classType: ClassType, memberName: string, selfType?: ClassType | TypeVarType | undefined, diag?: DiagnosticAddendum, recursionCount?: number) => FunctionType | OverloadedType | undefined;
321
345
  getTypeOfMagicMethodCall: (objType: Type, methodName: string, argList: TypeResult[], errorNode: ExpressionNode, inferenceContext: InferenceContext | undefined) => TypeResult | undefined;
322
346
  bindFunctionToClassOrObject: (baseType: ClassType | undefined, memberType: FunctionType | OverloadedType, memberClass?: ClassType, treatConstructorAsClassMethod?: boolean, selfType?: ClassType | TypeVarType, diag?: DiagnosticAddendum, recursionCount?: number) => FunctionType | OverloadedType | undefined;
347
+ getCallbackProtocolType: (objType: ClassType, recursionCount?: number) => FunctionType | OverloadedType | undefined;
323
348
  getCallSignatureInfo: (node: CallNode, activeIndex: number, activeOrFake: boolean) => CallSignatureInfo | undefined;
324
349
  getAbstractSymbols: (classType: ClassType) => AbstractSymbol[];
325
350
  narrowConstrainedTypeVar: (node: ParseNode, typeVar: TypeVarType) => Type | undefined;
@@ -332,6 +357,8 @@ export interface TypeEvaluator {
332
357
  getBuiltInObject: (node: ParseNode, name: string, typeArgs?: Type[]) => Type;
333
358
  getTypedDictClassType: () => ClassType | undefined;
334
359
  getTupleClassType: () => ClassType | undefined;
360
+ getDictClassType: () => ClassType | undefined;
361
+ getStrClassType: () => ClassType | undefined;
335
362
  getObjectType: () => Type;
336
363
  getNoneType: () => Type;
337
364
  getUnionClassType(): Type;
@@ -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.Reachability = exports.EvalFlags = exports.maxSubtypesForInferredType = void 0;
11
+ exports.AssignTypeFlags = 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;
@@ -90,9 +90,12 @@ var EvalFlags;
90
90
  // Interpret the expression using the specialized behaviors associated
91
91
  // with the second argument to isinstance and issubclass calls.
92
92
  EvalFlags[EvalFlags["IsinstanceArg"] = 536870912] = "IsinstanceArg";
93
+ // Interpret the expression using the behaviors associated with the first
94
+ // argument to a TypeForm call.
95
+ EvalFlags[EvalFlags["TypeFormArg"] = 1073741824] = "TypeFormArg";
93
96
  // Enforce that any type variables referenced in this type are associated
94
97
  // with the enclosing class or an outer scope.
95
- EvalFlags[EvalFlags["EnforceClassTypeVarScope"] = 1073741824] = "EnforceClassTypeVarScope";
98
+ EvalFlags[EvalFlags["EnforceClassTypeVarScope"] = -2147483648] = "EnforceClassTypeVarScope";
96
99
  // Defaults used for evaluating the LHS of a call expression.
97
100
  EvalFlags[EvalFlags["CallBaseDefaults"] = 2] = "CallBaseDefaults";
98
101
  // Defaults used for evaluating the LHS of a member access expression.
@@ -109,4 +112,65 @@ var Reachability;
109
112
  Reachability[Reachability["UnreachableAlways"] = 1] = "UnreachableAlways";
110
113
  Reachability[Reachability["UnreachableByAnalysis"] = 2] = "UnreachableByAnalysis";
111
114
  })(Reachability || (exports.Reachability = Reachability = {}));
115
+ var AssignTypeFlags;
116
+ (function (AssignTypeFlags) {
117
+ AssignTypeFlags[AssignTypeFlags["Default"] = 0] = "Default";
118
+ // Require invariance with respect to class matching? Normally
119
+ // subclasses are allowed.
120
+ AssignTypeFlags[AssignTypeFlags["Invariant"] = 1] = "Invariant";
121
+ // The caller has swapped the source and dest types because
122
+ // the types are contravariant. Perform type var matching
123
+ // on dest type vars rather than source type var.
124
+ AssignTypeFlags[AssignTypeFlags["Contravariant"] = 2] = "Contravariant";
125
+ // We're comparing type compatibility of two distinct recursive types.
126
+ // This has the potential of recursing infinitely. This flag allows us
127
+ // to detect the recursion after the first level of checking.
128
+ AssignTypeFlags[AssignTypeFlags["SkipRecursiveTypeCheck"] = 4] = "SkipRecursiveTypeCheck";
129
+ // During TypeVar solving for a function call, this flag is set if
130
+ // this is the first of multiple passes. It adjusts certain heuristics
131
+ // for constraint solving.
132
+ AssignTypeFlags[AssignTypeFlags["ArgAssignmentFirstPass"] = 8] = "ArgAssignmentFirstPass";
133
+ // If the dest is not Any but the src is Any, treat it
134
+ // as incompatible. Also, treat all source TypeVars as their
135
+ // concrete counterparts. This option is used for validating
136
+ // whether overload signatures overlap.
137
+ AssignTypeFlags[AssignTypeFlags["OverloadOverlap"] = 16] = "OverloadOverlap";
138
+ // When used in conjunction with OverloadOverlapCheck, look
139
+ // for partial overlaps. For example, `int | list` overlaps
140
+ // partially with `int | str`.
141
+ AssignTypeFlags[AssignTypeFlags["PartialOverloadOverlap"] = 32] = "PartialOverloadOverlap";
142
+ // For function types, skip the return type check.
143
+ AssignTypeFlags[AssignTypeFlags["SkipReturnTypeCheck"] = 64] = "SkipReturnTypeCheck";
144
+ // In most cases, literals are stripped when assigning to a
145
+ // type variable. This overrides the standard behavior.
146
+ AssignTypeFlags[AssignTypeFlags["RetainLiteralsForTypeVar"] = 256] = "RetainLiteralsForTypeVar";
147
+ // When validating the type of a self or cls parameter, allow
148
+ // a type mismatch. This is used in overload consistency validation
149
+ // because overloads can provide explicit type annotations for self
150
+ // or cls.
151
+ AssignTypeFlags[AssignTypeFlags["SkipSelfClsTypeCheck"] = 512] = "SkipSelfClsTypeCheck";
152
+ // We're initially populating the constraints with an expected type,
153
+ // so TypeVars should match the specified type exactly rather than
154
+ // employing narrowing or widening. The variance context determines
155
+ // whether the upper bound, lower bound, or both are established.
156
+ AssignTypeFlags[AssignTypeFlags["PopulateExpectedType"] = 2048] = "PopulateExpectedType";
157
+ // Used with PopulatingExpectedType, this flag indicates that a TypeVar
158
+ // constraint that is Unknown should be ignored.
159
+ AssignTypeFlags[AssignTypeFlags["SkipPopulateUnknownExpectedType"] = 4096] = "SkipPopulateUnknownExpectedType";
160
+ // Normally, when a class type is assigned to a TypeVar and that class
161
+ // hasn't previously been specialized, it will be specialized with
162
+ // default type arguments (typically "Unknown"). This flag skips
163
+ // this step.
164
+ AssignTypeFlags[AssignTypeFlags["AllowUnspecifiedTypeArgs"] = 8192] = "AllowUnspecifiedTypeArgs";
165
+ // Normally all special form classes are incompatible with type[T],
166
+ // but a few of them are allowed in the context of an isinstance
167
+ // or issubclass call.
168
+ AssignTypeFlags[AssignTypeFlags["AllowIsinstanceSpecialForms"] = 16384] = "AllowIsinstanceSpecialForms";
169
+ // When comparing two methods, skip the type check for the "self" or "cls"
170
+ // parameters. This is used for variance inference and validation.
171
+ AssignTypeFlags[AssignTypeFlags["SkipSelfClsParamCheck"] = 32768] = "SkipSelfClsParamCheck";
172
+ // Normally a protocol class object cannot be used as a source type. This
173
+ // option overrides this behavior.
174
+ AssignTypeFlags[AssignTypeFlags["AllowProtocolClassSource"] = 65536] = "AllowProtocolClassSource";
175
+ })(AssignTypeFlags || (exports.AssignTypeFlags = AssignTypeFlags = {}));
112
176
  //# sourceMappingURL=typeEvaluatorTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAgDH,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,oDAAoD;IACpD,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;AAqRD,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,yDAAS,CAAA;IACT,yEAAiB,CAAA;IACjB,iFAAqB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
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,SAoIjB;AApID,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,oDAAoD;IACpD,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,+BAA+B;IAC/B,gEAAqB,CAAA;IAErB,yEAAyE;IACzE,8CAA8C;IAC9C,2FAAkC,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,EApIiB,SAAS,yBAAT,SAAS,QAoI1B;AAsRD,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,yDAAS,CAAA;IACT,yEAAiB,CAAA;IACjB,iFAAqB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AA8CD,IAAkB,eA0EjB;AA1ED,WAAkB,eAAe;IAC7B,2DAAW,CAAA;IAEX,8DAA8D;IAC9D,0BAA0B;IAC1B,+DAAkB,CAAA;IAElB,2DAA2D;IAC3D,yDAAyD;IACzD,iDAAiD;IACjD,uEAAsB,CAAA;IAEtB,sEAAsE;IACtE,sEAAsE;IACtE,6DAA6D;IAC7D,yFAA+B,CAAA;IAE/B,kEAAkE;IAClE,sEAAsE;IACtE,0BAA0B;IAC1B,yFAA+B,CAAA;IAE/B,sDAAsD;IACtD,4DAA4D;IAC5D,4DAA4D;IAC5D,uCAAuC;IACvC,4EAAwB,CAAA;IAExB,2DAA2D;IAC3D,2DAA2D;IAC3D,8BAA8B;IAC9B,0FAA+B,CAAA;IAE/B,kDAAkD;IAClD,oFAA4B,CAAA;IAE5B,2DAA2D;IAC3D,uDAAuD;IACvD,+FAAiC,CAAA;IAEjC,6DAA6D;IAC7D,mEAAmE;IACnE,mEAAmE;IACnE,UAAU;IACV,uFAA6B,CAAA;IAE7B,oEAAoE;IACpE,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,wFAA8B,CAAA;IAE9B,uEAAuE;IACvE,gDAAgD;IAChD,8GAAyC,CAAA;IAEzC,sEAAsE;IACtE,kEAAkE;IAClE,gEAAgE;IAChE,aAAa;IACb,gGAAkC,CAAA;IAElC,mEAAmE;IACnE,gEAAgE;IAChE,sBAAsB;IACtB,uGAAqC,CAAA;IAErC,0EAA0E;IAC1E,kEAAkE;IAClE,2FAA+B,CAAA;IAE/B,yEAAyE;IACzE,kCAAkC;IAClC,iGAAkC,CAAA;AACtC,CAAC,EA1EiB,eAAe,+BAAf,eAAe,QA0EhC"}
@@ -1,26 +1,17 @@
1
1
  import { ExpressionNode } from '../parser/parseNodes';
2
2
  import { TypeEvaluator } from './typeEvaluatorTypes';
3
- import { ClassType, Type } from './types';
3
+ import { AnyType, ClassType, FunctionType, OverloadedType, Type, TypeVarType, UnknownType } from './types';
4
4
  export interface TypeNarrowingResult {
5
5
  type: Type;
6
6
  isIncomplete: boolean;
7
7
  }
8
8
  export type TypeNarrowingCallback = (type: Type) => TypeNarrowingResult | undefined;
9
9
  export declare function getTypeNarrowingCallback(evaluator: TypeEvaluator, reference: ExpressionNode, testExpression: ExpressionNode, isPositiveTest: boolean, recursionCount?: number): TypeNarrowingCallback | undefined;
10
- export declare function isIsinstanceFilterSuperclass(evaluator: TypeEvaluator, varType: Type, concreteVarType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
11
- export declare function isIsinstanceFilterSubclass(evaluator: TypeEvaluator, varType: ClassType, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
10
+ export declare function getIsInstanceClassTypes(evaluator: TypeEvaluator, argType: Type): (ClassType | TypeVarType | FunctionType)[] | undefined;
11
+ export declare function narrowTypeForInstanceOrSubclass(evaluator: TypeEvaluator, type: Type, filterTypes: Type[], isInstanceCheck: boolean, isTypeIsCheck: boolean, isPositiveTest: boolean, errorNode: ExpressionNode): import("./types").UnboundType | UnknownType | AnyType | FunctionType | OverloadedType | ClassType | import("./types").ModuleType | TypeVarType | import("./types").NeverType | import("./types").UnionType;
12
12
  export declare function getElementTypeForContainerNarrowing(containerType: Type): Type | undefined;
13
13
  export declare function narrowTypeForContainerElementType(evaluator: TypeEvaluator, referenceType: Type, elementType: Type): Type;
14
14
  export declare function narrowTypeForDiscriminatedDictEntryComparison(evaluator: TypeEvaluator, referenceType: Type, indexLiteralType: ClassType, literalType: Type, isPositiveTest: boolean): Type;
15
15
  export declare function narrowTypeForDiscriminatedTupleComparison(evaluator: TypeEvaluator, referenceType: Type, indexLiteralType: ClassType, literalType: Type, isPositiveTest: boolean): Type;
16
16
  export declare function narrowTypeForDiscriminatedLiteralFieldComparison(evaluator: TypeEvaluator, referenceType: Type, memberName: string, literalType: ClassType, isPositiveTest: boolean): Type;
17
17
  export declare function enumerateLiteralsForType(evaluator: TypeEvaluator, type: ClassType): ClassType[] | undefined;
18
- export declare class Animal {
19
- }
20
- export declare class Dog extends Animal {
21
- }
22
- export declare class Plant {
23
- }
24
- export declare class Tree extends Plant {
25
- }
26
- export declare function func1(val: Animal): void;