@zzzen/pyright-internal 1.2.0-dev.20240908 → 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 (111) 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/cacheManager.d.ts +2 -2
  7. package/dist/analyzer/cacheManager.js.map +1 -1
  8. package/dist/analyzer/checker.js +30 -151
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/constraintSolver.d.ts +1 -2
  11. package/dist/analyzer/constraintSolver.js.map +1 -1
  12. package/dist/analyzer/patternMatching.js +3 -1
  13. package/dist/analyzer/patternMatching.js.map +1 -1
  14. package/dist/analyzer/program.js +2 -3
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/properties.js.map +1 -1
  17. package/dist/analyzer/protocols.d.ts +1 -2
  18. package/dist/analyzer/protocols.js.map +1 -1
  19. package/dist/analyzer/pythonPathUtils.d.ts +1 -1
  20. package/dist/analyzer/service.d.ts +3 -1
  21. package/dist/analyzer/service.js +50 -33
  22. package/dist/analyzer/service.js.map +1 -1
  23. package/dist/analyzer/sourceMapper.js +8 -4
  24. package/dist/analyzer/sourceMapper.js.map +1 -1
  25. package/dist/analyzer/tuples.d.ts +1 -2
  26. package/dist/analyzer/tuples.js.map +1 -1
  27. package/dist/analyzer/typeEvaluator.js +103 -66
  28. package/dist/analyzer/typeEvaluator.js.map +1 -1
  29. package/dist/analyzer/typeEvaluatorTypes.d.ts +22 -1
  30. package/dist/analyzer/typeEvaluatorTypes.js +62 -1
  31. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  32. package/dist/analyzer/typeGuards.d.ts +3 -12
  33. package/dist/analyzer/typeGuards.js +276 -454
  34. package/dist/analyzer/typeGuards.js.map +1 -1
  35. package/dist/analyzer/typePrinter.d.ts +1 -2
  36. package/dist/analyzer/typePrinter.js +4 -24
  37. package/dist/analyzer/typePrinter.js.map +1 -1
  38. package/dist/analyzer/typeStubWriter.js +12 -1
  39. package/dist/analyzer/typeStubWriter.js.map +1 -1
  40. package/dist/analyzer/typeUtils.d.ts +0 -17
  41. package/dist/analyzer/typeUtils.js +7 -59
  42. package/dist/analyzer/typeUtils.js.map +1 -1
  43. package/dist/analyzer/typedDicts.d.ts +1 -2
  44. package/dist/analyzer/typedDicts.js.map +1 -1
  45. package/dist/analyzer/types.d.ts +1 -0
  46. package/dist/analyzer/types.js +12 -0
  47. package/dist/analyzer/types.js.map +1 -1
  48. package/dist/backgroundAnalysisBase.d.ts +23 -16
  49. package/dist/backgroundAnalysisBase.js +64 -35
  50. package/dist/backgroundAnalysisBase.js.map +1 -1
  51. package/dist/backgroundThreadBase.js +9 -0
  52. package/dist/backgroundThreadBase.js.map +1 -1
  53. package/dist/common/languageServerInterface.d.ts +1 -1
  54. package/dist/common/uri/uriUtils.d.ts +1 -1
  55. package/dist/common/uri/uriUtils.js +6 -1
  56. package/dist/common/uri/uriUtils.js.map +1 -1
  57. package/dist/languageServerBase.d.ts +2 -2
  58. package/dist/languageServerBase.js +1 -3
  59. package/dist/languageServerBase.js.map +1 -1
  60. package/dist/languageService/analyzerServiceExecutor.d.ts +6 -1
  61. package/dist/languageService/analyzerServiceExecutor.js +7 -6
  62. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  63. package/dist/languageService/fileWatcherDynamicFeature.d.ts +5 -1
  64. package/dist/languageService/fileWatcherDynamicFeature.js +12 -2
  65. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  66. package/dist/localization/localize.d.ts +8 -0
  67. package/dist/localization/localize.js +2 -0
  68. package/dist/localization/localize.js.map +1 -1
  69. package/dist/localization/package.nls.cs.json +155 -153
  70. package/dist/localization/package.nls.de.json +128 -126
  71. package/dist/localization/package.nls.en-us.json +1632 -406
  72. package/dist/localization/package.nls.es.json +151 -149
  73. package/dist/localization/package.nls.fr.json +129 -127
  74. package/dist/localization/package.nls.it.json +143 -141
  75. package/dist/localization/package.nls.ja.json +142 -140
  76. package/dist/localization/package.nls.ko.json +155 -153
  77. package/dist/localization/package.nls.pl.json +178 -176
  78. package/dist/localization/package.nls.pt-br.json +139 -137
  79. package/dist/localization/package.nls.qps-ploc.json +392 -390
  80. package/dist/localization/package.nls.ru.json +170 -168
  81. package/dist/localization/package.nls.tr.json +153 -151
  82. package/dist/localization/package.nls.zh-cn.json +149 -147
  83. package/dist/localization/package.nls.zh-tw.json +133 -131
  84. package/dist/tests/checker.test.js +9 -0
  85. package/dist/tests/checker.test.js.map +1 -1
  86. package/dist/tests/envVarUtils.test.js +0 -3
  87. package/dist/tests/envVarUtils.test.js.map +1 -1
  88. package/dist/tests/harness/fourslash/testLanguageService.js +0 -3
  89. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  90. package/dist/tests/harness/fourslash/testState.js +2 -5
  91. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  92. package/dist/tests/harness/fourslash/testStateUtils.d.ts +1 -0
  93. package/dist/tests/harness/fourslash/testStateUtils.js +5 -0
  94. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  95. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  96. package/dist/tests/harness/vfs/filesystem.js +6 -3
  97. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  98. package/dist/tests/service.test.js +31 -0
  99. package/dist/tests/service.test.js.map +1 -1
  100. package/dist/tests/typeEvaluator1.test.js +4 -0
  101. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  102. package/dist/tests/typeEvaluator3.test.js +4 -0
  103. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  104. package/dist/tests/typeEvaluator6.test.js +5 -1
  105. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  106. package/dist/tests/typeEvaluator7.test.js +1 -1
  107. package/dist/tests/typeEvaluator8.test.js +2 -2
  108. package/dist/workspaceFactory.d.ts +2 -20
  109. package/dist/workspaceFactory.js +19 -57
  110. package/dist/workspaceFactory.js.map +1 -1
  111. package/package.json +1 -1
