@zzzen/pyright-internal 1.2.0-dev.20230101 → 1.2.0-dev.20230108
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/checker.js +17 -11
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +19 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +18 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/patternMatching.js +2 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +41 -20
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/regions.js +14 -5
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -1
- package/dist/analyzer/sourceMapper.d.ts +2 -2
- package/dist/analyzer/sourceMapper.js +14 -5
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +1 -3
- package/dist/analyzer/typeCacheUtils.js +4 -8
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
- package/dist/analyzer/typeDocStringUtils.js +18 -7
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +116 -110
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -1
- package/dist/analyzer/typeGuards.d.ts +5 -1
- package/dist/analyzer/typeGuards.js +180 -43
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -0
- package/dist/analyzer/typeUtils.js +5 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/commands/quickActionCommand.js +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +1 -0
- package/dist/common/collectionUtils.js +9 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/textEditUtils.d.ts +3 -2
- package/dist/common/textEditUtils.js +11 -10
- package/dist/common/textEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +1 -1
- package/dist/languageService/completionProvider.d.ts +3 -0
- package/dist/languageService/completionProvider.js +212 -159
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +0 -1
- package/dist/languageService/hoverProvider.js +7 -20
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/indentationUtils.js +1 -1
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +5 -1
- package/dist/languageService/tooltipUtils.js +28 -4
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/tests/completions.test.d.ts +1 -0
- package/dist/tests/completions.test.js +331 -0
- package/dist/tests/completions.test.js.map +1 -0
- package/dist/tests/filesystem.test.js +11 -0
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +1 -1
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/harness/vfs/filesystem.js +5 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/hoverProvider.test.d.ts +1 -0
- package/dist/tests/hoverProvider.test.js +247 -0
- package/dist/tests/hoverProvider.test.js.map +1 -0
- package/dist/tests/indentationUtils.ptvs.test.js +1 -1
- package/dist/tests/indentationUtils.test.js +4 -4
- package/dist/tests/typeEvaluator1.test.js +16 -0
- 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 +4 -0
- 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 +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceMap.js +1 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +6 -6
package/dist/analyzer/checker.js
CHANGED
@@ -531,17 +531,18 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
531
531
|
return true;
|
532
532
|
}
|
533
533
|
visitReturn(node) {
|
534
|
-
|
534
|
+
var _a, _b;
|
535
|
+
let returnTypeResult;
|
535
536
|
const enclosingFunctionNode = ParseTreeUtils.getEnclosingFunction(node);
|
536
537
|
const declaredReturnType = enclosingFunctionNode
|
537
538
|
? this._evaluator.getFunctionDeclaredReturnType(enclosingFunctionNode)
|
538
539
|
: undefined;
|
539
540
|
if (node.returnExpression) {
|
540
|
-
|
541
|
+
returnTypeResult = (_a = this._evaluator.getTypeResult(node.returnExpression)) !== null && _a !== void 0 ? _a : { type: types_1.UnknownType.create() };
|
541
542
|
}
|
542
543
|
else {
|
543
544
|
// There is no return expression, so "None" is assumed.
|
544
|
-
|
545
|
+
returnTypeResult = { type: types_1.NoneType.createInstance() };
|
545
546
|
}
|
546
547
|
// If the enclosing function is async and a generator, the return
|
547
548
|
// statement is not allowed to have an argument. A syntax error occurs
|
@@ -558,9 +559,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
558
559
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.noReturnContainsReturn(), node);
|
559
560
|
}
|
560
561
|
else {
|
561
|
-
|
562
|
+
let diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
562
563
|
let returnTypeMatches = false;
|
563
|
-
if (this._evaluator.assignType(declaredReturnType,
|
564
|
+
if (this._evaluator.assignType(declaredReturnType, returnTypeResult.type, diagAddendum, new typeVarContext_1.TypeVarContext(),
|
564
565
|
/* srcTypeVarContext */ undefined, 64 /* AllowBoolTypeGuard */)) {
|
565
566
|
returnTypeMatches = true;
|
566
567
|
}
|
@@ -582,7 +583,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
582
583
|
}
|
583
584
|
if (!typeVarContext.isEmpty()) {
|
584
585
|
const adjustedReturnType = (0, typeUtils_1.applySolvedTypeVars)(declaredReturnType, typeVarContext);
|
585
|
-
if (this._evaluator.assignType(adjustedReturnType,
|
586
|
+
if (this._evaluator.assignType(adjustedReturnType, returnTypeResult.type, diagAddendum,
|
586
587
|
/* destTypeVarContext */ undefined,
|
587
588
|
/* srcTypeVarContext */ undefined, 64 /* AllowBoolTypeGuard */)) {
|
588
589
|
returnTypeMatches = true;
|
@@ -591,19 +592,24 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
591
592
|
}
|
592
593
|
}
|
593
594
|
if (!returnTypeMatches) {
|
595
|
+
// If we have more detailed diagnostic information from
|
596
|
+
// bidirectional type inference, use that.
|
597
|
+
if (returnTypeResult.expectedTypeDiagAddendum) {
|
598
|
+
diagAddendum = returnTypeResult.expectedTypeDiagAddendum;
|
599
|
+
}
|
594
600
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.returnTypeMismatch().format({
|
595
|
-
exprType: this._evaluator.printType(
|
601
|
+
exprType: this._evaluator.printType(returnTypeResult.type),
|
596
602
|
returnType: this._evaluator.printType(declaredReturnType),
|
597
|
-
}) + diagAddendum.getString(), node.returnExpression ? node.returnExpression : node);
|
603
|
+
}) + diagAddendum.getString(), node.returnExpression ? node.returnExpression : node, (_b = returnTypeResult.expectedTypeDiagAddendum) === null || _b === void 0 ? void 0 : _b.getEffectiveTextRange());
|
598
604
|
}
|
599
605
|
}
|
600
606
|
}
|
601
|
-
if ((0, types_1.isUnknown)(
|
607
|
+
if ((0, types_1.isUnknown)(returnTypeResult.type)) {
|
602
608
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnknownVariableType, diagnosticRules_1.DiagnosticRule.reportUnknownVariableType, localize_1.Localizer.Diagnostic.returnTypeUnknown(), node.returnExpression);
|
603
609
|
}
|
604
|
-
else if ((0, typeUtils_1.isPartlyUnknown)(
|
610
|
+
else if ((0, typeUtils_1.isPartlyUnknown)(returnTypeResult.type)) {
|
605
611
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnknownVariableType, diagnosticRules_1.DiagnosticRule.reportUnknownVariableType, localize_1.Localizer.Diagnostic.returnTypePartiallyUnknown().format({
|
606
|
-
returnType: this._evaluator.printType(
|
612
|
+
returnType: this._evaluator.printType(returnTypeResult.type, { expandTypeAlias: true }),
|
607
613
|
}), node.returnExpression);
|
608
614
|
}
|
609
615
|
}
|