@zzzen/pyright-internal 1.2.0-dev.20231001 → 1.2.0-dev.20231008
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.d.ts +3 -1
- package/dist/analyzer/checker.js +55 -17
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +10 -3
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +6 -1
- package/dist/analyzer/decorators.js +31 -24
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +21 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/properties.js +4 -0
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +7 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scopeUtils.js +3 -2
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +2 -1
- package/dist/analyzer/typeEvaluator.js +147 -222
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +7 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typeGuards.js +55 -43
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.js +1 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +3 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.d.ts +19 -6
- package/dist/common/extensibility.js +6 -7
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/pythonVersion.d.ts +1 -1
- package/dist/common/pythonVersion.js +1 -1
- package/dist/common/realFileSystem.js +9 -16
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +3 -2
- package/dist/common/serviceProviderExtensions.js +2 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -0
- package/dist/languageServerBase.js +28 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +0 -1
- package/dist/languageService/callHierarchyProvider.js +33 -16
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +4 -5
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +5 -2
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +32 -23
- package/dist/languageService/documentSymbolCollector.js +170 -267
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -5
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +6 -6
- package/dist/languageService/referencesProvider.js +23 -8
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +3 -3
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +21 -0
- package/dist/localization/localize.js +7 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +4 -0
- package/dist/localization/package.nls.de.json +4 -0
- package/dist/localization/package.nls.en-us.json +7 -0
- package/dist/localization/package.nls.es.json +4 -0
- package/dist/localization/package.nls.fr.json +4 -0
- package/dist/localization/package.nls.it.json +4 -0
- package/dist/localization/package.nls.ja.json +4 -0
- package/dist/localization/package.nls.ko.json +4 -0
- package/dist/localization/package.nls.pl.json +4 -0
- package/dist/localization/package.nls.pt-br.json +4 -0
- package/dist/localization/package.nls.qps-ploc.json +4 -0
- package/dist/localization/package.nls.ru.json +4 -0
- package/dist/localization/package.nls.tr.json +4 -0
- package/dist/localization/package.nls.zh-cn.json +4 -0
- package/dist/localization/package.nls.zh-tw.json +4 -0
- package/dist/parser/stringTokenUtils.js +9 -5
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +1 -0
- package/dist/parser/tokenizer.js +5 -5
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +8 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +8 -363
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +3 -0
- package/dist/tests/testStateUtils.js +25 -1
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator2.test.js +9 -5
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +7 -3
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +8 -8
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +4 -2
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -1
- package/dist/workspaceFactory.js +3 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.d.ts +0 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js +0 -40
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js.map +0 -1
@@ -103,7 +103,9 @@ export declare class Checker extends ParseTreeWalker {
|
|
103
103
|
private _validateIsInstanceCall;
|
104
104
|
private _isTypeSupportedTypeForIsInstance;
|
105
105
|
private _isSymbolPrivate;
|
106
|
-
private
|
106
|
+
private _reportDeprecatedUseForMemberAccess;
|
107
|
+
private _reportDeprecatedUseForType;
|
108
|
+
private _reportDeprecatedDiagnostic;
|
107
109
|
private _reportUnboundName;
|
108
110
|
private _conditionallyReportShadowedModule;
|
109
111
|
private _conditionallyReportShadowedImport;
|
package/dist/analyzer/checker.js
CHANGED
@@ -892,7 +892,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
892
892
|
}
|
893
893
|
// Report the use of a deprecated symbol.
|
894
894
|
const type = this._evaluator.getType(node);
|
895
|
-
this.
|
895
|
+
this._reportDeprecatedUseForType(node, type);
|
896
896
|
return true;
|
897
897
|
}
|
898
898
|
visitDel(node) {
|
@@ -903,9 +903,14 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
903
903
|
return false;
|
904
904
|
}
|
905
905
|
visitMemberAccess(node) {
|
906
|
-
|
906
|
+
var _a;
|
907
|
+
const typeResult = this._evaluator.getTypeResult(node);
|
908
|
+
const type = (_a = typeResult === null || typeResult === void 0 ? void 0 : typeResult.type) !== null && _a !== void 0 ? _a : types_1.UnknownType.create();
|
907
909
|
const leftExprType = this._evaluator.getType(node.leftExpression);
|
908
|
-
this.
|
910
|
+
this._reportDeprecatedUseForType(node.memberName, type, leftExprType && (0, types_1.isModule)(leftExprType) && leftExprType.moduleName === 'typing');
|
911
|
+
if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.memberAccessDeprecationInfo) {
|
912
|
+
this._reportDeprecatedUseForMemberAccess(node.memberName, typeResult.memberAccessDeprecationInfo);
|
913
|
+
}
|
909
914
|
this._conditionallyReportPrivateUsage(node.memberName);
|
910
915
|
// Walk the leftExpression but not the memberName.
|
911
916
|
this.walk(node.leftExpression);
|
@@ -977,7 +982,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
977
982
|
}
|
978
983
|
}
|
979
984
|
const type = this._evaluator.getType((_b = node.alias) !== null && _b !== void 0 ? _b : node.name);
|
980
|
-
this.
|
985
|
+
this._reportDeprecatedUseForType(node.name, type, isImportFromTyping);
|
981
986
|
return false;
|
982
987
|
}
|
983
988
|
visitModuleName(node) {
|
@@ -2541,7 +2546,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2541
2546
|
const filterType = (varType) => {
|
2542
2547
|
const filteredTypes = [];
|
2543
2548
|
for (const filterType of classTypeList) {
|
2544
|
-
const filterIsSuperclass = (0, typeGuards_1.isIsinstanceFilterSuperclass)(this._evaluator, varType, filterType, filterType, isInstanceCheck);
|
2549
|
+
const filterIsSuperclass = (0, typeGuards_1.isIsinstanceFilterSuperclass)(this._evaluator, varType, varType, filterType, filterType, isInstanceCheck);
|
2545
2550
|
const filterIsSubclass = (0, typeGuards_1.isIsinstanceFilterSubclass)(this._evaluator, varType, filterType, isInstanceCheck);
|
2546
2551
|
// Normally, a class should never be both a subclass and a
|
2547
2552
|
// superclass. However, this can happen if one of the classes
|
@@ -2648,7 +2653,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2648
2653
|
}
|
2649
2654
|
break;
|
2650
2655
|
case 5 /* Function */:
|
2651
|
-
|
2656
|
+
if (!types_1.TypeBase.isInstantiable(subtype) || subtype.isCallableWithTypeArgs) {
|
2657
|
+
isSupported = false;
|
2658
|
+
}
|
2652
2659
|
break;
|
2653
2660
|
case 9 /* Union */:
|
2654
2661
|
isSupported = this._isTypeSupportedTypeForIsInstance(subtype, isInstanceCheck);
|
@@ -2677,7 +2684,35 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2677
2684
|
}
|
2678
2685
|
return false;
|
2679
2686
|
}
|
2680
|
-
|
2687
|
+
_reportDeprecatedUseForMemberAccess(node, info) {
|
2688
|
+
let errorMessage;
|
2689
|
+
if (info.accessType === 'property') {
|
2690
|
+
if (info.accessMethod === 'get') {
|
2691
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedPropertyGetter().format({ name: node.value });
|
2692
|
+
}
|
2693
|
+
else if (info.accessMethod === 'set') {
|
2694
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedPropertySetter().format({ name: node.value });
|
2695
|
+
}
|
2696
|
+
else {
|
2697
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedPropertyDeleter().format({ name: node.value });
|
2698
|
+
}
|
2699
|
+
}
|
2700
|
+
else if (info.accessType === 'descriptor') {
|
2701
|
+
if (info.accessMethod === 'get') {
|
2702
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedDescriptorGetter().format({ name: node.value });
|
2703
|
+
}
|
2704
|
+
else if (info.accessMethod === 'set') {
|
2705
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedDescriptorSetter().format({ name: node.value });
|
2706
|
+
}
|
2707
|
+
else {
|
2708
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedDescriptorDeleter().format({ name: node.value });
|
2709
|
+
}
|
2710
|
+
}
|
2711
|
+
if (errorMessage) {
|
2712
|
+
this._reportDeprecatedDiagnostic(node, errorMessage, info.deprecationMessage);
|
2713
|
+
}
|
2714
|
+
}
|
2715
|
+
_reportDeprecatedUseForType(node, type, isImportFromTyping = false) {
|
2681
2716
|
var _a, _b;
|
2682
2717
|
if (!type) {
|
2683
2718
|
return;
|
@@ -2765,16 +2800,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2765
2800
|
}
|
2766
2801
|
});
|
2767
2802
|
if (errorMessage) {
|
2768
|
-
|
2769
|
-
if (deprecatedMessage) {
|
2770
|
-
diag.addMessage(deprecatedMessage);
|
2771
|
-
}
|
2772
|
-
if (this._fileInfo.diagnosticRuleSet.reportDeprecated === 'none') {
|
2773
|
-
this._evaluator.addDeprecated(errorMessage + diag.getString(), node);
|
2774
|
-
}
|
2775
|
-
else {
|
2776
|
-
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportDeprecated, diagnosticRules_1.DiagnosticRule.reportDeprecated, errorMessage + diag.getString(), node);
|
2777
|
-
}
|
2803
|
+
this._reportDeprecatedDiagnostic(node, errorMessage, deprecatedMessage);
|
2778
2804
|
}
|
2779
2805
|
if (this._fileInfo.diagnosticRuleSet.deprecateTypingAliases) {
|
2780
2806
|
const deprecatedForm = (_a = deprecatedSymbols_1.deprecatedAliases.get(node.value)) !== null && _a !== void 0 ? _a : deprecatedSymbols_1.deprecatedSpecialForms.get(node.value);
|
@@ -2801,6 +2827,18 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2801
2827
|
}
|
2802
2828
|
}
|
2803
2829
|
}
|
2830
|
+
_reportDeprecatedDiagnostic(node, diagnosticMessage, deprecatedMessage) {
|
2831
|
+
const diag = new diagnostic_1.DiagnosticAddendum();
|
2832
|
+
if (deprecatedMessage) {
|
2833
|
+
diag.addMessage(deprecatedMessage);
|
2834
|
+
}
|
2835
|
+
if (this._fileInfo.diagnosticRuleSet.reportDeprecated === 'none') {
|
2836
|
+
this._evaluator.addDeprecated(diagnosticMessage + diag.getString(), node);
|
2837
|
+
}
|
2838
|
+
else {
|
2839
|
+
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportDeprecated, diagnosticRules_1.DiagnosticRule.reportDeprecated, diagnosticMessage + diag.getString(), node);
|
2840
|
+
}
|
2841
|
+
}
|
2804
2842
|
_reportUnboundName(node) {
|
2805
2843
|
if (this._fileInfo.diagnosticRuleSet.reportUnboundVariable === 'none') {
|
2806
2844
|
return;
|