@@ -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,
@@ -261,6 +261,24 @@ export interface SymbolDeclInfo {
261
261
  decls: Declaration[];
262
262
  synthesizedTypes: Type[];
263
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
+ }
264
282
  export interface TypeEvaluator {
265
283
  runWithCancellationToken<T>(token: CancellationToken, callback: () => T): T;
266
284
  getType: (node: ExpressionNode) => Type | undefined;
@@ -326,6 +344,7 @@ export interface TypeEvaluator {
326
344
  getBoundMagicMethod: (classType: ClassType, memberName: string, selfType?: ClassType | TypeVarType | undefined, diag?: DiagnosticAddendum, recursionCount?: number) => FunctionType | OverloadedType | undefined;
327
345
  getTypeOfMagicMethodCall: (objType: Type, methodName: string, argList: TypeResult[], errorNode: ExpressionNode, inferenceContext: InferenceContext | undefined) => TypeResult | undefined;
328
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;
329
348
  getCallSignatureInfo: (node: CallNode, activeIndex: number, activeOrFake: boolean) => CallSignatureInfo | undefined;
330
349
  getAbstractSymbols: (classType: ClassType) => AbstractSymbol[];
331
350
  narrowConstrainedTypeVar: (node: ParseNode, typeVar: TypeVarType) => Type | undefined;
@@ -338,6 +357,8 @@ export interface TypeEvaluator {
338
357
  getBuiltInObject: (node: ParseNode, name: string, typeArgs?: Type[]) => Type;
339
358
  getTypedDictClassType: () => ClassType | undefined;
340
359
  getTupleClassType: () => ClassType | undefined;
360
+ getDictClassType: () => ClassType | undefined;
361
+ getStrClassType: () => ClassType | undefined;
341
362
  getObjectType: () => Type;
342
363
  getNoneType: () => Type;
343
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;
@@ -112,4 +112,65 @@ var Reachability;
112
112
  Reachability[Reachability["UnreachableAlways"] = 1] = "UnreachableAlways";
113
113
  Reachability[Reachability["UnreachableByAnalysis"] = 2] = "UnreachableByAnalysis";
114
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 = {}));
115
176
  //# 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,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"}
1
+ {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":"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"}
@@ -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;