@zzzen/pyright-internal 1.2.0-dev.20220703 → 1.2.0-dev.20220710
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/README.md +82 -1
- package/dist/analyzer/analyzerFileInfo.d.ts +2 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/binder.js +1 -1
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +11 -8
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +6 -1
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +5 -5
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/functionTransform.js +2 -1
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/parseTreeUtils.js +12 -7
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +1 -1
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +2 -2
- package/dist/analyzer/program.js +1 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -2
- package/dist/analyzer/service.js +3 -2
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +6 -1
- package/dist/analyzer/sourceFile.js +17 -5
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +179 -128
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -3
- package/dist/analyzer/typeGuards.js +5 -0
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +4 -4
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +3 -1
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +6 -5
- package/dist/analyzer/types.js +17 -9
- package/dist/analyzer/types.js.map +1 -1
- package/dist/languageServerBase.d.ts +3 -2
- package/dist/languageServerBase.js +3 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/indentationUtils.js +3 -2
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/insertionPointUtils.d.ts +9 -0
- package/dist/languageService/insertionPointUtils.js +110 -0
- package/dist/languageService/insertionPointUtils.js.map +1 -0
- package/dist/languageService/signatureHelpProvider.js +4 -2
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/parser/parser.d.ts +2 -1
- package/dist/parser/parser.js +2 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +2 -1
- package/dist/parser/tokenizer.js +3 -2
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +2 -1
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/fourslash/import.multipart.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/import.multipart.fourslash.js +18 -0
- package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -0
- package/dist/tests/fourslash/signature.simple.fourslash.js +16 -0
- package/dist/tests/fourslash/signature.simple.fourslash.js.map +1 -1
- package/dist/tests/insertionPointUtils.test.d.ts +1 -0
- package/dist/tests/insertionPointUtils.test.js +74 -0
- package/dist/tests/insertionPointUtils.test.js.map +1 -0
- package/dist/tests/testUtils.js +2 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +8 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -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/package.json +3 -2
package/dist/analyzer/checker.js
CHANGED
@@ -51,6 +51,7 @@ const ParseTreeUtils = __importStar(require("./parseTreeUtils"));
|
|
51
51
|
const parseTreeWalker_1 = require("./parseTreeWalker");
|
52
52
|
const patternMatching_1 = require("./patternMatching");
|
53
53
|
const scopeUtils_1 = require("./scopeUtils");
|
54
|
+
const sourceFile_1 = require("./sourceFile");
|
54
55
|
const sourceMapper_1 = require("./sourceMapper");
|
55
56
|
const staticExpressions_1 = require("./staticExpressions");
|
56
57
|
const SymbolNameUtils = __importStar(require("./symbolNameUtils"));
|
@@ -327,7 +328,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
327
328
|
if (annotationNode && index < functionTypeResult.functionType.details.parameters.length) {
|
328
329
|
const paramType = functionTypeResult.functionType.details.parameters[index].type;
|
329
330
|
if ((0, types_1.isTypeVar)(paramType) &&
|
330
|
-
paramType.details.declaredVariance ===
|
331
|
+
paramType.details.declaredVariance === 3 /* Covariant */ &&
|
331
332
|
!paramType.details.isSynthesized &&
|
332
333
|
functionTypeResult.functionType.details.name !== '__init__') {
|
333
334
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.paramTypeCovariant(), annotationNode);
|
@@ -1894,7 +1895,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1894
1895
|
}
|
1895
1896
|
_conditionallyReportUnusedSymbol(name, symbol, scopeType) {
|
1896
1897
|
const accessedSymbolSet = this._fileInfo.accessedSymbolSet;
|
1897
|
-
if (symbol.isIgnoredForProtocolMatch() ||
|
1898
|
+
if (symbol.isIgnoredForProtocolMatch() ||
|
1899
|
+
accessedSymbolSet.has(symbol.id) ||
|
1900
|
+
this._fileInfo.ipythonMode === sourceFile_1.IPythonMode.CellDocs) {
|
1898
1901
|
return;
|
1899
1902
|
}
|
1900
1903
|
// A name of "_" means "I know this symbol isn't used", so
|
@@ -2549,7 +2552,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2549
2552
|
}
|
2550
2553
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
2551
2554
|
if ((0, types_1.isTypeVar)(declaredReturnType) &&
|
2552
|
-
declaredReturnType.details.declaredVariance ===
|
2555
|
+
declaredReturnType.details.declaredVariance === 4 /* Contravariant */) {
|
2553
2556
|
diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeVarIsContravariant().format({
|
2554
2557
|
name: types_1.TypeVarType.getReadableName(declaredReturnType),
|
2555
2558
|
}));
|
@@ -2910,26 +2913,26 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2910
2913
|
const isDestSubtypeOfSrc = this._evaluator.assignClassToSelf(srcType, destType);
|
2911
2914
|
let expectedVariance;
|
2912
2915
|
if (isDestSubtypeOfSrc) {
|
2913
|
-
expectedVariance =
|
2916
|
+
expectedVariance = 3 /* Covariant */;
|
2914
2917
|
}
|
2915
2918
|
else {
|
2916
2919
|
const isSrcSubtypeOfDest = this._evaluator.assignClassToSelf(destType, srcType);
|
2917
2920
|
if (isSrcSubtypeOfDest) {
|
2918
|
-
expectedVariance =
|
2921
|
+
expectedVariance = 4 /* Contravariant */;
|
2919
2922
|
}
|
2920
2923
|
else {
|
2921
|
-
expectedVariance =
|
2924
|
+
expectedVariance = 2 /* Invariant */;
|
2922
2925
|
}
|
2923
2926
|
}
|
2924
2927
|
if (expectedVariance !== classType.details.typeParameters[paramIndex].details.declaredVariance) {
|
2925
2928
|
let message;
|
2926
|
-
if (expectedVariance ===
|
2929
|
+
if (expectedVariance === 3 /* Covariant */) {
|
2927
2930
|
message = localize_1.Localizer.Diagnostic.protocolVarianceCovariant().format({
|
2928
2931
|
variable: param.details.name,
|
2929
2932
|
class: classType.details.name,
|
2930
2933
|
});
|
2931
2934
|
}
|
2932
|
-
else if (expectedVariance ===
|
2935
|
+
else if (expectedVariance === 4 /* Contravariant */) {
|
2933
2936
|
message = localize_1.Localizer.Diagnostic.protocolVarianceContravariant().format({
|
2934
2937
|
variable: param.details.name,
|
2935
2938
|
class: classType.details.name,
|