@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.
- package/dist/analyzer/analysis.d.ts +1 -0
- package/dist/analyzer/analysis.js +2 -0
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js +6 -2
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +14 -8
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.d.ts +2 -2
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.js +53 -192
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +7 -2
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +1 -2
- package/dist/analyzer/constraintSolver.js +2 -2
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +7 -1
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/namedTuples.js +4 -1
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +5 -0
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +1 -1
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +3 -1
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +2 -3
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -2
- package/dist/analyzer/protocols.js +5 -8
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.d.ts +1 -1
- package/dist/analyzer/service.d.ts +3 -1
- package/dist/analyzer/service.js +50 -33
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +10 -5
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/tuples.d.ts +1 -2
- package/dist/analyzer/tuples.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +599 -181
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -6
- package/dist/analyzer/typeEvaluatorTypes.js +66 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +3 -12
- package/dist/analyzer/typeGuards.js +286 -461
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +12 -1
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +4 -17
- package/dist/analyzer/typeUtils.js +61 -60
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +1 -2
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +9 -4
- package/dist/analyzer/types.js +80 -26
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +23 -16
- package/dist/backgroundAnalysisBase.js +64 -35
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +9 -0
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/languageServerInterface.d.ts +1 -1
- package/dist/common/uri/uriUtils.d.ts +1 -1
- package/dist/common/uri/uriUtils.js +6 -1
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -2
- package/dist/languageServerBase.js +1 -3
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.d.ts +6 -1
- package/dist/languageService/analyzerServiceExecutor.js +7 -6
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +2 -1
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +12 -12
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +6 -6
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +9 -9
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/fileWatcherDynamicFeature.d.ts +5 -1
- package/dist/languageService/fileWatcherDynamicFeature.js +12 -2
- package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +1 -0
- package/dist/languageService/hoverProvider.js +30 -3
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +2 -2
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +2 -2
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +10 -0
- package/dist/localization/localize.js +4 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +155 -153
- package/dist/localization/package.nls.de.json +128 -126
- package/dist/localization/package.nls.en-us.json +1632 -404
- package/dist/localization/package.nls.es.json +151 -149
- package/dist/localization/package.nls.fr.json +129 -127
- package/dist/localization/package.nls.it.json +143 -141
- package/dist/localization/package.nls.ja.json +142 -140
- package/dist/localization/package.nls.ko.json +155 -153
- package/dist/localization/package.nls.pl.json +178 -176
- package/dist/localization/package.nls.pt-br.json +139 -137
- package/dist/localization/package.nls.qps-ploc.json +392 -390
- package/dist/localization/package.nls.ru.json +170 -168
- package/dist/localization/package.nls.tr.json +153 -151
- package/dist/localization/package.nls.zh-cn.json +149 -147
- package/dist/localization/package.nls.zh-tw.json +133 -131
- package/dist/parser/parseNodes.d.ts +2 -3
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js +6 -20
- package/dist/parser/parser.js.map +1 -1
- package/dist/tests/checker.test.js +14 -1
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/envVarUtils.test.js +0 -3
- package/dist/tests/envVarUtils.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +0 -3
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +2 -5
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.d.ts +1 -0
- package/dist/tests/harness/fourslash/testStateUtils.js +5 -0
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
- package/dist/tests/harness/vfs/filesystem.js +6 -3
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +1 -1
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/service.test.js +31 -0
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +5 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +13 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +5 -1
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +1 -1
- package/dist/tests/typeEvaluator8.test.js +40 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -20
- package/dist/workspaceFactory.js +26 -64
- package/dist/workspaceFactory.js.map +1 -1
- 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,
|
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 {
|
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
|
-
|
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:
|
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
|
-
|
295
|
-
|
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"] =
|
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;;;
|
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
|
11
|
-
export declare function
|
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;
|