@zzzen/pyright-internal 1.2.0-dev.20240602 → 1.2.0-dev.20240616

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 (178) hide show
  1. package/dist/analyzer/binder.d.ts +3 -1
  2. package/dist/analyzer/binder.js +23 -11
  3. package/dist/analyzer/binder.js.map +1 -1
  4. package/dist/analyzer/checker.js +50 -33
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/constraintSolver.js +27 -38
  7. package/dist/analyzer/constraintSolver.js.map +1 -1
  8. package/dist/analyzer/constructorTransform.js +1 -1
  9. package/dist/analyzer/constructorTransform.js.map +1 -1
  10. package/dist/analyzer/constructors.js +2 -7
  11. package/dist/analyzer/constructors.js.map +1 -1
  12. package/dist/analyzer/dataClasses.d.ts +0 -1
  13. package/dist/analyzer/dataClasses.js +52 -78
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/decorators.d.ts +2 -1
  16. package/dist/analyzer/decorators.js +34 -39
  17. package/dist/analyzer/decorators.js.map +1 -1
  18. package/dist/analyzer/docStringUtils.d.ts +0 -1
  19. package/dist/analyzer/docStringUtils.js +1 -6
  20. package/dist/analyzer/docStringUtils.js.map +1 -1
  21. package/dist/analyzer/enums.d.ts +1 -1
  22. package/dist/analyzer/enums.js +20 -17
  23. package/dist/analyzer/enums.js.map +1 -1
  24. package/dist/analyzer/importResolver.js +11 -9
  25. package/dist/analyzer/importResolver.js.map +1 -1
  26. package/dist/analyzer/namedTuples.js +3 -3
  27. package/dist/analyzer/namedTuples.js.map +1 -1
  28. package/dist/analyzer/operations.js +6 -7
  29. package/dist/analyzer/operations.js.map +1 -1
  30. package/dist/analyzer/parameterUtils.js +1 -13
  31. package/dist/analyzer/parameterUtils.js.map +1 -1
  32. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  33. package/dist/analyzer/patternMatching.js +4 -4
  34. package/dist/analyzer/patternMatching.js.map +1 -1
  35. package/dist/analyzer/properties.js +4 -4
  36. package/dist/analyzer/properties.js.map +1 -1
  37. package/dist/analyzer/protocols.js +16 -5
  38. package/dist/analyzer/protocols.js.map +1 -1
  39. package/dist/analyzer/service.js +27 -48
  40. package/dist/analyzer/service.js.map +1 -1
  41. package/dist/analyzer/sourceFile.d.ts +2 -1
  42. package/dist/analyzer/sourceFile.js +7 -5
  43. package/dist/analyzer/sourceFile.js.map +1 -1
  44. package/dist/analyzer/typeDocStringUtils.d.ts +1 -0
  45. package/dist/analyzer/typeDocStringUtils.js +8 -1
  46. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  47. package/dist/analyzer/typeEvaluator.js +746 -667
  48. package/dist/analyzer/typeEvaluator.js.map +1 -1
  49. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -3
  50. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  51. package/dist/analyzer/typeGuards.js +3 -2
  52. package/dist/analyzer/typeGuards.js.map +1 -1
  53. package/dist/analyzer/typePrinter.js +25 -16
  54. package/dist/analyzer/typePrinter.js.map +1 -1
  55. package/dist/analyzer/typeUtils.d.ts +3 -5
  56. package/dist/analyzer/typeUtils.js +96 -144
  57. package/dist/analyzer/typeUtils.js.map +1 -1
  58. package/dist/analyzer/typeVarContext.js +4 -0
  59. package/dist/analyzer/typeVarContext.js.map +1 -1
  60. package/dist/analyzer/typedDicts.js +6 -6
  61. package/dist/analyzer/typedDicts.js.map +1 -1
  62. package/dist/analyzer/types.d.ts +51 -54
  63. package/dist/analyzer/types.js +221 -260
  64. package/dist/analyzer/types.js.map +1 -1
  65. package/dist/backgroundAnalysisBase.d.ts +1 -1
  66. package/dist/backgroundAnalysisBase.js +3 -3
  67. package/dist/commands/dumpFileDebugInfoCommand.js +17 -25
  68. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  69. package/dist/common/cancellationUtils.d.ts +1 -0
  70. package/dist/common/cancellationUtils.js +15 -1
  71. package/dist/common/cancellationUtils.js.map +1 -1
  72. package/dist/common/configOptions.d.ts +2 -1
  73. package/dist/common/configOptions.js +13 -4
  74. package/dist/common/configOptions.js.map +1 -1
  75. package/dist/common/docStringService.d.ts +15 -0
  76. package/dist/common/docStringService.js +38 -0
  77. package/dist/common/docStringService.js.map +1 -0
  78. package/dist/common/envVarUtils.js +3 -1
  79. package/dist/common/envVarUtils.js.map +1 -1
  80. package/dist/common/extensibility.d.ts +1 -7
  81. package/dist/common/extensibility.js.map +1 -1
  82. package/dist/common/languageServerInterface.d.ts +1 -2
  83. package/dist/common/languageServerInterface.js.map +1 -1
  84. package/dist/common/realFileSystem.d.ts +3 -3
  85. package/dist/common/realFileSystem.js +6 -6
  86. package/dist/common/realFileSystem.js.map +1 -1
  87. package/dist/common/serviceKeys.d.ts +2 -0
  88. package/dist/common/serviceKeys.js +1 -0
  89. package/dist/common/serviceKeys.js.map +1 -1
  90. package/dist/common/serviceProvider.js +3 -0
  91. package/dist/common/serviceProvider.js.map +1 -1
  92. package/dist/common/serviceProviderExtensions.d.ts +2 -0
  93. package/dist/common/serviceProviderExtensions.js +8 -0
  94. package/dist/common/serviceProviderExtensions.js.map +1 -1
  95. package/dist/common/stringUtils.d.ts +1 -0
  96. package/dist/common/stringUtils.js +5 -1
  97. package/dist/common/stringUtils.js.map +1 -1
  98. package/dist/common/uri/uriUtils.d.ts +1 -1
  99. package/dist/common/uri/uriUtils.js +1 -1
  100. package/dist/common/uri/uriUtils.js.map +1 -1
  101. package/dist/languageServerBase.d.ts +1 -1
  102. package/dist/languageServerBase.js +3 -3
  103. package/dist/languageServerBase.js.map +1 -1
  104. package/dist/languageService/completionProvider.d.ts +1 -0
  105. package/dist/languageService/completionProvider.js +16 -7
  106. package/dist/languageService/completionProvider.js.map +1 -1
  107. package/dist/languageService/completionProviderUtils.d.ts +2 -1
  108. package/dist/languageService/completionProviderUtils.js +6 -4
  109. package/dist/languageService/completionProviderUtils.js.map +1 -1
  110. package/dist/languageService/definitionProvider.d.ts +2 -1
  111. package/dist/languageService/definitionProvider.js.map +1 -1
  112. package/dist/languageService/hoverProvider.d.ts +2 -1
  113. package/dist/languageService/hoverProvider.js +7 -5
  114. package/dist/languageService/hoverProvider.js.map +1 -1
  115. package/dist/languageService/signatureHelpProvider.d.ts +3 -1
  116. package/dist/languageService/signatureHelpProvider.js +8 -6
  117. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  118. package/dist/languageService/workspaceSymbolProvider.js +1 -1
  119. package/dist/localization/localize.d.ts +6 -0
  120. package/dist/localization/localize.js +3 -0
  121. package/dist/localization/localize.js.map +1 -1
  122. package/dist/localization/package.nls.cs.json +4 -3
  123. package/dist/localization/package.nls.de.json +4 -3
  124. package/dist/localization/package.nls.en-us.json +3 -0
  125. package/dist/localization/package.nls.es.json +3 -2
  126. package/dist/localization/package.nls.fr.json +4 -3
  127. package/dist/localization/package.nls.it.json +4 -3
  128. package/dist/localization/package.nls.ja.json +4 -3
  129. package/dist/localization/package.nls.ko.json +5 -4
  130. package/dist/localization/package.nls.pl.json +4 -3
  131. package/dist/localization/package.nls.pt-br.json +4 -3
  132. package/dist/localization/package.nls.qps-ploc.json +4 -3
  133. package/dist/localization/package.nls.ru.json +4 -3
  134. package/dist/localization/package.nls.tr.json +4 -3
  135. package/dist/localization/package.nls.zh-cn.json +4 -3
  136. package/dist/localization/package.nls.zh-tw.json +4 -3
  137. package/dist/pyright.js +3 -0
  138. package/dist/pyright.js.map +1 -1
  139. package/dist/tests/checker.test.js +8 -0
  140. package/dist/tests/checker.test.js.map +1 -1
  141. package/dist/tests/config.test.js +3 -3
  142. package/dist/tests/config.test.js.map +1 -1
  143. package/dist/tests/diagnosticOverrides.test.js +7 -6
  144. package/dist/tests/diagnosticOverrides.test.js.map +1 -1
  145. package/dist/tests/docStringConversion.test.d.ts +2 -1
  146. package/dist/tests/docStringConversion.test.js +300 -293
  147. package/dist/tests/docStringConversion.test.js.map +1 -1
  148. package/dist/tests/fourslash/rename.externallyHidden.fourslash.js +2 -2
  149. package/dist/tests/fourslash/rename.externallyHidden.fourslash.js.map +1 -1
  150. package/dist/tests/fourslash/rename.externallyHidden.params.fourslash.js +1 -1
  151. package/dist/tests/fourslash/rename.externallyHidden.params.fourslash.js.map +1 -1
  152. package/dist/tests/harness/fourslash/testState.js +2 -1
  153. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  154. package/dist/tests/pathUtils.test.js +6 -0
  155. package/dist/tests/pathUtils.test.js.map +1 -1
  156. package/dist/tests/signatureHelp.test.js +2 -1
  157. package/dist/tests/signatureHelp.test.js.map +1 -1
  158. package/dist/tests/testState.test.js +1 -1
  159. package/dist/tests/testState.test.js.map +1 -1
  160. package/dist/tests/testUtils.js +1 -1
  161. package/dist/tests/testUtils.js.map +1 -1
  162. package/dist/tests/typeEvaluator2.test.js +4 -0
  163. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  164. package/dist/tests/typeEvaluator3.test.js +8 -0
  165. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  166. package/dist/tests/typeEvaluator4.test.js +7 -3
  167. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  168. package/dist/tests/typeEvaluator7.test.js +15 -9
  169. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  170. package/dist/tests/typePrinter.test.js +2 -2
  171. package/dist/tests/typePrinter.test.js.map +1 -1
  172. package/dist/tests/uri.test.js +6 -0
  173. package/dist/tests/uri.test.js.map +1 -1
  174. package/dist/workspaceFactory.d.ts +1 -1
  175. package/package.json +1 -1
  176. package/dist/tests/docStringUtils.test.d.ts +0 -1
  177. package/dist/tests/docStringUtils.test.js +0 -74
  178. package/dist/tests/docStringUtils.test.js.map +0 -1
