@zzzen/pyright-internal 1.2.0-dev.20220821 → 1.2.0-dev.20220911
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/binder.js +18 -25
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +30 -0
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +6 -1
- package/dist/analyzer/importResolver.js +76 -28
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +54 -7
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +10 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +16 -2
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/scope.js +5 -3
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/service.d.ts +1 -1
- package/dist/analyzer/service.js +21 -7
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +2 -1
- package/dist/analyzer/sourceFile.js +4 -3
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +89 -47
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +6 -5
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +3 -3
- package/dist/analyzer/typePrinter.js +24 -20
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +2 -2
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +2 -0
- package/dist/common/commandLineOptions.js +7 -0
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/debug.js +7 -1
- package/dist/common/debug.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +1 -0
- package/dist/common/envVarUtils.js +34 -0
- package/dist/common/envVarUtils.js.map +1 -0
- package/dist/common/realFileSystem.js +1 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/languageServerBase.d.ts +4 -2
- package/dist/languageServerBase.js +22 -39
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +4 -1
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/localization/localize.d.ts +5 -3
- package/dist/localization/localize.js +2 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parser.js +8 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.js +2 -1
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/server.js +6 -5
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +2 -2
- package/dist/tests/ipythonMode.test.js +118 -0
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +8 -2
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +9 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +7 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +2 -2
- package/package.json +5 -5
@@ -32,6 +32,7 @@ export declare enum IPythonMode {
|
|
32
32
|
export declare class SourceFile {
|
33
33
|
private _console;
|
34
34
|
private readonly _filePath;
|
35
|
+
private readonly _realFilePath;
|
35
36
|
private _moduleName;
|
36
37
|
private readonly _isStubFile;
|
37
38
|
private readonly _isThirdPartyImport;
|
@@ -71,7 +72,7 @@ export declare class SourceFile {
|
|
71
72
|
private _ipythonDisplayImport;
|
72
73
|
private _logTracker;
|
73
74
|
readonly fileSystem: FileSystem;
|
74
|
-
constructor(fs: FileSystem, filePath: string, moduleName: string, isThirdPartyImport: boolean, isThirdPartyPyTypedPresent: boolean, console?: ConsoleInterface, logTracker?: LogTracker, ipythonMode?: IPythonMode);
|
75
|
+
constructor(fs: FileSystem, filePath: string, moduleName: string, isThirdPartyImport: boolean, isThirdPartyPyTypedPresent: boolean, console?: ConsoleInterface, logTracker?: LogTracker, realFilePath?: string, ipythonMode?: IPythonMode);
|
75
76
|
getFilePath(): string;
|
76
77
|
getModuleName(): string;
|
77
78
|
setModuleName(name: string): void;
|
@@ -80,7 +80,7 @@ var IPythonMode;
|
|
80
80
|
IPythonMode[IPythonMode["CellDocs"] = 2] = "CellDocs";
|
81
81
|
})(IPythonMode = exports.IPythonMode || (exports.IPythonMode = {}));
|
82
82
|
class SourceFile {
|
83
|
-
constructor(fs, filePath, moduleName, isThirdPartyImport, isThirdPartyPyTypedPresent, console, logTracker, ipythonMode = IPythonMode.None) {
|
83
|
+
constructor(fs, filePath, moduleName, isThirdPartyImport, isThirdPartyPyTypedPresent, console, logTracker, realFilePath, ipythonMode = IPythonMode.None) {
|
84
84
|
// True if the file appears to have been deleted.
|
85
85
|
this._isFileDeleted = false;
|
86
86
|
// Number that is incremented every time the diagnostics
|
@@ -121,6 +121,7 @@ class SourceFile {
|
|
121
121
|
this.fileSystem = fs;
|
122
122
|
this._console = console || new console_1.StandardConsole();
|
123
123
|
this._filePath = filePath;
|
124
|
+
this._realFilePath = realFilePath !== null && realFilePath !== void 0 ? realFilePath : filePath;
|
124
125
|
this._moduleName = moduleName;
|
125
126
|
this._isStubFile = filePath.endsWith('.pyi');
|
126
127
|
this._isThirdPartyImport = isThirdPartyImport;
|
@@ -317,7 +318,7 @@ class SourceFile {
|
|
317
318
|
diagList.push(new diagnostic_1.Diagnostic(0 /* Error */, localize_1.Localizer.Diagnostic.importDepthExceeded().format({ depth: this._hitMaxImportDepth }), (0, textRange_1.getEmptyRange)()));
|
318
319
|
}
|
319
320
|
// If the file is in the ignore list, clear the diagnostic list.
|
320
|
-
if (options.ignore.find((ignoreFileSpec) => ignoreFileSpec.regExp.test(this.
|
321
|
+
if (options.ignore.find((ignoreFileSpec) => ignoreFileSpec.regExp.test(this._realFilePath))) {
|
321
322
|
diagList = [];
|
322
323
|
}
|
323
324
|
// If there is a "type: ignore" comment at the top of the file, clear
|
@@ -594,7 +595,7 @@ class SourceFile {
|
|
594
595
|
this._parseDiagnostics = diagSink.fetchAndClear();
|
595
596
|
});
|
596
597
|
// Is this file in a "strict" path?
|
597
|
-
const useStrict = configOptions.strict.find((strictFileSpec) => strictFileSpec.regExp.test(this.
|
598
|
+
const useStrict = configOptions.strict.find((strictFileSpec) => strictFileSpec.regExp.test(this._realFilePath)) !==
|
598
599
|
undefined;
|
599
600
|
this._diagnosticRuleSet = CommentUtils.getFileLevelDirectives(this._parseResults.tokenizerOutput.tokens, configOptions.diagnosticRuleSet, useStrict);
|
600
601
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
|
@@ -180,7 +180,11 @@ const maxReturnTypeInferenceArgumentCount = 6;
|
|
180
180
|
// we will analyze to determine the return type of a function
|
181
181
|
// when its parameters are unannotated? We want to keep this
|
182
182
|
// pretty low because this can be very costly.
|
183
|
-
const maxReturnTypeInferenceCodeFlowComplexity =
|
183
|
+
const maxReturnTypeInferenceCodeFlowComplexity = 32;
|
184
|
+
// What is the max complexity of the code flow graph for
|
185
|
+
// call-site type inference? This is very expensive, so we
|
186
|
+
// want to keep this very low.
|
187
|
+
const maxReturnCallSiteTypeInferenceCodeFlowComplexity = 8;
|
184
188
|
// What is the max number of return types cached per function
|
185
189
|
// when using call-site inference?
|
186
190
|
const maxCallSiteReturnTypeCacheSize = 8;
|
@@ -695,6 +699,13 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
695
699
|
/* allowSpeculativeCaching */ true);
|
696
700
|
if (expectedType && !(0, types_1.isAnyOrUnknown)(expectedType) && !(0, types_1.isNever)(expectedType)) {
|
697
701
|
expectedTypeCache.set(node.id, expectedType);
|
702
|
+
if (!typeResult.isIncomplete && !typeResult.expectedTypeDiagAddendum) {
|
703
|
+
const diag = new diagnostic_1.DiagnosticAddendum();
|
704
|
+
if (!assignType(expectedType, typeResult.type, diag)) {
|
705
|
+
typeResult.expectedTypeDiagAddendum = diag;
|
706
|
+
diag.addTextRange(node);
|
707
|
+
}
|
708
|
+
}
|
698
709
|
}
|
699
710
|
if (printExpressionTypes) {
|
700
711
|
printExpressionSpaceCount--;
|
@@ -3853,7 +3864,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3853
3864
|
}
|
3854
3865
|
}
|
3855
3866
|
if (enforceTargetType) {
|
3856
|
-
let effectiveType =
|
3867
|
+
let effectiveType = subtype;
|
3857
3868
|
// If the code is patching a method (defined on the class)
|
3858
3869
|
// with an object-level function, strip the "self" parameter
|
3859
3870
|
// off the original type. This is sometimes done for test
|
@@ -4732,19 +4743,21 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
4732
4743
|
});
|
4733
4744
|
effectiveExpectedType = matchingSubtype;
|
4734
4745
|
}
|
4746
|
+
let expectedTypeDiagAddendum;
|
4735
4747
|
if (effectiveExpectedType) {
|
4736
4748
|
const result = getTypeOfTupleExpected(node, effectiveExpectedType);
|
4737
|
-
if (result) {
|
4749
|
+
if (result && !result.typeErrors) {
|
4738
4750
|
return result;
|
4739
4751
|
}
|
4752
|
+
expectedTypeDiagAddendum = result === null || result === void 0 ? void 0 : result.expectedTypeDiagAddendum;
|
4740
4753
|
}
|
4741
|
-
const
|
4754
|
+
const typeResult = getTypeOfTupleInferred(node);
|
4742
4755
|
// If there was an expected type of Any, replace the resulting type
|
4743
4756
|
// with Any rather than return a type with unknowns.
|
4744
4757
|
if (expectedTypeContainsAny) {
|
4745
|
-
|
4758
|
+
typeResult.type = types_1.AnyType.create();
|
4746
4759
|
}
|
4747
|
-
return
|
4760
|
+
return { ...typeResult, expectedTypeDiagAddendum };
|
4748
4761
|
}
|
4749
4762
|
function getTypeOfTupleExpected(node, expectedType) {
|
4750
4763
|
expectedType = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(expectedType);
|
@@ -4788,7 +4801,17 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
4788
4801
|
/* flags */ undefined, index < expectedTypes.length ? expectedTypes[index] : undefined));
|
4789
4802
|
const type = (0, typeUtils_1.convertToInstance)((0, typeUtils_1.specializeTupleClass)(tupleClassType, buildTupleTypesList(entryTypeResults),
|
4790
4803
|
/* isTypeArgumentExplicit */ true));
|
4791
|
-
|
4804
|
+
// Copy any expected type diag addenda for precision error reporting.
|
4805
|
+
let expectedTypeDiagAddendum;
|
4806
|
+
if (entryTypeResults.some((result) => result.expectedTypeDiagAddendum)) {
|
4807
|
+
expectedTypeDiagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4808
|
+
entryTypeResults.forEach((result) => {
|
4809
|
+
if (result.expectedTypeDiagAddendum) {
|
4810
|
+
expectedTypeDiagAddendum.addAddendum(result.expectedTypeDiagAddendum);
|
4811
|
+
}
|
4812
|
+
});
|
4813
|
+
}
|
4814
|
+
return { type, expectedTypeDiagAddendum };
|
4792
4815
|
}
|
4793
4816
|
function getTypeOfTupleInferred(node) {
|
4794
4817
|
const entryTypeResults = node.expressions.map((expr) => getTypeOfExpression(expr));
|
@@ -5811,8 +5834,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
5811
5834
|
// the call is a constructor but the proper TypeVar scope has been lost.
|
5812
5835
|
// We'll add a wildcard TypeVar scope here. This is a bit of a hack and
|
5813
5836
|
// we may need to revisit this in the future.
|
5814
|
-
if (
|
5815
|
-
types_1.FunctionType.isConstructorMethod(expandedSubtype)) {
|
5837
|
+
if (types_1.FunctionType.isConstructorMethod(expandedSubtype)) {
|
5816
5838
|
effectiveTypeVarContext.addSolveForScope(types_1.WildcardTypeVarScopeId);
|
5817
5839
|
}
|
5818
5840
|
}
|
@@ -6803,12 +6825,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
6803
6825
|
// types of each argument expression and validates that the resulting type is
|
6804
6826
|
// compatible with the declared type of the corresponding parameter.
|
6805
6827
|
function validateFunctionArgumentTypesWithExpectedType(errorNode, matchResults, typeVarContext, skipUnknownArgCheck = false, expectedType) {
|
6828
|
+
var _a;
|
6806
6829
|
const type = matchResults.overload;
|
6807
6830
|
if (!expectedType ||
|
6808
6831
|
(0, types_1.isAnyOrUnknown)(expectedType) ||
|
6809
6832
|
(0, types_1.isNever)(expectedType) ||
|
6810
6833
|
(0, typeUtils_1.requiresSpecialization)(expectedType) ||
|
6811
|
-
!type.details.declaredReturnType
|
6834
|
+
!type.details.declaredReturnType ||
|
6835
|
+
!(0, typeUtils_1.requiresSpecialization)((_a = types_1.FunctionType.getSpecializedReturnType(type)) !== null && _a !== void 0 ? _a : types_1.UnknownType.create())) {
|
6812
6836
|
return validateFunctionArgumentTypes(errorNode, matchResults, typeVarContext, skipUnknownArgCheck);
|
6813
6837
|
}
|
6814
6838
|
const effectiveReturnType = getFunctionEffectiveReturnType(type);
|
@@ -8669,13 +8693,16 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
8669
8693
|
});
|
8670
8694
|
effectiveExpectedType = matchingSubtype;
|
8671
8695
|
}
|
8696
|
+
let expectedTypeDiagAddendum;
|
8672
8697
|
if (effectiveExpectedType) {
|
8673
8698
|
const result = getTypeOfListOrSetExpected(node, effectiveExpectedType);
|
8674
|
-
if (result) {
|
8699
|
+
if (result && !result.typeErrors) {
|
8675
8700
|
return result;
|
8676
8701
|
}
|
8702
|
+
expectedTypeDiagAddendum = result === null || result === void 0 ? void 0 : result.expectedTypeDiagAddendum;
|
8677
8703
|
}
|
8678
|
-
|
8704
|
+
const typeResult = getTypeOfListOrSetInferred(node, /* hasExpectedType */ expectedType !== undefined);
|
8705
|
+
return { ...typeResult, expectedTypeDiagAddendum };
|
8679
8706
|
}
|
8680
8707
|
// Attempts to determine the type of a list or set statement based on an expected type.
|
8681
8708
|
// Returns undefined if that type cannot be honored.
|
@@ -8701,6 +8728,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
8701
8728
|
}
|
8702
8729
|
const expectedEntryType = specializedListOrSet.typeArguments[0];
|
8703
8730
|
const entryTypes = [];
|
8731
|
+
const expectedTypeDiagAddendum = new diagnostic_1.DiagnosticAddendum();
|
8704
8732
|
node.entries.forEach((entry) => {
|
8705
8733
|
let entryTypeResult;
|
8706
8734
|
if (entry.nodeType === 32 /* ListComprehension */) {
|
@@ -8716,15 +8744,18 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
8716
8744
|
if (entryTypeResult.typeErrors) {
|
8717
8745
|
typeErrors = true;
|
8718
8746
|
}
|
8747
|
+
if (entryTypeResult.expectedTypeDiagAddendum) {
|
8748
|
+
expectedTypeDiagAddendum.addAddendum(entryTypeResult.expectedTypeDiagAddendum);
|
8749
|
+
}
|
8719
8750
|
});
|
8720
8751
|
const isExpectedTypeListOrSet = (0, types_1.isClassInstance)(expectedType) && types_1.ClassType.isBuiltIn(expectedType, builtInClassName);
|
8721
8752
|
const specializedEntryType = inferTypeArgFromExpectedType(expectedEntryType, entryTypes,
|
8722
8753
|
/* isNarrowable */ !isExpectedTypeListOrSet);
|
8723
8754
|
if (!specializedEntryType) {
|
8724
|
-
return
|
8755
|
+
return { type: types_1.UnknownType.create(), isIncomplete, typeErrors: true, expectedTypeDiagAddendum };
|
8725
8756
|
}
|
8726
8757
|
const type = getBuiltInObject(node, builtInClassName, [specializedEntryType]);
|
8727
|
-
return { type, isIncomplete, typeErrors };
|
8758
|
+
return { type, isIncomplete, typeErrors, expectedTypeDiagAddendum };
|
8728
8759
|
}
|
8729
8760
|
// Attempts to infer the type of a list or set statement with no "expected type".
|
8730
8761
|
function getTypeOfListOrSetInferred(node, hasExpectedType) {
|
@@ -10362,6 +10393,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
10362
10393
|
node.arguments.forEach((arg) => {
|
10363
10394
|
// Ignore unpacked arguments.
|
10364
10395
|
if (arg.argumentCategory !== 0 /* Simple */) {
|
10396
|
+
// Evaluate the expression's type so symbols are marked accessed
|
10397
|
+
// and errors are reported.
|
10398
|
+
getTypeOfExpression(arg.valueExpression);
|
10365
10399
|
return;
|
10366
10400
|
}
|
10367
10401
|
if (!arg.name) {
|
@@ -10629,7 +10663,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
10629
10663
|
if (metaclassNode) {
|
10630
10664
|
const metaclassType = getTypeOfExpression(metaclassNode, exprFlags).type;
|
10631
10665
|
if ((0, types_1.isInstantiableClass)(metaclassType) || (0, types_1.isUnknown)(metaclassType)) {
|
10632
|
-
if ((0, typeUtils_1.requiresSpecialization)(metaclassType)) {
|
10666
|
+
if ((0, typeUtils_1.requiresSpecialization)(metaclassType, /* ignorePseudoGeneric */ true)) {
|
10633
10667
|
addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.metaclassIsGeneric(), metaclassNode);
|
10634
10668
|
}
|
10635
10669
|
classType.details.declaredMetaclass = metaclassType;
|
@@ -14283,7 +14317,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14283
14317
|
}
|
14284
14318
|
const functionNode = type.details.declaration.node;
|
14285
14319
|
const codeFlowComplexity = AnalyzerNodeInfo.getCodeFlowComplexity(functionNode);
|
14286
|
-
if (codeFlowComplexity >=
|
14320
|
+
if (codeFlowComplexity >= maxReturnCallSiteTypeInferenceCodeFlowComplexity) {
|
14287
14321
|
return undefined;
|
14288
14322
|
}
|
14289
14323
|
// If an arg hasn't been matched to a specific named parameter,
|
@@ -14599,16 +14633,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14599
14633
|
// If the source is unbounded, expand the unbounded argument to try
|
14600
14634
|
// to make the source and dest arg counts match.
|
14601
14635
|
if (srcUnboundedIndex >= 0) {
|
14602
|
-
const requiredSrcArgCount = destVariadicIndex >= 0 || destUnboundedIndex >= 0 ? destTypeArgs.length - 1 : destTypeArgs.length;
|
14603
14636
|
const typeToReplicate = srcTypeArgs.length > 0 ? srcTypeArgs[srcUnboundedIndex].type : types_1.AnyType.create();
|
14604
|
-
while (srcTypeArgs.length <
|
14605
|
-
srcTypeArgs.splice(srcUnboundedIndex, 0, { type: typeToReplicate, isUnbounded:
|
14637
|
+
while (srcTypeArgs.length < destTypeArgs.length) {
|
14638
|
+
srcTypeArgs.splice(srcUnboundedIndex, 0, { type: typeToReplicate, isUnbounded: true });
|
14606
14639
|
}
|
14607
14640
|
}
|
14608
|
-
if (destVariadicIndex >= 0 && srcUnboundedIndex >= 0) {
|
14609
|
-
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeVarTupleRequiresKnownLength());
|
14610
|
-
return false;
|
14611
|
-
}
|
14612
14641
|
// If the dest is unbounded or contains a variadic, determine which
|
14613
14642
|
// source args map to the unbounded or variadic arg.
|
14614
14643
|
if (destUnboundedIndex >= 0 || destVariadicIndex >= 0) {
|
@@ -14621,7 +14650,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14621
14650
|
const removedArgs = srcTypeArgs.splice(destVariadicIndex, srcArgsToCapture);
|
14622
14651
|
// Package up the remaining type arguments into a tuple object.
|
14623
14652
|
const variadicTuple = (0, typeUtils_1.convertToInstance)((0, typeUtils_1.specializeTupleClass)(tupleClassType, removedArgs.map((typeArg) => {
|
14624
|
-
return { type: stripLiteralValue(typeArg.type), isUnbounded:
|
14653
|
+
return { type: stripLiteralValue(typeArg.type), isUnbounded: typeArg.isUnbounded };
|
14625
14654
|
}),
|
14626
14655
|
/* isTypeArgumentExplicit */ true,
|
14627
14656
|
/* isUnpackedTuple */ true));
|
@@ -14679,13 +14708,20 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14679
14708
|
// specified inheritance chain, taking into account its type arguments.
|
14680
14709
|
function assignClassWithTypeArgs(destType, srcType, inheritanceChain, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
|
14681
14710
|
let curSrcType = srcType;
|
14682
|
-
let curTypeVarContext = destTypeVarContext
|
14711
|
+
let curTypeVarContext = destTypeVarContext;
|
14683
14712
|
let effectiveFlags = flags;
|
14684
14713
|
inferTypeParameterVarianceForClass(destType);
|
14685
|
-
|
14714
|
+
effectiveFlags |= 8 /* SkipSolveTypeVars */;
|
14686
14715
|
if (!destTypeVarContext) {
|
14716
|
+
curTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
|
14687
14717
|
effectiveFlags &= ~8 /* SkipSolveTypeVars */;
|
14688
14718
|
}
|
14719
|
+
else {
|
14720
|
+
// If we're using the caller's type var context, don't solve the
|
14721
|
+
// type vars in this pass. We'll do this after we're done looping
|
14722
|
+
// through the inheritance chain.
|
14723
|
+
effectiveFlags |= 8 /* SkipSolveTypeVars */;
|
14724
|
+
}
|
14689
14725
|
for (let ancestorIndex = inheritanceChain.length - 1; ancestorIndex >= 0; ancestorIndex--) {
|
14690
14726
|
const ancestorType = inheritanceChain[ancestorIndex];
|
14691
14727
|
// If we've hit an "unknown", all bets are off, and we need to assume
|
@@ -14853,22 +14889,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14853
14889
|
if ((0, types_1.isUnion)(srcType) && srcType.subtypes.length === 1 && (0, types_1.isVariadicTypeVar)(srcType.subtypes[0])) {
|
14854
14890
|
srcType = srcType.subtypes[0];
|
14855
14891
|
}
|
14856
|
-
|
14857
|
-
|
14858
|
-
|
14859
|
-
|
14860
|
-
|
14861
|
-
if ((0, types_1.isTypeVar)(destType) &&
|
14862
|
-
!destType.details.isParamSpec &&
|
14863
|
-
!destType.details.isVariadic &&
|
14864
|
-
destType.scopeType === 0 /* Class */ &&
|
14865
|
-
destTypeVarContext &&
|
14866
|
-
!destTypeVarContext.isLocked() &&
|
14867
|
-
destTypeVarContext.hasSolveForScope(destType.scopeId) &&
|
14868
|
-
!destTypeVarContext.getTypeVar(destType) &&
|
14869
|
-
(flags & (8 /* SkipSolveTypeVars */ | 2 /* ReverseTypeVarMatching */)) === 0) {
|
14870
|
-
destTypeVarContext.setTypeVarType(destType, srcType);
|
14871
|
-
}
|
14892
|
+
// Handle the case where the dest and src types are the same object.
|
14893
|
+
// We can normally shortcut this and say that they are compatible,
|
14894
|
+
// but if the type includes TypeVars, we need to go through
|
14895
|
+
// the rest of the logic.
|
14896
|
+
if (destType === srcType && !(0, typeUtils_1.requiresSpecialization)(destType)) {
|
14872
14897
|
return true;
|
14873
14898
|
}
|
14874
14899
|
if (recursionCount > types_1.maxTypeRecursionCount) {
|
@@ -14924,13 +14949,26 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14924
14949
|
// Before performing any other checks, see if the dest type is a
|
14925
14950
|
// TypeVar that we are attempting to match.
|
14926
14951
|
if ((0, types_1.isTypeVar)(destType)) {
|
14952
|
+
if ((0, types_1.isTypeSame)(destType, srcType)) {
|
14953
|
+
if (destType.scopeId && (destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.hasSolveForScope(destType.scopeId))) {
|
14954
|
+
return (0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, destType, srcType, diag, destTypeVarContext, flags, recursionCount);
|
14955
|
+
}
|
14956
|
+
return true;
|
14957
|
+
}
|
14927
14958
|
// If the dest is a constrained or bound type variable and all of the
|
14928
14959
|
// types in the source are conditioned on that same type variable
|
14929
14960
|
// and have compatible types, we'll consider it assignable.
|
14930
14961
|
if (assignConditionalTypeToTypeVar(destType, srcType, recursionCount)) {
|
14931
14962
|
return true;
|
14932
14963
|
}
|
14933
|
-
|
14964
|
+
// If the source is a conditional type associated with a bound TypeVar
|
14965
|
+
// and the bound TypeVar matches the condition, the types are compatible.
|
14966
|
+
const destTypeVar = destType;
|
14967
|
+
if (types_1.TypeBase.isInstantiable(destType) === types_1.TypeBase.isInstantiable(srcType) &&
|
14968
|
+
srcType.condition &&
|
14969
|
+
srcType.condition.some((cond) => {
|
14970
|
+
return !cond.isConstrainedTypeVar && cond.typeVarName === destTypeVar.nameWithScope;
|
14971
|
+
})) {
|
14934
14972
|
return true;
|
14935
14973
|
}
|
14936
14974
|
if ((0, types_1.isUnion)(srcType)) {
|
@@ -15452,7 +15490,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15452
15490
|
// For union sources, all of the types need to be assignable to the dest.
|
15453
15491
|
let isIncompatible = false;
|
15454
15492
|
// Sort the subtypes so we have a deterministic order for unions.
|
15455
|
-
(0, typeUtils_1.doForEachSubtype)(srcType, (subtype, subtypeIndex) => {
|
15493
|
+
(0, typeUtils_1.doForEachSubtype)(srcType, (subtype, subtypeIndex, allSubtypes) => {
|
15456
15494
|
if (isIncompatible) {
|
15457
15495
|
return;
|
15458
15496
|
}
|
@@ -15462,7 +15500,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15462
15500
|
// Determine if the current subtype is subsumed by another subtype
|
15463
15501
|
// in the same union. If so, we can ignore this.
|
15464
15502
|
let isSubtypeSubsumed = false;
|
15465
|
-
|
15503
|
+
allSubtypes.forEach((innerSubtype, innerSubtypeIndex) => {
|
15466
15504
|
if (isSubtypeSubsumed || subtypeIndex === innerSubtypeIndex || (0, types_1.isAnyOrUnknown)(innerSubtype)) {
|
15467
15505
|
return;
|
15468
15506
|
}
|
@@ -15803,7 +15841,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15803
15841
|
let specializedDestType = destType;
|
15804
15842
|
let reverseMatchingFailed = false;
|
15805
15843
|
if ((flags & 2 /* ReverseTypeVarMatching */) === 0) {
|
15806
|
-
specializedDestType = (0, typeUtils_1.applySolvedTypeVars)(destType, destTypeVarContext
|
15844
|
+
specializedDestType = (0, typeUtils_1.applySolvedTypeVars)(destType, destTypeVarContext,
|
15845
|
+
/* unknownIfNotFound */ undefined,
|
15846
|
+
/* useNarrowBoundOnly */ true);
|
15807
15847
|
if ((0, typeUtils_1.requiresSpecialization)(specializedDestType)) {
|
15808
15848
|
reverseMatchingFailed = !assignType(specializedSrcType, specializedDestType,
|
15809
15849
|
/* diag */ undefined, srcTypeVarContext, destTypeVarContext, (flags ^ 2 /* ReverseTypeVarMatching */) |
|
@@ -15813,7 +15853,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15813
15853
|
}
|
15814
15854
|
}
|
15815
15855
|
else {
|
15816
|
-
specializedSrcType = (0, typeUtils_1.applySolvedTypeVars)(srcType, srcTypeVarContext
|
15856
|
+
specializedSrcType = (0, typeUtils_1.applySolvedTypeVars)(srcType, srcTypeVarContext,
|
15857
|
+
/* unknownIfNotFound */ undefined,
|
15858
|
+
/* useNarrowBoundOnly */ true);
|
15817
15859
|
if ((0, typeUtils_1.requiresSpecialization)(specializedSrcType)) {
|
15818
15860
|
reverseMatchingFailed = !assignType(specializedSrcType, specializedDestType,
|
15819
15861
|
/* diag */ undefined, srcTypeVarContext, destTypeVarContext, (flags ^ 2 /* ReverseTypeVarMatching */) |
|