@zzzen/pyright-internal 1.2.0-dev.20230723 → 1.2.0-dev.20230806
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/backgroundAnalysisProgram.d.ts +2 -2
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +3 -1
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +5 -25
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +11 -11
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +11 -10
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +25 -5
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +9 -5
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.js +1 -1
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.js +15 -14
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/parameterUtils.js +5 -1
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +24 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +4 -2
- package/dist/analyzer/program.js +31 -25
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.js +7 -7
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +5 -0
- package/dist/analyzer/sourceFile.js +11 -5
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +247 -185
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +1 -1
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +8 -8
- package/dist/analyzer/typeUtils.js +84 -17
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +8 -5
- package/dist/analyzer/types.js +13 -12
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +5 -4
- package/dist/backgroundAnalysisBase.js +6 -6
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +2 -1
- package/dist/backgroundThreadBase.js +1 -1
- 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/chokidarFileWatcherProvider.d.ts +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +5 -1
- 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/extensibility.d.ts +3 -12
- package/dist/common/extensibility.js +5 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -14
- package/dist/common/fileSystem.js +1 -31
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fileWatcher.d.ts +15 -0
- package/dist/common/fileWatcher.js +34 -0
- package/dist/common/fileWatcher.js.map +1 -0
- package/dist/common/realFileSystem.d.ts +2 -1
- package/dist/common/realFileSystem.js +2 -2
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/languageServerBase.d.ts +9 -6
- package/dist/languageServerBase.js +19 -11
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.js +3 -3
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -6
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +7 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +0 -4
- package/dist/localization/localize.js +0 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +6 -6
- package/dist/localization/package.nls.de.json +6 -6
- package/dist/localization/package.nls.en-us.json +2 -3
- package/dist/localization/package.nls.es.json +6 -6
- package/dist/localization/package.nls.fr.json +6 -6
- package/dist/localization/package.nls.it.json +6 -6
- package/dist/localization/package.nls.ja.json +6 -6
- package/dist/localization/package.nls.ko.json +6 -6
- package/dist/localization/package.nls.pl.json +6 -6
- package/dist/localization/package.nls.pt-br.json +6 -6
- package/dist/localization/package.nls.qps-ploc.json +6 -6
- package/dist/localization/package.nls.ru.json +6 -6
- package/dist/localization/package.nls.tr.json +6 -6
- package/dist/localization/package.nls.zh-cn.json +6 -6
- package/dist/localization/package.nls.zh-tw.json +6 -6
- package/dist/pyright.js +2 -0
- package/dist/pyright.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +2 -1
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +94 -0
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.importPrivateNoPytyped.fourslash.d.ts +0 -0
- package/dist/tests/fourslash/completions.importPrivateNoPytyped.fourslash.js +30 -0
- package/dist/tests/fourslash/completions.importPrivateNoPytyped.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.importPytyped.fourslash.d.ts +0 -0
- package/dist/tests/fourslash/completions.importPytyped.fourslash.js +29 -0
- package/dist/tests/fourslash/completions.importPytyped.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.importPytypedLocal.fourslash.d.ts +0 -0
- package/dist/tests/fourslash/completions.importPytypedLocal.fourslash.js +29 -0
- package/dist/tests/fourslash/completions.importPytypedLocal.fourslash.js.map +1 -0
- package/dist/tests/fourslash/hover.async.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.async.fourslash.js +12 -0
- package/dist/tests/fourslash/hover.async.fourslash.js.map +1 -0
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +11 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +13 -3
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +5 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +8 -4
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/package.json +2 -2
package/dist/analyzer/checker.js
CHANGED
@@ -387,7 +387,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
387
387
|
}
|
388
388
|
// Verify common dunder signatures.
|
389
389
|
this._validateDunderSignatures(node, functionTypeResult.functionType, containingClassNode !== undefined);
|
390
|
-
// Verify TypeGuard
|
390
|
+
// Verify TypeGuard functions.
|
391
391
|
this._validateTypeGuardFunction(node, functionTypeResult.functionType, containingClassNode !== undefined);
|
392
392
|
this._validateFunctionTypeVarUsage(node, functionTypeResult);
|
393
393
|
}
|
@@ -2973,7 +2973,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2973
2973
|
});
|
2974
2974
|
}
|
2975
2975
|
_validateTypeGuardFunction(node, functionType, isMethod) {
|
2976
|
-
var _a;
|
2977
2976
|
const returnType = functionType.details.declaredReturnType;
|
2978
2977
|
if (!returnType) {
|
2979
2978
|
return;
|
@@ -2981,9 +2980,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2981
2980
|
if (!(0, types_1.isClassInstance)(returnType) || !returnType.typeArguments || returnType.typeArguments.length < 1) {
|
2982
2981
|
return;
|
2983
2982
|
}
|
2984
|
-
|
2985
|
-
const isStrictTypeGuard = types_1.ClassType.isBuiltIn(returnType, 'StrictTypeGuard');
|
2986
|
-
if (!isNormalTypeGuard && !isStrictTypeGuard) {
|
2983
|
+
if (!types_1.ClassType.isBuiltIn(returnType, 'TypeGuard')) {
|
2987
2984
|
return;
|
2988
2985
|
}
|
2989
2986
|
// Make sure there's at least one input parameter provided.
|
@@ -2998,25 +2995,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2998
2995
|
if (paramCount < 1) {
|
2999
2996
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeGuardParamCount(), node.name);
|
3000
2997
|
}
|
3001
|
-
if (isStrictTypeGuard) {
|
3002
|
-
const typeGuardType = returnType.typeArguments[0];
|
3003
|
-
// Determine the type of the first parameter.
|
3004
|
-
const paramIndex = isMethod && !types_1.FunctionType.isStaticMethod(functionType) ? 1 : 0;
|
3005
|
-
if (paramIndex >= functionType.details.parameters.length) {
|
3006
|
-
return;
|
3007
|
-
}
|
3008
|
-
const paramType = types_1.FunctionType.getEffectiveParameterType(functionType, paramIndex);
|
3009
|
-
// Verify that the typeGuardType is a narrower type than the paramType.
|
3010
|
-
if (!this._evaluator.assignType(paramType, typeGuardType)) {
|
3011
|
-
const returnAnnotation = node.returnTypeAnnotation || ((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation);
|
3012
|
-
if (returnAnnotation) {
|
3013
|
-
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.strictTypeGuardReturnType().format({
|
3014
|
-
type: this._evaluator.printType(paramType),
|
3015
|
-
returnType: this._evaluator.printType(typeGuardType),
|
3016
|
-
}), returnAnnotation);
|
3017
|
-
}
|
3018
|
-
}
|
3019
|
-
}
|
3020
2998
|
}
|
3021
2999
|
_validateDunderSignatures(node, functionType, isMethod) {
|
3022
3000
|
var _a;
|
@@ -3071,7 +3049,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3071
3049
|
// If the function consists entirely of "...", assume that it's
|
3072
3050
|
// an abstract method or a protocol method and don't require that
|
3073
3051
|
// the return type matches. This check can also be skipped for an overload.
|
3074
|
-
if (!ParseTreeUtils.isSuiteEmpty(node.suite) &&
|
3052
|
+
if (!ParseTreeUtils.isSuiteEmpty(node.suite) &&
|
3053
|
+
!types_1.FunctionType.isOverloaded(functionType) &&
|
3054
|
+
!types_1.FunctionType.isAsync(functionType)) {
|
3075
3055
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.noReturnReturnsNone(), returnAnnotation);
|
3076
3056
|
}
|
3077
3057
|
}
|