@@ -1,8 +1,10 @@
1
+ import { DocStringService } from '../common/docStringService';
1
2
  import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ComprehensionNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
3
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
4
  import { ParseTreeWalker } from './parseTreeWalker';
4
5
  import { Scope } from './scope';
5
6
  export declare class Binder extends ParseTreeWalker {
7
+ private _docStringService;
6
8
  private _moduleSymbolOnly;
7
9
  private readonly _fileInfo;
8
10
  private _deferredBindingTasks;
@@ -32,7 +34,7 @@ export declare class Binder extends ParseTreeWalker {
32
34
  private _potentialHiddenSymbols;
33
35
  private _potentialPrivateSymbols;
34
36
  private _codeFlowComplexity;
35
- constructor(fileInfo: AnalyzerFileInfo, _moduleSymbolOnly?: boolean);
37
+ constructor(fileInfo: AnalyzerFileInfo, _docStringService: DocStringService, _moduleSymbolOnly?: boolean);
36
38
  bindModule(node: ModuleNode): void;
37
39
  visitModule(node: ModuleNode): boolean;
38
40
  visitSuite(node: SuiteNode): boolean;
@@ -65,8 +65,9 @@ const symbolNameUtils_1 = require("./symbolNameUtils");
65
65
  // flow nodes. This number is somewhat arbitrary and is tuned empirically.
66
66
  const flowNodeComplexityContribution = 0.05;
67
67
  class Binder extends parseTreeWalker_1.ParseTreeWalker {
68
- constructor(fileInfo, _moduleSymbolOnly = false) {
68
+ constructor(fileInfo, _docStringService, _moduleSymbolOnly = false) {
69
69
  super();
70
+ this._docStringService = _docStringService;
70
71
  this._moduleSymbolOnly = _moduleSymbolOnly;
71
72
  // A queue of deferred analysis operations.
72
73
  this._deferredBindingTasks = [];
@@ -196,7 +197,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
196
197
  return true;
197
198
  }
198
199
  if (!importResult.isImportFound) {
199
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportMissingImports, diagnosticRules_1.DiagnosticRule.reportMissingImports, localize_1.LocMessage.importResolveFailure().format({
200
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportMissingImports, localize_1.LocMessage.importResolveFailure().format({
200
201
  importName: importResult.importName,
201
202
  venv: this._fileInfo.executionEnvironment.name,
202
203
  }), node);
@@ -206,7 +207,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
206
207
  if (!importResult.isStubFile &&
207
208
  importResult.importType === 1 /* ImportType.ThirdParty */ &&
208
209
  !importResult.pyTypedInfo) {
209
- const diagnostic = this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportMissingTypeStubs, diagnosticRules_1.DiagnosticRule.reportMissingTypeStubs, localize_1.LocMessage.stubFileMissing().format({ importName: importResult.importName }), node);
210
+ const diagnostic = this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportMissingTypeStubs, localize_1.LocMessage.stubFileMissing().format({ importName: importResult.importName }), node);
210
211
  if (diagnostic) {
211
212
  // Add a diagnostic action for resolving this diagnostic.
212
213
  const createTypeStubAction = {
@@ -495,7 +496,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
495
496
  }
496
497
  if (emitDunderAllWarning) {
497
498
  this._usesUnsupportedDunderAllForm = true;
498
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnsupportedDunderAll, diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
499
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
499
500
  }
500
501
  }
501
502
  return false;
@@ -576,7 +577,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
576
577
  this._addTypeDeclarationForVariable(node.leftExpression, node.typeAnnotationComment);
577
578
  }
578
579
  if (node.chainedTypeAnnotationComment) {
579
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportInvalidTypeForm, diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.annotationNotSupported(), node.chainedTypeAnnotationComment);
580
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.annotationNotSupported(), node.chainedTypeAnnotationComment);
580
581
  }
581
582
  // If the assignment target base expression is potentially a
582
583
  // TypedDict, add the base expression to the flow expressions set
@@ -652,7 +653,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
652
653
  }
653
654
  if (emitDunderAllWarning) {
654
655
  this._usesUnsupportedDunderAllForm = true;
655
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnsupportedDunderAll, diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
656
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
656
657
  }
657
658
  }
