@zzzen/pyright-internal 1.2.0-dev.20260920 → 1.2.0-dev.20261004
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/analyzerNodeInfo.js +7 -2
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +17 -6
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -2
- package/dist/analyzer/checker.js +21 -9
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +2 -0
- package/dist/analyzer/codeFlowEngine.js +162 -20
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +2 -1
- package/dist/analyzer/codeFlowTypes.js +1 -0
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +4 -1
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/operations.js +1 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/overloadResult.d.ts +15 -0
- package/dist/analyzer/overloadResult.js +233 -0
- package/dist/analyzer/overloadResult.js.map +1 -0
- package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
- package/dist/analyzer/overloadResultAdmission.js +448 -0
- package/dist/analyzer/overloadResultAdmission.js.map +1 -0
- package/dist/analyzer/overloadResultController.d.ts +227 -0
- package/dist/analyzer/overloadResultController.js +904 -0
- package/dist/analyzer/overloadResultController.js.map +1 -0
- package/dist/analyzer/overloadResultSelector.d.ts +24 -0
- package/dist/analyzer/overloadResultSelector.js +131 -0
- package/dist/analyzer/overloadResultSelector.js.map +1 -0
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +4 -0
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +39 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +13 -2
- package/dist/analyzer/program.js +102 -47
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -0
- package/dist/analyzer/protocols.js +297 -9
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +6 -2
- package/dist/analyzer/sourceFile.js +9 -3
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/symbolNameUtils.d.ts +1 -0
- package/dist/analyzer/symbolNameUtils.js +5 -0
- package/dist/analyzer/symbolNameUtils.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +4 -0
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +4 -0
- package/dist/analyzer/typeCacheUtils.js +36 -0
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeComplexity.js +2 -0
- package/dist/analyzer/typeComplexity.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +10 -1
- package/dist/analyzer/typeEvaluator.js +477 -19
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +31 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +8 -0
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +38 -27
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.d.ts +2 -1
- package/dist/analyzer/typeWalker.js +12 -0
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +9 -4
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +16 -2
- package/dist/analyzer/types.js +94 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +2 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +1 -0
- package/dist/common/processUtils.d.ts +9 -1
- package/dist/common/processUtils.js +52 -10
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/windowsProcessTree.d.ts +4 -0
- package/dist/common/windowsProcessTree.js +47 -0
- package/dist/common/windowsProcessTree.js.map +1 -0
- package/dist/common/windowsProcessTree.json +310 -0
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +15 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +4 -1
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/localization/package.nls.pl.json +2 -2
- package/dist/localization/package.nls.pt-br.json +1 -1
- package/dist/localization/package.nls.zh-cn.json +2 -2
- package/dist/localization/package.nls.zh-tw.json +1 -1
- package/dist/tests/config.test.js +48 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js +44 -0
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js.map +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js +42 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +10 -9
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/languageServer.test.js +129 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/mypyPrimerMcp.test.js +2 -1
- package/dist/tests/mypyPrimerMcp.test.js.map +1 -1
- package/dist/tests/overloadResult.test.d.ts +1 -0
- package/dist/tests/overloadResult.test.js +182 -0
- package/dist/tests/overloadResult.test.js.map +1 -0
- package/dist/tests/overloadResultController.test.d.ts +1 -0
- package/dist/tests/overloadResultController.test.js +2146 -0
- package/dist/tests/overloadResultController.test.js.map +1 -0
- package/dist/tests/protocolRequirement.test.d.ts +1 -0
- package/dist/tests/protocolRequirement.test.js +122 -0
- package/dist/tests/protocolRequirement.test.js.map +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
- package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
- package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
- package/dist/tests/protocolRequirementBoundary.test.js +119 -0
- package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
- package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
- package/dist/tests/protocolRequirementComplexity.test.js +159 -0
- package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
- package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
- package/dist/tests/protocolRequirementCycles.test.js +160 -0
- package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
- package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
- package/dist/tests/protocolRequirementGeneral.test.js +120 -0
- package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
- package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
- package/dist/tests/protocolRequirementInstances.test.js +164 -0
- package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
- package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
- package/dist/tests/protocolRequirementListStub.test.js +244 -0
- package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
- package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
- package/dist/tests/protocolRequirementPopulated.test.js +172 -0
- package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
- package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
- package/dist/tests/protocolRequirementRecursive.test.js +118 -0
- package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
- package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
- package/dist/tests/protocolRequirementState.test.d.ts +1 -0
- package/dist/tests/protocolRequirementState.test.js +161 -0
- package/dist/tests/protocolRequirementState.test.js.map +1 -0
- package/dist/tests/service.test.js +36 -0
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/testState.test.js +64 -0
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +6 -1
- package/dist/tests/testUtils.js +11 -6
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
- package/dist/tests/typeCacheIsolation.test.js +109 -0
- package/dist/tests/typeCacheIsolation.test.js.map +1 -0
- package/dist/tests/typeCacheUtils.test.js +59 -0
- package/dist/tests/typeCacheUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +32 -2
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +6 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +25 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +19 -23
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +237 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +28 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/typeServer/inProcTypeServerTestUtils.d.ts +7 -2
- package/dist/tests/typeServer/inProcTypeServerTestUtils.js +14 -7
- package/dist/tests/typeServer/inProcTypeServerTestUtils.js.map +1 -1
- package/dist/tests/typeServer/stubGenerator.test.js +29 -0
- package/dist/tests/typeServer/stubGenerator.test.js.map +1 -1
- package/dist/tests/typeServer/typeServer.inProc.test.js +173 -1
- package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +15 -0
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
- package/dist/tests/typeUtils.test.js +36 -0
- package/dist/tests/typeUtils.test.js.map +1 -1
- package/dist/trace/nativeAdapter.js +1 -5
- package/dist/trace/nativeAdapter.js.map +1 -1
- package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
- package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
- package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
- package/dist/typeServer/stubGenerator.js +5 -6
- package/dist/typeServer/stubGenerator.js.map +1 -1
- package/dist/typeServer/typeServerConversionUtils.js +9 -0
- package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
- package/dist/workspaceFactory.js +5 -0
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +3 -3
|
@@ -8,6 +8,7 @@ export declare class Checker extends ParseTreeWalker {
|
|
|
8
8
|
private _importResolver;
|
|
9
9
|
private _evaluator;
|
|
10
10
|
private _dependentFiles;
|
|
11
|
+
private _walkOperation?;
|
|
11
12
|
private readonly _moduleNode;
|
|
12
13
|
private readonly _fileInfo;
|
|
13
14
|
private readonly _nodeInfo;
|
|
@@ -15,7 +16,7 @@ export declare class Checker extends ParseTreeWalker {
|
|
|
15
16
|
private _scopedNodes;
|
|
16
17
|
private _typeParamLists;
|
|
17
18
|
private _multipartImports;
|
|
18
|
-
constructor(_importResolver: ImportResolver, _evaluator: TypeEvaluator, parseResults: ParserOutput, _dependentFiles: ParserOutput[] | undefined, nodeInfoReader: AnalyzerNodeInfo.AnalyzerNodeInfoReader);
|
|
19
|
+
constructor(_importResolver: ImportResolver, _evaluator: TypeEvaluator, parseResults: ParserOutput, _dependentFiles: ParserOutput[] | undefined, nodeInfoReader: AnalyzerNodeInfo.AnalyzerNodeInfoReader, _walkOperation?: ((node: ParseNode, callback: () => void) => void) | undefined);
|
|
19
20
|
check(): void;
|
|
20
21
|
walk(node: ParseNode): void;
|
|
21
22
|
visitSuite(node: SuiteNode): boolean;
|
|
@@ -147,7 +148,6 @@ export declare class Checker extends ParseTreeWalker {
|
|
|
147
148
|
private _validateTypedDictOverrides;
|
|
148
149
|
private _validateBaseClassOverrides;
|
|
149
150
|
private _validateOverrideDecoratorPresent;
|
|
150
|
-
private _isMethodExemptFromLsp;
|
|
151
151
|
private _validateOverrideDecoratorNotPresent;
|
|
152
152
|
private _getCallableVariableOverrideComparison;
|
|
153
153
|
private _markFunctionStatic;
|
package/dist/analyzer/checker.js
CHANGED
|
@@ -88,7 +88,7 @@ const typeUtils_1 = require("./typeUtils");
|
|
|
88
88
|
// functions to be emitted.
|
|
89
89
|
const isPrintCodeComplexityEnabled = false;
|
|
90
90
|
class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
91
|
-
constructor(_importResolver, _evaluator, parseResults, _dependentFiles, nodeInfoReader) {
|
|
91
|
+
constructor(_importResolver, _evaluator, parseResults, _dependentFiles, nodeInfoReader, _walkOperation) {
|
|
92
92
|
// Forward the reader to the base walker so the structural walk expands both tier-1
|
|
93
93
|
// (parser-derived) and tier-2 (evaluator-discovered, e.g. `cast("Foo", v)`) string
|
|
94
94
|
// annotations. The checker runs after type evaluation, so tier-2 annotations exist by
|
|
@@ -99,6 +99,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
99
99
|
this._importResolver = _importResolver;
|
|
100
100
|
this._evaluator = _evaluator;
|
|
101
101
|
this._dependentFiles = _dependentFiles;
|
|
102
|
+
this._walkOperation = _walkOperation;
|
|
102
103
|
this._isUnboundCheckSuppressed = false;
|
|
103
104
|
// A list of all nodes that are defined within the module that
|
|
104
105
|
// have their own scopes.
|
|
@@ -135,6 +136,19 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
135
136
|
this._reportDuplicateImports();
|
|
136
137
|
}
|
|
137
138
|
walk(node) {
|
|
139
|
+
if (this._walkOperation) {
|
|
140
|
+
this._walkOperation(node, () => {
|
|
141
|
+
if (!this._nodeInfo.isCodeUnreachable(node)) {
|
|
142
|
+
super.walk(node);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this._evaluator.suppressDiagnostics(node, () => {
|
|
146
|
+
super.walk(node);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
138
152
|
if (!this._nodeInfo.isCodeUnreachable(node)) {
|
|
139
153
|
super.walk(node);
|
|
140
154
|
}
|
|
@@ -2789,7 +2803,10 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
2789
2803
|
}
|
|
2790
2804
|
const action = rule === diagnosticRules_1.DiagnosticRule.reportUnusedImport ? { action: "pyright.unusedImport" /* Commands.unusedImport */ } : undefined;
|
|
2791
2805
|
if (nameNode) {
|
|
2792
|
-
|
|
2806
|
+
const isAllowedUnusedVariable = rule === diagnosticRules_1.DiagnosticRule.reportUnusedVariable && nameNode.d.value.startsWith('_');
|
|
2807
|
+
if (!isAllowedUnusedVariable) {
|
|
2808
|
+
this._fileInfo.diagnosticSink.addUnusedCodeWithTextRange(localize_1.LocMessage.unaccessedSymbol().format({ name: nameNode.d.value }), nameNode, action);
|
|
2809
|
+
}
|
|
2793
2810
|
if (rule !== undefined && message && diagnosticLevel !== 'none') {
|
|
2794
2811
|
this._evaluator.addDiagnostic(rule, message, nameNode);
|
|
2795
2812
|
}
|
|
@@ -4692,7 +4709,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
4692
4709
|
return;
|
|
4693
4710
|
}
|
|
4694
4711
|
// Constructors are exempt.
|
|
4695
|
-
if (
|
|
4712
|
+
if (SymbolNameUtils.isMethodExemptFromLsp(overrideFunction.shared.name)) {
|
|
4696
4713
|
return;
|
|
4697
4714
|
}
|
|
4698
4715
|
// If the declaration for the override function is not the same as the
|
|
@@ -4710,11 +4727,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
4710
4727
|
className: this._evaluator.printType((0, typeUtils_1.convertToInstance)(baseMember.classType)),
|
|
4711
4728
|
}), funcNode.d.name);
|
|
4712
4729
|
}
|
|
4713
|
-
// Determines whether the name is exempt from Liskov Substitution Principle rules.
|
|
4714
|
-
_isMethodExemptFromLsp(name) {
|
|
4715
|
-
const exemptMethods = ['__init__', '__new__', '__init_subclass__', '__post_init__'];
|
|
4716
|
-
return exemptMethods.some((n) => n === name);
|
|
4717
|
-
}
|
|
4718
4730
|
// Determines whether the type is a function or overloaded function with an @override
|
|
4719
4731
|
// decorator. In this case, an error is reported because no base class has declared
|
|
4720
4732
|
// a method of the same name.
|
|
@@ -4863,7 +4875,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
4863
4875
|
// Also, skip this check if the class is a TypedDict. The methods for a TypedDict
|
|
4864
4876
|
// are synthesized, and they can result in many overloads. We assume they
|
|
4865
4877
|
// are correct and will not produce any errors.
|
|
4866
|
-
if (
|
|
4878
|
+
if (SymbolNameUtils.isMethodExemptFromLsp(memberName) ||
|
|
4867
4879
|
SymbolNameUtils.isPrivateName(memberName) ||
|
|
4868
4880
|
types_1.ClassType.isTypedDictClass(childClassType)) {
|
|
4869
4881
|
return;
|