@zzzen/pyright-internal 1.2.0-dev.20220717 → 1.2.0-dev.20220724
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/analysis.js +1 -1
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +42 -1
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +0 -1
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +13 -4
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/importResolver.js +2 -2
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +1 -1
- package/dist/analyzer/importStatementUtils.js +47 -18
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +2 -0
- package/dist/analyzer/parseTreeUtils.js +71 -2
- 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/service.d.ts +1 -1
- package/dist/analyzer/service.js +36 -37
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +430 -410
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +11 -11
- package/dist/analyzer/typeGuards.d.ts +2 -0
- package/dist/analyzer/typeGuards.js +41 -13
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +2 -1
- package/dist/analyzer/typeUtils.js +21 -21
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -2
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +37 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -1
- package/dist/backgroundAnalysisBase.js +7 -0
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +1 -0
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/chokidarFileWatcherProvider.d.ts +1 -2
- package/dist/common/chokidarFileWatcherProvider.js +0 -3
- package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +4 -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/editAction.d.ts +6 -0
- package/dist/common/editAction.js +15 -0
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/fileSystem.d.ts +4 -1
- package/dist/common/fileSystem.js +6 -4
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +2 -2
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/textEditUtils.d.ts +22 -2
- package/dist/common/textEditUtils.js +138 -1
- package/dist/common/textEditUtils.js.map +1 -1
- package/dist/common/uriParser.d.ts +2 -0
- package/dist/common/uriParser.js +11 -0
- package/dist/common/uriParser.js.map +1 -1
- package/dist/languageServerBase.d.ts +14 -10
- package/dist/languageServerBase.js +45 -43
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/codeActionProvider.d.ts +2 -2
- package/dist/languageService/codeActionProvider.js +1 -1
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/renameModuleProvider.d.ts +1 -4
- package/dist/languageService/renameModuleProvider.js +10 -46
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +8 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -0
- package/dist/pyrightFileSystem.d.ts +19 -1
- package/dist/pyrightFileSystem.js +18 -1
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/server.js +4 -4
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +9 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.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/renameModuleTestUtils.js +5 -87
- package/dist/tests/renameModuleTestUtils.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +8 -0
- package/dist/tests/testStateUtils.js +110 -0
- package/dist/tests/testStateUtils.js.map +1 -0
- package/dist/tests/testUtils.js +1 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +0 -4
- 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/typeEvaluator4.test.js +8 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/workspaceMap.d.ts +1 -0
- package/dist/workspaceMap.js +10 -0
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +2 -2
@@ -30,7 +30,7 @@ exports.analyzeProgram = exports.nullCallback = void 0;
|
|
30
30
|
const cancellationUtils_1 = require("../common/cancellationUtils");
|
31
31
|
const debug = __importStar(require("../common/debug"));
|
32
32
|
const timing_1 = require("../common/timing");
|
33
|
-
const nullCallback = (
|
33
|
+
const nullCallback = () => {
|
34
34
|
/* empty */
|
35
35
|
};
|
36
36
|
exports.nullCallback = nullCallback;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/analyzer/analysis.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;AAIH,mEAAuG;AAGvG,uDAAyC;AAEzC,6CAA4C;AAGrC,MAAM,YAAY,GAA6B,
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/analyzer/analysis.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;AAIH,mEAAuG;AAGvG,uDAAyC;AAEzC,6CAA4C;AAGrC,MAAM,YAAY,GAA6B,GAAG,EAAE;IACvD,WAAW;AACf,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAeF,SAAgB,cAAc,CAC1B,OAAgB,EAChB,OAAoC,EACpC,aAA4B,EAC5B,QAA8C,EAC9C,OAAyB,EACzB,KAAwB;IAExB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,QAAQ,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,oBAAY,CAAC;IAEpC,IAAI;QACA,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,iBAAQ,EAAE,CAAC;QAChC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAEpD,wCAAwC;QACxC,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;YAC3C,QAAQ,CAAC;gBACL,WAAW;gBACX,cAAc,EAAE,OAAO,CAAC,YAAY,EAAE;gBACtC,sBAAsB,EAAE,kBAAkB;gBAC1C,qBAAqB,EAAE,OAAO,CAAC,uBAAuB,EAAE;gBACxD,kBAAkB,EAAE,KAAK;gBACzB,wBAAwB,EAAE,KAAK;gBAC/B,WAAW;aACd,CAAC,CAAC;SACN;KACJ;IAAC,OAAO,CAAM,EAAE;QACb,IAAI,8CAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,OAAO,CAAC,CAAC;QAEvD,QAAQ,CAAC;YACL,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,CAAC;YACjB,sBAAsB,EAAE,CAAC;YACzB,qBAAqB,EAAE,IAAI;YAC3B,kBAAkB,EAAE,IAAI;YACxB,wBAAwB,EAAE,KAAK;YAC/B,WAAW,EAAE,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACvC,CAAC,CAAC;KACN;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAxDD,wCAwDC"}
|
@@ -67,6 +67,7 @@ export declare class Checker extends ParseTreeWalker {
|
|
67
67
|
private _validateExhaustiveMatch;
|
68
68
|
private _suppressUnboundCheck;
|
69
69
|
private _validateIllegalDefaultParamInitializer;
|
70
|
+
private _validateContainmentTypes;
|
70
71
|
private _validateComparisonTypes;
|
71
72
|
private _isTypeComparable;
|
72
73
|
private _isTypeValidForUnusedValueTest;
|
package/dist/analyzer/checker.js
CHANGED
@@ -737,6 +737,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
737
737
|
this._validateComparisonTypes(node);
|
738
738
|
}
|
739
739
|
}
|
740
|
+
else if (node.operator === 41 /* In */ || node.operator === 42 /* NotIn */) {
|
741
|
+
// Don't apply this rule if it's within an assert.
|
742
|
+
if (!ParseTreeUtils.isWithinAssertExpression(node)) {
|
743
|
+
this._validateContainmentTypes(node);
|
744
|
+
}
|
745
|
+
}
|
740
746
|
this._evaluator.getType(node);
|
741
747
|
return true;
|
742
748
|
}
|
@@ -982,11 +988,46 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
982
988
|
}
|
983
989
|
}
|
984
990
|
}
|
991
|
+
_validateContainmentTypes(node) {
|
992
|
+
const leftType = this._evaluator.getType(node.leftExpression);
|
993
|
+
const containerType = this._evaluator.getType(node.rightExpression);
|
994
|
+
if (!leftType || !containerType) {
|
995
|
+
return;
|
996
|
+
}
|
997
|
+
if ((0, types_1.isNever)(leftType) || (0, types_1.isNever)(containerType)) {
|
998
|
+
return;
|
999
|
+
}
|
1000
|
+
// Use the common narrowing logic for containment.
|
1001
|
+
const elementType = (0, typeGuards_1.getElementTypeForContainerNarrowing)(containerType);
|
1002
|
+
if (!elementType) {
|
1003
|
+
return;
|
1004
|
+
}
|
1005
|
+
const narrowedType = (0, typeGuards_1.narrowTypeForContainerElementType)(this._evaluator, leftType, this._evaluator.makeTopLevelTypeVarsConcrete(elementType));
|
1006
|
+
if ((0, types_1.isNever)(narrowedType)) {
|
1007
|
+
const getMessage = () => {
|
1008
|
+
return node.operator === 41 /* In */
|
1009
|
+
? localize_1.Localizer.Diagnostic.containmentAlwaysFalse()
|
1010
|
+
: localize_1.Localizer.Diagnostic.containmentAlwaysTrue();
|
1011
|
+
};
|
1012
|
+
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnnecessaryContains, diagnosticRules_1.DiagnosticRule.reportUnnecessaryContains, getMessage().format({
|
1013
|
+
leftType: this._evaluator.printType(leftType, /* expandTypeAlias */ true),
|
1014
|
+
rightType: this._evaluator.printType(elementType, /* expandTypeAlias */ true),
|
1015
|
+
}), node);
|
1016
|
+
}
|
1017
|
+
}
|
985
1018
|
// Determines whether the types of the two operands for an == or != operation
|
986
1019
|
// have overlapping types.
|
987
1020
|
_validateComparisonTypes(node) {
|
1021
|
+
let rightExpression = node.rightExpression;
|
1022
|
+
// Check for chained comparisons.
|
1023
|
+
if (rightExpression.nodeType === 7 /* BinaryOperation */ &&
|
1024
|
+
!rightExpression.parenthesized &&
|
1025
|
+
ParseTreeUtils.operatorSupportsChaining(rightExpression.operator)) {
|
1026
|
+
// Use the left side of the right expression for comparison purposes.
|
1027
|
+
rightExpression = rightExpression.leftExpression;
|
1028
|
+
}
|
988
1029
|
const leftType = this._evaluator.getType(node.leftExpression);
|
989
|
-
const rightType = this._evaluator.getType(
|
1030
|
+
const rightType = this._evaluator.getType(rightExpression);
|
990
1031
|
if (!leftType || !rightType) {
|
991
1032
|
return;
|
992
1033
|
}
|