658
659
  }
@@ -779,7 +780,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
779
780
  }
780
781
  if (emitDunderAllWarning) {
781
782
  this._usesUnsupportedDunderAllForm = true;
782
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnsupportedDunderAll, diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
783
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportUnsupportedDunderAll, localize_1.LocMessage.unsupportedDunderAllOperation(), node);
783
784
  }
784
785
  }
785
786
  return false;
@@ -2647,8 +2648,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2647
2648
  if (this._currentScope.type === 4 /* ScopeType.Module */ || this._currentScope.type === 5 /* ScopeType.Builtin */) {
2648
2649
  if ((0, symbolNameUtils_1.isPrivateOrProtectedName)(name)) {
2649
2650
  if ((0, symbolNameUtils_1.isPrivateName)(name)) {
2650
- // Private names are obscured, so they are always externally hidden.
2651
- symbol.setIsExternallyHidden();
2651
+ // Private names within classes are mangled, so they are always externally hidden.
2652
+ if (scope.type === 3 /* ScopeType.Class */) {
2653
+ symbol.setIsExternallyHidden();
2654
+ }
2655
+ else {
2656
+ this._potentialPrivateSymbols.set(name, symbol);
2657
+ }
2652
2658
  }
2653
2659
  else if (this._fileInfo.isStubFile || this._fileInfo.isInPyTypedPackage) {
2654
2660
  if (this._currentScope.type === 5 /* ScopeType.Builtin */) {
@@ -2968,7 +2974,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2968
2974
  }
2969
2975
  }
2970
2976
  if (!declarationHandled) {
2971
- this._addDiagnostic(this._fileInfo.diagnosticRuleSet.reportInvalidTypeForm, diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.annotationNotSupported(), typeAnnotation);
2977
+ this._addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInvalidTypeForm, localize_1.LocMessage.annotationNotSupported(), typeAnnotation);
2972
2978
  }
2973
2979
  }
