@zzzen/pyright-internal 1.2.0-dev.20240714 → 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.
- package/dist/analyzer/analyzerNodeInfo.js +2 -2
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +8 -8
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.js +3 -0
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +3 -2
- package/dist/analyzer/checker.js +137 -142
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +2 -2
- package/dist/analyzer/codeFlowEngine.js +74 -44
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js +1 -1
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +2 -2
- package/dist/analyzer/constraintSolver.js +166 -206
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.d.ts +2 -3
- package/dist/analyzer/constructorTransform.js +18 -19
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +3 -3
- package/dist/analyzer/constructors.js +72 -175
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.d.ts +2 -2
- package/dist/analyzer/dataClasses.js +60 -40
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +9 -9
- package/dist/analyzer/declaration.js +9 -9
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +1 -1
- package/dist/analyzer/declarationUtils.js +6 -6
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +5 -6
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +2 -2
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.d.ts +2 -2
- package/dist/analyzer/enums.js +6 -6
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.d.ts +2 -2
- package/dist/analyzer/functionTransform.js +4 -4
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.js +5 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +3 -3
- package/dist/analyzer/namedTuples.js +21 -22
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +145 -96
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +8 -8
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +10 -10
- package/dist/analyzer/parameterUtils.js +60 -59
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +7 -6
- package/dist/analyzer/parseTreeUtils.js +47 -24
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +109 -90
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +11 -4
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +23 -19
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +23 -20
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +1 -1
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -7
- package/dist/analyzer/service.js +28 -30
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/serviceUtils.d.ts +8 -0
- package/dist/analyzer/serviceUtils.js +31 -0
- package/dist/analyzer/serviceUtils.js.map +1 -0
- package/dist/analyzer/sourceFile.js +5 -19
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +1 -1
- package/dist/analyzer/sourceMapper.js +4 -4
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +1 -1
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/testWalker.js +13 -1
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +4 -4
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/tuples.d.ts +9 -0
- package/dist/analyzer/tuples.js +252 -0
- package/dist/analyzer/tuples.js.map +1 -0
- package/dist/analyzer/typeComplexity.d.ts +2 -0
- package/dist/analyzer/typeComplexity.js +86 -0
- package/dist/analyzer/typeComplexity.js.map +1 -0
- package/dist/analyzer/typeEvaluator.js +1721 -1824
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +47 -40
- package/dist/analyzer/typeEvaluatorTypes.js +10 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +116 -90
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +54 -53
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.d.ts +3 -3
- package/dist/analyzer/typeStubWriter.js +15 -15
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +35 -29
- package/dist/analyzer/typeUtils.js +420 -357
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +24 -36
- package/dist/analyzer/typeVarContext.js +89 -193
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +4 -4
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -2
- package/dist/analyzer/typedDicts.js +49 -53
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +89 -63
- package/dist/analyzer/types.js +163 -120
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +12 -12
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +5 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnosticRules.d.ts +1 -0
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/fileSystem.d.ts +0 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/languageServerInterface.d.ts +13 -0
- package/dist/common/languageServerInterface.js +15 -1
- package/dist/common/languageServerInterface.js.map +1 -1
- package/dist/common/lspUtils.js +2 -2
- package/dist/common/memUtils.d.ts +4 -0
- package/dist/common/memUtils.js +33 -2
- package/dist/common/memUtils.js.map +1 -1
- package/dist/common/serviceKeys.d.ts +3 -0
- package/dist/common/serviceKeys.js +2 -0
- package/dist/common/serviceKeys.js.map +1 -1
- package/dist/common/serviceProviderExtensions.js +7 -0
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +4 -3
- package/dist/languageServerBase.js +14 -10
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -2
- package/dist/languageService/autoImporter.js +5 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +5 -3
- package/dist/languageService/completionProvider.js +38 -37
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +1 -1
- package/dist/languageService/completionProviderUtils.js +3 -3
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/fileWatcherDynamicFeature.js +2 -2
- package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
- package/dist/languageService/hoverProvider.js +14 -6
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +10 -4
- package/dist/languageService/referencesProvider.js +24 -12
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +21 -4
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +1 -1
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +3 -3
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +9 -3
- package/dist/localization/localize.js +8 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +5 -2
- package/dist/localization/package.nls.de.json +5 -2
- package/dist/localization/package.nls.en-us.json +7 -1
- package/dist/localization/package.nls.es.json +5 -2
- package/dist/localization/package.nls.fr.json +5 -2
- package/dist/localization/package.nls.it.json +5 -2
- package/dist/localization/package.nls.ja.json +5 -2
- package/dist/localization/package.nls.ko.json +5 -2
- package/dist/localization/package.nls.pl.json +5 -2
- package/dist/localization/package.nls.pt-br.json +5 -2
- package/dist/localization/package.nls.qps-ploc.json +5 -2
- package/dist/localization/package.nls.ru.json +5 -2
- package/dist/localization/package.nls.tr.json +5 -2
- package/dist/localization/package.nls.zh-cn.json +5 -2
- package/dist/localization/package.nls.zh-tw.json +5 -2
- package/dist/parser/parseNodes.d.ts +12 -10
- package/dist/parser/parseNodes.js +23 -21
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js +66 -43
- package/dist/parser/parser.js.map +1 -1
- package/dist/tests/checker.test.js +2 -2
- package/dist/tests/fourslash/rename.args.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/rename.args.fourslash.js +71 -0
- package/dist/tests/fourslash/rename.args.fourslash.js.map +1 -0
- package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js +4 -21
- package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js +2 -2
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +0 -1
- package/dist/tests/harness/vfs/filesystem.js +0 -4
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +62 -15
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.js +1 -1
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +17 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +1 -1
- package/dist/tests/typeEvaluator4.test.js +19 -7
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +8 -2
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +76 -60
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +5 -1
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +13 -18
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +3 -2
- package/dist/workspaceFactory.js +15 -2
- 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 {
|
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';
|
@@ -11,7 +11,7 @@ import * as DeclarationUtils from './declarationUtils';
|
|
11
11
|
import { SymbolWithScope } from './scope';
|
12
12
|
import { Symbol } from './symbol';
|
13
13
|
import { PrintTypeFlags } from './typePrinter';
|
14
|
-
import { AssignTypeFlags, ClassMember, InferenceContext, MemberAccessFlags
|
14
|
+
import { AssignTypeFlags, ClassMember, InferenceContext, MemberAccessFlags } from './typeUtils';
|
15
15
|
import { TypeVarContext } from './typeVarContext';
|
16
16
|
import { AnyType, ClassType, FunctionParam, FunctionType, OverloadedFunctionType, Type, TypeCondition, TypeVarType, UnknownType, Variance } from './types';
|
17
17
|
export declare const maxSubtypesForInferredType = 64;
|
@@ -45,6 +45,7 @@ export declare const enum EvalFlags {
|
|
45
45
|
AllowConcatenate = 134217728,
|
46
46
|
StripTupleLiterals = 268435456,
|
47
47
|
IsinstanceArg = 536870912,
|
48
|
+
EnforceClassTypeVarScope = 1073741824,
|
48
49
|
CallBaseDefaults = 2,
|
49
50
|
IndexBaseDefaults = 2,
|
50
51
|
MemberAccessBaseDefaults = 2,
|
@@ -74,7 +75,7 @@ export interface TypeResultWithNode extends TypeResult {
|
|
74
75
|
export interface MemberAccessDeprecationInfo {
|
75
76
|
accessType: 'property' | 'descriptor';
|
76
77
|
accessMethod: 'get' | 'set' | 'del';
|
77
|
-
|
78
|
+
deprecatedMessage: string;
|
78
79
|
}
|
79
80
|
export interface EvaluatorUsage {
|
80
81
|
method: 'get' | 'set' | 'del';
|
@@ -104,21 +105,21 @@ export interface AbstractSymbol {
|
|
104
105
|
classType: Type;
|
105
106
|
hasImplementation: boolean;
|
106
107
|
}
|
107
|
-
export interface
|
108
|
-
|
108
|
+
export interface ArgBase {
|
109
|
+
argCategory: ArgCategory;
|
109
110
|
node?: ArgumentNode | undefined;
|
110
111
|
name?: NameNode | undefined;
|
111
112
|
typeResult?: TypeResult | undefined;
|
112
113
|
valueExpression?: ExpressionNode | undefined;
|
113
114
|
active?: boolean | undefined;
|
114
115
|
}
|
115
|
-
export interface
|
116
|
+
export interface ArgWithType extends ArgBase {
|
116
117
|
typeResult: TypeResult;
|
117
118
|
}
|
118
|
-
export interface
|
119
|
+
export interface ArgWithExpression extends ArgBase {
|
119
120
|
valueExpression: ExpressionNode;
|
120
121
|
}
|
121
|
-
export type
|
122
|
+
export type Arg = ArgWithType | ArgWithExpression;
|
122
123
|
export interface EffectiveTypeResult {
|
123
124
|
type: Type;
|
124
125
|
isIncomplete: boolean;
|
@@ -129,10 +130,10 @@ export interface EffectiveTypeResult {
|
|
129
130
|
evaluationAttempts?: number;
|
130
131
|
}
|
131
132
|
export interface ValidateArgTypeParams {
|
132
|
-
paramCategory:
|
133
|
+
paramCategory: ParamCategory;
|
133
134
|
paramType: Type;
|
134
135
|
requiresTypeVarMatching: boolean;
|
135
|
-
argument:
|
136
|
+
argument: Arg;
|
136
137
|
isDefaultArg?: boolean;
|
137
138
|
argType?: Type | undefined;
|
138
139
|
errorNode: ExpressionNode;
|
@@ -141,27 +142,23 @@ export interface ValidateArgTypeParams {
|
|
141
142
|
mapsToVarArgList?: boolean | undefined;
|
142
143
|
isinstanceParam?: boolean;
|
143
144
|
}
|
144
|
-
export interface AnnotationTypeOptions {
|
145
|
-
isVariableAnnotation?: boolean;
|
146
|
-
allowFinal?: boolean;
|
147
|
-
allowClassVar?: boolean;
|
148
|
-
associateTypeVarsWithScope?: boolean;
|
149
|
-
allowTypeVarTuple?: boolean;
|
150
|
-
allowParamSpec?: boolean;
|
151
|
-
allowRequired?: boolean;
|
152
|
-
allowUnpackedTypedDict?: boolean;
|
153
|
-
allowUnpackedTuple?: boolean;
|
154
|
-
notParsedByInterpreter?: boolean;
|
155
|
-
}
|
156
145
|
export interface ExpectedTypeOptions {
|
157
146
|
allowFinal?: boolean;
|
158
147
|
allowRequired?: boolean;
|
159
148
|
allowUnpackedTuple?: boolean;
|
149
|
+
allowUnpackedTypedDict?: boolean;
|
160
150
|
allowParamSpec?: boolean;
|
161
|
-
|
151
|
+
allowClassVar?: boolean;
|
152
|
+
varTypeAnnotation?: boolean;
|
153
|
+
typeVarGetsCurScope?: boolean;
|
162
154
|
allowTypeVarsWithoutScopeId?: boolean;
|
163
|
-
|
164
|
-
|
155
|
+
enforceClassTypeVarScope?: boolean;
|
156
|
+
parsesStringLiteral?: boolean;
|
157
|
+
notParsed?: boolean;
|
158
|
+
noNonTypeSpecialForms?: boolean;
|
159
|
+
forwardRefs?: boolean;
|
160
|
+
typeExpression?: boolean;
|
161
|
+
convertEllipsisToAny?: boolean;
|
165
162
|
}
|
166
163
|
export interface ExpectedTypeResult {
|
167
164
|
type: Type;
|
@@ -184,7 +181,7 @@ export interface CallResult {
|
|
184
181
|
returnType?: Type | undefined;
|
185
182
|
isTypeIncomplete?: boolean | undefined;
|
186
183
|
argumentErrors?: boolean;
|
187
|
-
|
184
|
+
anyOrUnknownArg?: UnknownType | AnyType;
|
188
185
|
activeParam?: FunctionParam | undefined;
|
189
186
|
specializedInitSelfType?: Type | undefined;
|
190
187
|
overloadsUsedForCall?: FunctionType[];
|
@@ -202,6 +199,11 @@ export interface ClassMemberLookup {
|
|
202
199
|
narrowedTypeForSet?: Type;
|
203
200
|
memberAccessDeprecationInfo?: MemberAccessDeprecationInfo;
|
204
201
|
}
|
202
|
+
export declare enum Reachability {
|
203
|
+
Reachable = 0,
|
204
|
+
UnreachableAlways = 1,
|
205
|
+
UnreachableByAnalysis = 2
|
206
|
+
}
|
205
207
|
export interface PrintTypeOptions {
|
206
208
|
expandTypeAlias?: boolean;
|
207
209
|
enforcePythonSyntax?: boolean;
|
@@ -209,7 +211,7 @@ export interface PrintTypeOptions {
|
|
209
211
|
useTypingUnpack?: boolean;
|
210
212
|
printUnknownWithAny?: boolean;
|
211
213
|
printTypeVarVariance?: boolean;
|
212
|
-
|
214
|
+
omitTypeArgsIfUnknown?: boolean;
|
213
215
|
}
|
214
216
|
export interface DeclaredSymbolTypeInfo {
|
215
217
|
type: Type | undefined;
|
@@ -221,7 +223,7 @@ export interface ResolveAliasOptions {
|
|
221
223
|
}
|
222
224
|
export interface ValidateTypeArgsOptions {
|
223
225
|
allowEmptyTuple?: boolean;
|
224
|
-
|
226
|
+
allowTypeVarTuple?: boolean;
|
225
227
|
allowParamSpec?: boolean;
|
226
228
|
allowTypeArgList?: boolean;
|
227
229
|
allowUnpackedTuples?: boolean;
|
@@ -242,27 +244,31 @@ export interface TypeEvaluator {
|
|
242
244
|
getTypeResultForDecorator: (node: DecoratorNode) => TypeResult | undefined;
|
243
245
|
getCachedType: (node: ExpressionNode) => Type | undefined;
|
244
246
|
getTypeOfExpression: (node: ExpressionNode, flags?: EvalFlags, context?: InferenceContext) => TypeResult;
|
245
|
-
getTypeOfAnnotation: (node: ExpressionNode, options?:
|
247
|
+
getTypeOfAnnotation: (node: ExpressionNode, options?: ExpectedTypeOptions) => Type;
|
246
248
|
getTypeOfClass: (node: ClassNode) => ClassTypeResult | undefined;
|
249
|
+
createSubclass: (errorNode: ExpressionNode, type1: ClassType, type2: ClassType) => ClassType;
|
247
250
|
getTypeOfFunction: (node: FunctionNode) => FunctionTypeResult | undefined;
|
248
251
|
getTypeOfExpressionExpectingType: (node: ExpressionNode, options?: ExpectedTypeOptions) => TypeResult;
|
249
252
|
evaluateTypeForSubnode: (subnode: ParseNode, callback: () => void) => TypeResult | undefined;
|
250
253
|
evaluateTypesForStatement: (node: ParseNode) => void;
|
251
254
|
evaluateTypesForMatchStatement: (node: MatchNode) => void;
|
252
255
|
evaluateTypesForCaseStatement: (node: CaseNode) => void;
|
253
|
-
|
256
|
+
evaluateTypeOfParam: (node: ParameterNode) => void;
|
254
257
|
canBeTruthy: (type: Type) => boolean;
|
255
258
|
canBeFalsy: (type: Type) => boolean;
|
256
259
|
stripLiteralValue: (type: Type) => Type;
|
257
260
|
removeTruthinessFromType: (type: Type) => Type;
|
258
261
|
removeFalsinessFromType: (type: Type) => Type;
|
262
|
+
stripTypeGuard: (type: Type) => Type;
|
259
263
|
getExpectedType: (node: ExpressionNode) => ExpectedTypeResult | undefined;
|
260
264
|
verifyRaiseExceptionType: (node: RaiseNode) => void;
|
261
265
|
verifyDeleteExpression: (node: ExpressionNode) => void;
|
262
|
-
|
266
|
+
validateOverloadedArgTypes: (errorNode: ExpressionNode, argList: Arg[], typeResult: TypeResult<OverloadedFunctionType>, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean, inferenceContext: InferenceContext | undefined) => CallResult;
|
263
267
|
validateInitSubclassArgs: (node: ClassNode, classType: ClassType) => void;
|
264
|
-
isAfterNodeReachable: (node: ParseNode) => boolean;
|
265
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;
|
266
272
|
isAsymmetricAccessorAssignment: (node: ParseNode) => boolean;
|
267
273
|
suppressDiagnostics: (node: ParseNode, callback: () => void) => void;
|
268
274
|
isSpecialFormClass: (classType: ClassType, flags: AssignTypeFlags) => boolean;
|
@@ -274,7 +280,7 @@ export interface TypeEvaluator {
|
|
274
280
|
getTypeOfIterable: (typeResult: TypeResult, isAsync: boolean, errorNode: ExpressionNode, emitNotIterableError?: boolean) => TypeResult | undefined;
|
275
281
|
getTypeOfIterator: (typeResult: TypeResult, isAsync: boolean, errorNode: ExpressionNode, emitNotIterableError?: boolean) => TypeResult | undefined;
|
276
282
|
getGetterTypeFromProperty: (propertyClass: ClassType, inferTypeIfNeeded: boolean) => Type | undefined;
|
277
|
-
|
283
|
+
getTypeOfArg: (arg: Arg, inferenceContext: InferenceContext | undefined) => TypeResult;
|
278
284
|
markNamesAccessed: (node: ParseNode, names: string[]) => void;
|
279
285
|
expandPromotionTypes: (node: ParseNode, type: Type) => Type;
|
280
286
|
makeTopLevelTypeVarsConcrete: (type: Type, makeParamSpecsConcrete?: boolean) => Type;
|
@@ -288,7 +294,7 @@ export interface TypeEvaluator {
|
|
288
294
|
getDeclaredTypeForExpression: (expression: ExpressionNode, usage?: EvaluatorUsage) => Type | undefined;
|
289
295
|
getFunctionDeclaredReturnType: (node: FunctionNode) => Type | undefined;
|
290
296
|
getFunctionInferredReturnType: (type: FunctionType, callSiteInfo?: CallSiteEvaluationInfo) => Type;
|
291
|
-
|
297
|
+
getBestOverloadForArgs: (errorNode: ExpressionNode, typeResult: TypeResult<OverloadedFunctionType>, argList: Arg[]) => FunctionType | undefined;
|
292
298
|
getBuiltInType: (node: ParseNode, name: string) => Type;
|
293
299
|
getTypeOfMember: (member: ClassMember) => Type;
|
294
300
|
getTypeOfBoundMember(errorNode: ExpressionNode, objectType: ClassType, memberName: string, usage?: EvaluatorUsage, diag?: DiagnosticAddendum | undefined, flags?: MemberAccessFlags, selfType?: ClassType | TypeVarType): TypeResult | undefined;
|
@@ -300,27 +306,28 @@ export interface TypeEvaluator {
|
|
300
306
|
narrowConstrainedTypeVar: (node: ParseNode, typeVar: TypeVarType) => Type | undefined;
|
301
307
|
assignType: (destType: Type, srcType: Type, diag?: DiagnosticAddendum, destTypeVarContext?: TypeVarContext, srcTypeVarContext?: TypeVarContext, flags?: AssignTypeFlags, recursionCount?: number) => boolean;
|
302
308
|
validateOverrideMethod: (baseMethod: Type, overrideMethod: FunctionType | OverloadedFunctionType, baseClass: ClassType | undefined, diag: DiagnosticAddendum, enforceParamNames?: boolean) => boolean;
|
303
|
-
|
309
|
+
validateCallArgs: (errorNode: ExpressionNode, argList: Arg[], callTypeResult: TypeResult, typeVarContext: TypeVarContext | undefined, skipUnknownArgCheck: boolean | undefined, inferenceContext: InferenceContext | undefined) => CallResult;
|
304
310
|
validateTypeArg: (argResult: TypeResultWithNode, options?: ValidateTypeArgsOptions) => boolean;
|
305
311
|
assignTypeToExpression: (target: ExpressionNode, typeResult: TypeResult, srcExpr: ExpressionNode) => void;
|
306
312
|
assignClassToSelf: (destType: ClassType, srcType: ClassType, assumedVariance: Variance) => boolean;
|
307
|
-
getBuiltInObject: (node: ParseNode, name: string,
|
313
|
+
getBuiltInObject: (node: ParseNode, name: string, typeArgs?: Type[]) => Type;
|
308
314
|
getTypedDictClassType: () => ClassType | undefined;
|
309
315
|
getTupleClassType: () => ClassType | undefined;
|
310
316
|
getObjectType: () => Type;
|
311
317
|
getNoneType: () => Type;
|
312
318
|
getUnionClassType(): Type;
|
319
|
+
getTypeClassType(): ClassType | undefined;
|
313
320
|
getTypingType: (node: ParseNode, symbolName: string) => Type | undefined;
|
314
321
|
inferReturnTypeIfNecessary: (type: Type) => void;
|
315
|
-
|
316
|
-
|
317
|
-
|
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;
|
318
325
|
isFinalVariable: (symbol: Symbol) => boolean;
|
319
326
|
isFinalVariableDeclaration: (decl: Declaration) => boolean;
|
320
327
|
isExplicitTypeAliasDeclaration: (decl: Declaration) => boolean;
|
321
328
|
addInformation: (message: string, node: ParseNode, range?: TextRange) => Diagnostic | undefined;
|
322
329
|
addUnusedCode: (node: ParseNode, textRange: TextRange) => void;
|
323
|
-
addUnreachableCode: (node: ParseNode, textRange: TextRange) => void;
|
330
|
+
addUnreachableCode: (node: ParseNode, reachability: Reachability, textRange: TextRange) => void;
|
324
331
|
addDeprecated: (message: string, node: ParseNode) => void;
|
325
332
|
addDiagnostic: (rule: DiagnosticRule, message: string, node: ParseNode, range?: TextRange) => Diagnostic | undefined;
|
326
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;
|
@@ -90,6 +90,9 @@ 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
|
+
// Enforce that any type variables referenced in this type are associated
|
94
|
+
// with the enclosing class or an outer scope.
|
95
|
+
EvalFlags[EvalFlags["EnforceClassTypeVarScope"] = 1073741824] = "EnforceClassTypeVarScope";
|
93
96
|
// Defaults used for evaluating the LHS of a call expression.
|
94
97
|
EvalFlags[EvalFlags["CallBaseDefaults"] = 2] = "CallBaseDefaults";
|
95
98
|
// Defaults used for evaluating the LHS of a member access expression.
|
@@ -100,4 +103,10 @@ var EvalFlags;
|
|
100
103
|
// or 'issubclass' call.
|
101
104
|
EvalFlags[EvalFlags["IsInstanceArgDefaults"] = 536871546] = "IsInstanceArgDefaults";
|
102
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 = {}));
|
103
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,
|
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"}
|