@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.
Files changed (200) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +7 -2
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +17 -6
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.d.ts +2 -2
  6. package/dist/analyzer/checker.js +21 -9
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.d.ts +2 -0
  9. package/dist/analyzer/codeFlowEngine.js +162 -20
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/codeFlowTypes.d.ts +2 -1
  12. package/dist/analyzer/codeFlowTypes.js +1 -0
  13. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  14. package/dist/analyzer/codeFlowUtils.js +4 -1
  15. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  16. package/dist/analyzer/operations.js +1 -1
  17. package/dist/analyzer/operations.js.map +1 -1
  18. package/dist/analyzer/overloadResult.d.ts +15 -0
  19. package/dist/analyzer/overloadResult.js +233 -0
  20. package/dist/analyzer/overloadResult.js.map +1 -0
  21. package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
  22. package/dist/analyzer/overloadResultAdmission.js +448 -0
  23. package/dist/analyzer/overloadResultAdmission.js.map +1 -0
  24. package/dist/analyzer/overloadResultController.d.ts +227 -0
  25. package/dist/analyzer/overloadResultController.js +904 -0
  26. package/dist/analyzer/overloadResultController.js.map +1 -0
  27. package/dist/analyzer/overloadResultSelector.d.ts +24 -0
  28. package/dist/analyzer/overloadResultSelector.js +131 -0
  29. package/dist/analyzer/overloadResultSelector.js.map +1 -0
  30. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  31. package/dist/analyzer/parseTreeUtils.js +4 -0
  32. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  33. package/dist/analyzer/patternMatching.js +39 -2
  34. package/dist/analyzer/patternMatching.js.map +1 -1
  35. package/dist/analyzer/program.d.ts +13 -2
  36. package/dist/analyzer/program.js +102 -47
  37. package/dist/analyzer/program.js.map +1 -1
  38. package/dist/analyzer/protocols.d.ts +1 -0
  39. package/dist/analyzer/protocols.js +297 -9
  40. package/dist/analyzer/protocols.js.map +1 -1
  41. package/dist/analyzer/sourceFile.d.ts +6 -2
  42. package/dist/analyzer/sourceFile.js +9 -3
  43. package/dist/analyzer/sourceFile.js.map +1 -1
  44. package/dist/analyzer/symbolNameUtils.d.ts +1 -0
  45. package/dist/analyzer/symbolNameUtils.js +5 -0
  46. package/dist/analyzer/symbolNameUtils.js.map +1 -1
  47. package/dist/analyzer/tracePrinter.js +4 -0
  48. package/dist/analyzer/tracePrinter.js.map +1 -1
  49. package/dist/analyzer/typeCacheUtils.d.ts +4 -0
  50. package/dist/analyzer/typeCacheUtils.js +36 -0
  51. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  52. package/dist/analyzer/typeComplexity.js +2 -0
  53. package/dist/analyzer/typeComplexity.js.map +1 -1
  54. package/dist/analyzer/typeEvaluator.d.ts +10 -1
  55. package/dist/analyzer/typeEvaluator.js +477 -19
  56. package/dist/analyzer/typeEvaluator.js.map +1 -1
  57. package/dist/analyzer/typeEvaluatorTypes.d.ts +31 -1
  58. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  59. package/dist/analyzer/typeGuards.d.ts +1 -1
  60. package/dist/analyzer/typePrinter.js +8 -0
  61. package/dist/analyzer/typePrinter.js.map +1 -1
  62. package/dist/analyzer/typeUtils.d.ts +1 -1
  63. package/dist/analyzer/typeUtils.js +38 -27
  64. package/dist/analyzer/typeUtils.js.map +1 -1
  65. package/dist/analyzer/typeWalker.d.ts +2 -1
  66. package/dist/analyzer/typeWalker.js +12 -0
  67. package/dist/analyzer/typeWalker.js.map +1 -1
  68. package/dist/analyzer/typedDicts.js +9 -4
  69. package/dist/analyzer/typedDicts.js.map +1 -1
  70. package/dist/analyzer/types.d.ts +16 -2
  71. package/dist/analyzer/types.js +94 -2
  72. package/dist/analyzer/types.js.map +1 -1
  73. package/dist/common/configOptions.d.ts +1 -0
  74. package/dist/common/configOptions.js +2 -0
  75. package/dist/common/configOptions.js.map +1 -1
  76. package/dist/common/extensibility.d.ts +1 -0
  77. package/dist/common/processUtils.d.ts +9 -1
  78. package/dist/common/processUtils.js +52 -10
  79. package/dist/common/processUtils.js.map +1 -1
  80. package/dist/common/windowsProcessTree.d.ts +4 -0
  81. package/dist/common/windowsProcessTree.js +47 -0
  82. package/dist/common/windowsProcessTree.js.map +1 -0
  83. package/dist/common/windowsProcessTree.json +310 -0
  84. package/dist/languageServerBase.js +2 -2
  85. package/dist/languageServerBase.js.map +1 -1
  86. package/dist/languageService/callHierarchyProvider.js +15 -6
  87. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  88. package/dist/languageService/completionProvider.js +4 -1
  89. package/dist/languageService/completionProvider.js.map +1 -1
  90. package/dist/localization/package.nls.pl.json +2 -2
  91. package/dist/localization/package.nls.pt-br.json +1 -1
  92. package/dist/localization/package.nls.zh-cn.json +2 -2
  93. package/dist/localization/package.nls.zh-tw.json +1 -1
  94. package/dist/tests/config.test.js +48 -0
  95. package/dist/tests/config.test.js.map +1 -1
  96. package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.d.ts +1 -0
  97. package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js +44 -0
  98. package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js.map +1 -0
  99. package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.d.ts +1 -0
  100. package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js +42 -0
  101. package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js.map +1 -0
  102. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
  103. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
  104. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
  105. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
  106. package/dist/tests/harness/fourslash/testState.js +10 -9
  107. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  108. package/dist/tests/languageServer.test.js +129 -0
  109. package/dist/tests/languageServer.test.js.map +1 -1
  110. package/dist/tests/mypyPrimerMcp.test.js +2 -1
  111. package/dist/tests/mypyPrimerMcp.test.js.map +1 -1
  112. package/dist/tests/overloadResult.test.d.ts +1 -0
  113. package/dist/tests/overloadResult.test.js +182 -0
  114. package/dist/tests/overloadResult.test.js.map +1 -0
  115. package/dist/tests/overloadResultController.test.d.ts +1 -0
  116. package/dist/tests/overloadResultController.test.js +2146 -0
  117. package/dist/tests/overloadResultController.test.js.map +1 -0
  118. package/dist/tests/protocolRequirement.test.d.ts +1 -0
  119. package/dist/tests/protocolRequirement.test.js +122 -0
  120. package/dist/tests/protocolRequirement.test.js.map +1 -0
  121. package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
  122. package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
  123. package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
  124. package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
  125. package/dist/tests/protocolRequirementBoundary.test.js +119 -0
  126. package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
  127. package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
  128. package/dist/tests/protocolRequirementComplexity.test.js +159 -0
  129. package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
  130. package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
  131. package/dist/tests/protocolRequirementCycles.test.js +160 -0
  132. package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
  133. package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
  134. package/dist/tests/protocolRequirementGeneral.test.js +120 -0
  135. package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
  136. package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
  137. package/dist/tests/protocolRequirementInstances.test.js +164 -0
  138. package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
  139. package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
  140. package/dist/tests/protocolRequirementListStub.test.js +244 -0
  141. package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
  142. package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
  143. package/dist/tests/protocolRequirementPopulated.test.js +172 -0
  144. package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
  145. package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
  146. package/dist/tests/protocolRequirementRecursive.test.js +118 -0
  147. package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
  148. package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
  149. package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
  150. package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
  151. package/dist/tests/protocolRequirementState.test.d.ts +1 -0
  152. package/dist/tests/protocolRequirementState.test.js +161 -0
  153. package/dist/tests/protocolRequirementState.test.js.map +1 -0
  154. package/dist/tests/service.test.js +36 -0
  155. package/dist/tests/service.test.js.map +1 -1
  156. package/dist/tests/testState.test.js +64 -0
  157. package/dist/tests/testState.test.js.map +1 -1
  158. package/dist/tests/testUtils.d.ts +6 -1
  159. package/dist/tests/testUtils.js +11 -6
  160. package/dist/tests/testUtils.js.map +1 -1
  161. package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
  162. package/dist/tests/typeCacheIsolation.test.js +109 -0
  163. package/dist/tests/typeCacheIsolation.test.js.map +1 -0
  164. package/dist/tests/typeCacheUtils.test.js +59 -0
  165. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  166. package/dist/tests/typeEvaluator1.test.js +32 -2
  167. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  168. package/dist/tests/typeEvaluator4.test.js +6 -2
  169. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  170. package/dist/tests/typeEvaluator5.test.js +25 -0
  171. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  172. package/dist/tests/typeEvaluator6.test.js +19 -23
  173. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  174. package/dist/tests/typeEvaluator7.test.js +237 -2
  175. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  176. package/dist/tests/typeEvaluator8.test.js +28 -0
  177. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  178. package/dist/tests/typeServer/inProcTypeServerTestUtils.d.ts +7 -2
  179. package/dist/tests/typeServer/inProcTypeServerTestUtils.js +14 -7
  180. package/dist/tests/typeServer/inProcTypeServerTestUtils.js.map +1 -1
  181. package/dist/tests/typeServer/stubGenerator.test.js +29 -0
  182. package/dist/tests/typeServer/stubGenerator.test.js.map +1 -1
  183. package/dist/tests/typeServer/typeServer.inProc.test.js +173 -1
  184. package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
  185. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +15 -0
  186. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
  187. package/dist/tests/typeUtils.test.js +36 -0
  188. package/dist/tests/typeUtils.test.js.map +1 -1
  189. package/dist/trace/nativeAdapter.js +1 -5
  190. package/dist/trace/nativeAdapter.js.map +1 -1
  191. package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
  192. package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
  193. package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
  194. package/dist/typeServer/stubGenerator.js +5 -6
  195. package/dist/typeServer/stubGenerator.js.map +1 -1
  196. package/dist/typeServer/typeServerConversionUtils.js +9 -0
  197. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  198. package/dist/workspaceFactory.js +5 -0
  199. package/dist/workspaceFactory.js.map +1 -1
  200. 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;
@@ -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
- this._fileInfo.diagnosticSink.addUnusedCodeWithTextRange(localize_1.LocMessage.unaccessedSymbol().format({ name: nameNode.d.value }), nameNode, action);
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 (this._isMethodExemptFromLsp(overrideFunction.shared.name)) {
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 (this._isMethodExemptFromLsp(memberName) ||
4878
+ if (SymbolNameUtils.isMethodExemptFromLsp(memberName) ||
4867
4879
  SymbolNameUtils.isPrivateName(memberName) ||
4868
4880
  types_1.ClassType.isTypedDictClass(childClassType)) {
4869
4881
  return;