2974
2980
  // Determines whether the expression refers to a type exported by the typing
@@ -3031,6 +3037,11 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3031
3037
  if (this._isTypingAnnotation(typeAnnotation, 'Final')) {
3032
3038
  isFinal = true;
3033
3039
  }
3040
+ else if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ &&
3041
+ typeAnnotation.items.length > 0 &&
3042
+ this._isTypingAnnotation(typeAnnotation.baseExpression, 'Annotated')) {
3043
+ return this._isAnnotationFinal(typeAnnotation.items[0].valueExpression);
3044
+ }
3034
3045
  else if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ && typeAnnotation.items.length === 1) {
3035
3046
  // Recursively call to see if the base expression is "Final".
3036
3047
  const finalInfo = this._isAnnotationFinal(typeAnnotation.baseExpression);
@@ -3286,7 +3297,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3286
3297
  this._codeFlowComplexity += flowNodeComplexityContribution;
3287
3298
  return (0, codeFlowTypes_1.getUniqueFlowNodeId)();
3288
3299
  }
3289
- _addDiagnostic(diagLevel, rule, message, textRange) {
3300
+ _addDiagnostic(rule, message, textRange) {
3301
+ const diagLevel = this._fileInfo.diagnosticRuleSet[rule];
3290
3302
  let diagnostic;
3291
3303
  switch (diagLevel) {
3292
3304
  case 'error':