@zzzen/pyright-internal 1.2.0-dev.20250413 → 1.2.0-dev.20250802

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 (277) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +0 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/analyzerNodeInfo.js +1 -1
  4. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  5. package/dist/analyzer/binder.d.ts +2 -1
  6. package/dist/analyzer/binder.js +45 -38
  7. package/dist/analyzer/binder.js.map +1 -1
  8. package/dist/analyzer/checker.js +81 -44
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.js +19 -7
  11. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  12. package/dist/analyzer/codeFlowTypes.d.ts +9 -8
  13. package/dist/analyzer/codeFlowTypes.js +9 -8
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/codeFlowUtils.js +4 -2
  16. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  17. package/dist/analyzer/dataClasses.js +7 -2
  18. package/dist/analyzer/dataClasses.js.map +1 -1
  19. package/dist/analyzer/docStringUtils.js +3 -1
  20. package/dist/analyzer/docStringUtils.js.map +1 -1
  21. package/dist/analyzer/importResolver.d.ts +0 -1
  22. package/dist/analyzer/importResolver.js +2 -25
  23. package/dist/analyzer/importResolver.js.map +1 -1
  24. package/dist/analyzer/importResult.d.ts +0 -1
  25. package/dist/analyzer/importStatementUtils.js +5 -3
  26. package/dist/analyzer/importStatementUtils.js.map +1 -1
  27. package/dist/analyzer/namedTuples.js +10 -0
  28. package/dist/analyzer/namedTuples.js.map +1 -1
  29. package/dist/analyzer/operations.js +1 -1
  30. package/dist/analyzer/operations.js.map +1 -1
  31. package/dist/analyzer/packageTypeVerifier.js +5 -3
  32. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  33. package/dist/analyzer/parameterUtils.js +10 -3
  34. package/dist/analyzer/parameterUtils.js.map +1 -1
  35. package/dist/analyzer/parseTreeUtils.d.ts +3 -4
  36. package/dist/analyzer/parseTreeUtils.js +19 -225
  37. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  38. package/dist/analyzer/patternMatching.js +4 -0
  39. package/dist/analyzer/patternMatching.js.map +1 -1
  40. package/dist/analyzer/program.d.ts +12 -2
  41. package/dist/analyzer/program.js +78 -75
  42. package/dist/analyzer/program.js.map +1 -1
  43. package/dist/analyzer/programTypes.d.ts +2 -2
  44. package/dist/analyzer/programTypes.js.map +1 -1
  45. package/dist/analyzer/properties.js +3 -5
  46. package/dist/analyzer/properties.js.map +1 -1
  47. package/dist/analyzer/protocols.js +13 -3
  48. package/dist/analyzer/protocols.js.map +1 -1
  49. package/dist/analyzer/sentinel.d.ts +4 -0
  50. package/dist/analyzer/sentinel.js +51 -0
  51. package/dist/analyzer/sentinel.js.map +1 -0
  52. package/dist/analyzer/service.d.ts +2 -2
  53. package/dist/analyzer/service.js +7 -6
  54. package/dist/analyzer/service.js.map +1 -1
  55. package/dist/analyzer/sourceFile.d.ts +5 -2
  56. package/dist/analyzer/sourceFile.js +53 -15
  57. package/dist/analyzer/sourceFile.js.map +1 -1
  58. package/dist/analyzer/sourceFileInfo.d.ts +10 -1
  59. package/dist/analyzer/sourceFileInfo.js +28 -0
  60. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  61. package/dist/analyzer/sourceFileInfoUtils.js +4 -4
  62. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  63. package/dist/analyzer/sourceMapper.d.ts +1 -1
  64. package/dist/analyzer/sourceMapper.js +20 -20
  65. package/dist/analyzer/sourceMapper.js.map +1 -1
  66. package/dist/analyzer/symbol.d.ts +3 -0
  67. package/dist/analyzer/symbol.js +11 -0
  68. package/dist/analyzer/symbol.js.map +1 -1
  69. package/dist/analyzer/testWalker.js +2 -13
  70. package/dist/analyzer/testWalker.js.map +1 -1
  71. package/dist/analyzer/tracePrinter.js +1 -1
  72. package/dist/analyzer/tracePrinter.js.map +1 -1
  73. package/dist/analyzer/typeEvaluator.js +278 -147
  74. package/dist/analyzer/typeEvaluator.js.map +1 -1
  75. package/dist/analyzer/typeEvaluatorTypes.d.ts +8 -4
  76. package/dist/analyzer/typeEvaluatorTypes.js +15 -2
  77. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  78. package/dist/analyzer/typeGuards.js +47 -13
  79. package/dist/analyzer/typeGuards.js.map +1 -1
  80. package/dist/analyzer/typePrinter.js +10 -2
  81. package/dist/analyzer/typePrinter.js.map +1 -1
  82. package/dist/analyzer/typePrinterUtils.js +2 -2
  83. package/dist/analyzer/typePrinterUtils.js.map +1 -1
  84. package/dist/analyzer/typeUtils.d.ts +2 -0
  85. package/dist/analyzer/typeUtils.js +14 -3
  86. package/dist/analyzer/typeUtils.js.map +1 -1
  87. package/dist/analyzer/typedDicts.js +9 -5
  88. package/dist/analyzer/typedDicts.js.map +1 -1
  89. package/dist/analyzer/types.d.ts +9 -2
  90. package/dist/analyzer/types.js +39 -1
  91. package/dist/analyzer/types.js.map +1 -1
  92. package/dist/commands/dumpFileDebugInfoCommand.d.ts +96 -0
  93. package/dist/commands/dumpFileDebugInfoCommand.js +13 -2
  94. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  95. package/dist/common/cancellationUtils.d.ts +1 -1
  96. package/dist/common/cancellationUtils.js +2 -2
  97. package/dist/common/cancellationUtils.js.map +1 -1
  98. package/dist/common/charCodes.d.ts +1 -1
  99. package/dist/common/charCodes.js +1 -1
  100. package/dist/common/charCodes.js.map +1 -1
  101. package/dist/common/configOptions.d.ts +1 -0
  102. package/dist/common/configOptions.js +5 -0
  103. package/dist/common/configOptions.js.map +1 -1
  104. package/dist/common/core.d.ts +1 -3
  105. package/dist/common/core.js +3 -4
  106. package/dist/common/core.js.map +1 -1
  107. package/dist/common/diagnostic.d.ts +1 -1
  108. package/dist/common/diagnosticRules.d.ts +1 -0
  109. package/dist/common/diagnosticRules.js +1 -0
  110. package/dist/common/diagnosticRules.js.map +1 -1
  111. package/dist/common/docRange.d.ts +6 -0
  112. package/dist/common/docRange.js +10 -0
  113. package/dist/common/docRange.js.map +1 -0
  114. package/dist/common/envVarUtils.js +1 -6
  115. package/dist/common/envVarUtils.js.map +1 -1
  116. package/dist/common/extensibility.d.ts +11 -2
  117. package/dist/common/extensibility.js.map +1 -1
  118. package/dist/common/fileBasedCancellationUtils.d.ts +1 -0
  119. package/dist/common/fileBasedCancellationUtils.js +1 -0
  120. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  121. package/dist/common/logTracker.d.ts +5 -1
  122. package/dist/common/logTracker.js +43 -26
  123. package/dist/common/logTracker.js.map +1 -1
  124. package/dist/common/pathUtils.d.ts +1 -1
  125. package/dist/common/pathUtils.js +3 -2
  126. package/dist/common/pathUtils.js.map +1 -1
  127. package/dist/common/realFileSystem.d.ts +1 -1
  128. package/dist/common/realFileSystem.js +2 -1
  129. package/dist/common/realFileSystem.js.map +1 -1
  130. package/dist/common/serviceProviderExtensions.js +2 -2
  131. package/dist/common/serviceProviderExtensions.js.map +1 -1
  132. package/dist/common/stringUtils.d.ts +0 -1
  133. package/dist/common/stringUtils.js +0 -42
  134. package/dist/common/stringUtils.js.map +1 -1
  135. package/dist/common/textEditTracker.js +5 -3
  136. package/dist/common/textEditTracker.js.map +1 -1
  137. package/dist/common/textRange.d.ts +5 -11
  138. package/dist/common/textRange.js +31 -56
  139. package/dist/common/textRange.js.map +1 -1
  140. package/dist/common/textRangeCollection.js +3 -2
  141. package/dist/common/textRangeCollection.js.map +1 -1
  142. package/dist/common/uri/baseUri.js +2 -1
  143. package/dist/common/uri/baseUri.js.map +1 -1
  144. package/dist/common/uri/uri.d.ts +5 -2
  145. package/dist/common/uri/uri.js +21 -5
  146. package/dist/common/uri/uri.js.map +1 -1
  147. package/dist/common/uri/uriUtils.d.ts +2 -2
  148. package/dist/common/uri/uriUtils.js +4 -3
  149. package/dist/common/uri/uriUtils.js.map +1 -1
  150. package/dist/common/workspaceEditUtils.js +9 -9
  151. package/dist/common/workspaceEditUtils.js.map +1 -1
  152. package/dist/languageServerBase.d.ts +5 -3
  153. package/dist/languageServerBase.js +44 -37
  154. package/dist/languageServerBase.js.map +1 -1
  155. package/dist/languageService/analyzerServiceExecutor.d.ts +3 -0
  156. package/dist/languageService/analyzerServiceExecutor.js +1 -0
  157. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  158. package/dist/languageService/autoImporter.d.ts +2 -2
  159. package/dist/languageService/autoImporter.js +3 -3
  160. package/dist/languageService/autoImporter.js.map +1 -1
  161. package/dist/languageService/callHierarchyProvider.js +2 -3
  162. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  163. package/dist/languageService/completionProvider.js +16 -13
  164. package/dist/languageService/completionProvider.js.map +1 -1
  165. package/dist/languageService/definitionProvider.d.ts +2 -1
  166. package/dist/languageService/definitionProvider.js.map +1 -1
  167. package/dist/languageService/documentSymbolCollector.d.ts +4 -1
  168. package/dist/languageService/documentSymbolCollector.js +9 -7
  169. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  170. package/dist/languageService/hoverProvider.js +1 -9
  171. package/dist/languageService/hoverProvider.js.map +1 -1
  172. package/dist/languageService/importSorter.js +1 -0
  173. package/dist/languageService/importSorter.js.map +1 -1
  174. package/dist/languageService/navigationUtils.d.ts +1 -1
  175. package/dist/languageService/referencesProvider.d.ts +2 -1
  176. package/dist/languageService/referencesProvider.js +8 -7
  177. package/dist/languageService/referencesProvider.js.map +1 -1
  178. package/dist/languageService/renameProvider.js +4 -19
  179. package/dist/languageService/renameProvider.js.map +1 -1
  180. package/dist/languageService/tooltipUtils.d.ts +2 -0
  181. package/dist/languageService/tooltipUtils.js +2 -0
  182. package/dist/languageService/tooltipUtils.js.map +1 -1
  183. package/dist/languageService/workspaceSymbolProvider.js +1 -1
  184. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  185. package/dist/localization/localize.d.ts +16 -2
  186. package/dist/localization/localize.js +16 -2
  187. package/dist/localization/localize.js.map +1 -1
  188. package/dist/localization/package.nls.cs.json +23 -9
  189. package/dist/localization/package.nls.de.json +18 -4
  190. package/dist/localization/package.nls.en-us.json +53 -3
  191. package/dist/localization/package.nls.es.json +18 -4
  192. package/dist/localization/package.nls.fr.json +22 -8
  193. package/dist/localization/package.nls.it.json +23 -9
  194. package/dist/localization/package.nls.ja.json +18 -4
  195. package/dist/localization/package.nls.ko.json +23 -9
  196. package/dist/localization/package.nls.pl.json +18 -4
  197. package/dist/localization/package.nls.pt-br.json +18 -4
  198. package/dist/localization/package.nls.qps-ploc.json +17 -3
  199. package/dist/localization/package.nls.ru.json +18 -4
  200. package/dist/localization/package.nls.tr.json +23 -9
  201. package/dist/localization/package.nls.zh-cn.json +18 -4
  202. package/dist/localization/package.nls.zh-tw.json +18 -4
  203. package/dist/parser/characters.d.ts +1 -8
  204. package/dist/parser/characters.js +6 -3
  205. package/dist/parser/characters.js.map +1 -1
  206. package/dist/parser/parseNodeUtils.d.ts +12 -0
  207. package/dist/parser/parseNodeUtils.js +136 -0
  208. package/dist/parser/parseNodeUtils.js.map +1 -0
  209. package/dist/parser/parseNodes.d.ts +12 -2
  210. package/dist/parser/parseNodes.js +17 -2
  211. package/dist/parser/parseNodes.js.map +1 -1
  212. package/dist/parser/parser.d.ts +5 -2
  213. package/dist/parser/parser.js +83 -47
  214. package/dist/parser/parser.js.map +1 -1
  215. package/dist/parser/tokenizer.d.ts +3 -3
  216. package/dist/parser/tokenizer.js +58 -38
  217. package/dist/parser/tokenizer.js.map +1 -1
  218. package/dist/parser/tokenizerTypes.d.ts +4 -3
  219. package/dist/parser/tokenizerTypes.js +4 -3
  220. package/dist/parser/tokenizerTypes.js.map +1 -1
  221. package/dist/pyright.js +1 -1
  222. package/dist/pyright.js.map +1 -1
  223. package/dist/server.js +3 -3
  224. package/dist/server.js.map +1 -1
  225. package/dist/tests/checker.test.js +2 -2
  226. package/dist/tests/common.test.js +6 -6
  227. package/dist/tests/common.test.js.map +1 -1
  228. package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js +29 -0
  229. package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js.map +1 -0
  230. package/dist/tests/fourslash/completions.declNames.method.fourslash.js +8 -8
  231. package/dist/tests/fourslash/import.pytyped.privateSymbols.fourslash.js +0 -18
  232. package/dist/tests/fourslash/import.pytyped.privateSymbols.fourslash.js.map +1 -1
  233. package/dist/tests/harness/fourslash/testState.d.ts +3 -2
  234. package/dist/tests/harness/fourslash/testState.js +9 -3
  235. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  236. package/dist/tests/lsp/languageServer.js +1 -1
  237. package/dist/tests/lsp/languageServer.js.map +1 -1
  238. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -2
  239. package/dist/tests/lsp/languageServerTestUtils.js +2 -2
  240. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  241. package/dist/tests/parser.test.js +17 -0
  242. package/dist/tests/parser.test.js.map +1 -1
  243. package/dist/tests/positionUtils.test.js +1 -1
  244. package/dist/tests/service.test.js +4 -4
  245. package/dist/tests/service.test.js.map +1 -1
  246. package/dist/tests/sourceFile.test.js +21 -4
  247. package/dist/tests/sourceFile.test.js.map +1 -1
  248. package/dist/tests/stringUtils.test.js +0 -12
  249. package/dist/tests/stringUtils.test.js.map +1 -1
  250. package/dist/tests/testStateUtils.js +8 -3
  251. package/dist/tests/testStateUtils.js.map +1 -1
  252. package/dist/tests/testUtils.js +1 -1
  253. package/dist/tests/testUtils.js.map +1 -1
  254. package/dist/tests/tokenizer.test.js +5 -5
  255. package/dist/tests/tokenizer.test.js.map +1 -1
  256. package/dist/tests/typeEvaluator1.test.js +11 -13
  257. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  258. package/dist/tests/typeEvaluator2.test.js +15 -1
  259. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  260. package/dist/tests/typeEvaluator4.test.js +16 -1
  261. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  262. package/dist/tests/typeEvaluator5.test.js +10 -4
  263. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  264. package/dist/tests/typeEvaluator6.test.js +1 -1
  265. package/dist/tests/typeEvaluator7.test.js +9 -0
  266. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  267. package/dist/tests/typeEvaluator8.test.js +8 -0
  268. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  269. package/dist/tests/workspaceEditUtils.test.js +7 -9
  270. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  271. package/dist/types.d.ts +1 -1
  272. package/dist/workspaceFactory.d.ts +12 -1
  273. package/dist/workspaceFactory.js.map +1 -1
  274. package/package.json +2 -3
  275. package/dist/tests/fourslash/rename.args.fourslash.js +0 -72
  276. package/dist/tests/fourslash/rename.args.fourslash.js.map +0 -1
  277. /package/dist/tests/fourslash/{rename.args.fourslash.d.ts → completions.autoimport.unicode.fourslash.d.ts} +0 -0
@@ -41,7 +41,6 @@ export interface AnalyzerFileInfo {
41
41
  isTypeshedStubFile: boolean;
42
42
  isBuiltInStubFile: boolean;
43
43
  isInPyTypedPackage: boolean;
44
- isModulePrivate: boolean;
45
44
  ipythonMode: IPythonMode;
46
45
  accessedSymbolSet: Set<number>;
47
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzerFileInfo.js","sourceRoot":"","sources":["../../../../../src/analyzer/analyzerFileInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA4DH,0EAmBC;AA3ED,2DAA2E;AAwD3E,SAAgB,+BAA+B,CAAC,QAA0B;IACtE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oFAAoF;IACpF,iFAAiF;IACjF,iFAAiF;IACjF,4DAA4D;IAC5D,qGAAqG;IACrG,IAAI,6BAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,EAAE,iCAAiB,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"analyzerFileInfo.js","sourceRoot":"","sources":["../../../../../src/analyzer/analyzerFileInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA2DH,0EAmBC;AA1ED,2DAA2E;AAuD3E,SAAgB,+BAA+B,CAAC,QAA0B;IACtE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oFAAoF;IACpF,iFAAiF;IACjF,iFAAiF;IACjF,4DAA4D;IAC5D,qGAAqG;IACrG,IAAI,6BAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,EAAE,iCAAiB,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -143,7 +143,7 @@ function isCodeUnreachable(node) {
143
143
  while (curNode) {
144
144
  const flowNode = getFlowNode(curNode);
145
145
  if (flowNode) {
146
- return !!(flowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable);
146
+ return (flowNode.flags & (codeFlowTypes_1.FlowFlags.UnreachableStaticCondition | codeFlowTypes_1.FlowFlags.UnreachableStructural)) !== 0;
147
147
  }
148
148
  curNode = curNode.parent;
149
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzerNodeInfo.js","sourceRoot":"","sources":["../../../../../src/analyzer/analyzerNodeInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzerNodeInfo.js","sourceRoot":"","sources":["../../../../../src/analyzer/analyzerNodeInfo.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,8 @@ export declare class Binder extends ParseTreeWalker {
29
29
  private _isInExceptSuite;
30
30
  private _isInAnnotatedAnnotation;
31
31
  private _dunderSlotsEntries;
32
- private static _unreachableFlowNode;
32
+ private static _unreachableStaticConditionFlowNode;
33
+ private static _unreachableStructuralFlowNode;
33
34
  private _potentialHiddenSymbols;
34
35
  private _potentialPrivateSymbols;
35
36
  private _codeFlowComplexity;
@@ -110,7 +110,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
110
110
  // binding the builtins module itself.
111
111
  const isBuiltInModule = this._fileInfo.builtinsScope === undefined;
112
112
  this._addTypingImportAliasesFromBuiltinsScope();
113
- const moduleScope = this._createNewScope(isBuiltInModule ? 5 /* ScopeType.Builtin */ : 4 /* ScopeType.Module */, this._fileInfo.builtinsScope,
113
+ this._createNewScope(isBuiltInModule ? 5 /* ScopeType.Builtin */ : 4 /* ScopeType.Module */, this._fileInfo.builtinsScope,
114
114
  /* proxyScope */ undefined, () => {
115
115
  AnalyzerNodeInfo.setScope(node, this._currentScope);
116
116
  AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
@@ -137,26 +137,18 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
137
137
  });
138
138
  // Perform all analysis that was deferred during the first pass.
139
139
  this._bindDeferred();
140
- if (this._fileInfo.isModulePrivate) {
141
- // All symbols in a private module are private outside of the package.
142
- moduleScope.symbolTable.forEach((symbol) => {
143
- symbol.setPrivatePyTypedImport();
144
- });
145
- }
146
- else {
147
- // Use the __all__ list to determine whether any potential private
148
- // symbols should be made externally hidden or private.
149
- this._potentialHiddenSymbols.forEach((symbol, name) => {
150
- if (!this._dunderAllNames?.some((sym) => sym === name)) {
151
- if (this._fileInfo.isStubFile) {
152
- symbol.setIsExternallyHidden();
153
- }
154
- else {
155
- symbol.setPrivatePyTypedImport();
156
- }
140
+ // Use the __all__ list to determine whether any potential private
141
+ // symbols should be made externally hidden or private.
142
+ this._potentialHiddenSymbols.forEach((symbol, name) => {
143
+ if (!this._dunderAllNames?.some((sym) => sym === name)) {
144
+ if (this._fileInfo.isStubFile) {
145
+ symbol.setIsExternallyHidden();
157
146
  }
158
- });
159
- }
147
+ else {
148
+ symbol.setPrivatePyTypedImport();
149
+ }
150
+ }
151
+ });
160
152
  this._potentialPrivateSymbols.forEach((symbol, name) => {
161
153
  if (!this._dunderAllNames?.some((sym) => sym === name)) {
162
154
  symbol.setIsPrivateMember();
@@ -873,7 +865,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
873
865
  if (this._currentContinueTarget) {
874
866
  this._addAntecedent(this._currentContinueTarget, this._currentFlowNode);
875
867
  }
876
- this._currentFlowNode = Binder._unreachableFlowNode;
868
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
877
869
  // Continue nodes don't have any children.
878
870
  return false;
879
871
  }
@@ -881,7 +873,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
881
873
  if (this._currentBreakTarget) {
882
874
  this._addAntecedent(this._currentBreakTarget, this._currentFlowNode);
883
875
  }
884
- this._currentFlowNode = Binder._unreachableFlowNode;
876
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
885
877
  // Break nodes don't have any children.
886
878
  return false;
887
879
  }
@@ -903,7 +895,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
903
895
  this._finallyTargets.forEach((target) => {
904
896
  this._addAntecedent(target, this._currentFlowNode);
905
897
  });
906
- this._currentFlowNode = Binder._unreachableFlowNode;
898
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
907
899
  return false;
908
900
  }
909
901
  visitYield(node) {
@@ -955,14 +947,16 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
955
947
  this._bindConditional(node.d.testExpr, thenLabel, elseLabel);
956
948
  // Handle the if clause.
957
949
  this._currentFlowNode =
958
- constExprValue === false ? Binder._unreachableFlowNode : this._finishFlowLabel(thenLabel);
950
+ constExprValue === false
951
+ ? Binder._unreachableStaticConditionFlowNode
952
+ : this._finishFlowLabel(thenLabel);
959
953
  this.walk(node.d.ifSuite);
960
954
  this._addAntecedent(postIfLabel, this._currentFlowNode);
961
955
  // Now handle the else clause if it's present. If there
962
956
  // are chained "else if" statements, they'll be handled
963
957
  // recursively here.
964
958
  this._currentFlowNode =
965
- constExprValue === true ? Binder._unreachableFlowNode : this._finishFlowLabel(elseLabel);
959
+ constExprValue === true ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(elseLabel);
966
960
  if (node.d.elseSuite) {
967
961
  this.walk(node.d.elseSuite);
968
962
  }
@@ -987,13 +981,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
987
981
  this._bindConditional(node.d.testExpr, thenLabel, elseLabel);
988
982
  // Handle the while clause.
989
983
  this._currentFlowNode =
990
- constExprValue === false ? Binder._unreachableFlowNode : this._finishFlowLabel(thenLabel);
984
+ constExprValue === false ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(thenLabel);
991
985
  this._bindLoopStatement(preLoopLabel, postWhileLabel, () => {
992
986
  this.walk(node.d.whileSuite);
993
987
  });
994
988
  this._addAntecedent(preLoopLabel, this._currentFlowNode);
995
989
  this._currentFlowNode =
996
- constExprValue === true ? Binder._unreachableFlowNode : this._finishFlowLabel(elseLabel);
990
+ constExprValue === true ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(elseLabel);
997
991
  if (node.d.elseSuite) {
998
992
  this.walk(node.d.elseSuite);
999
993
  }
@@ -1065,7 +1059,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1065
1059
  this._finallyTargets.forEach((target) => {
1066
1060
  this._addAntecedent(target, this._currentFlowNode);
1067
1061
  });
1068
- this._currentFlowNode = Binder._unreachableFlowNode;
1062
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
1069
1063
  return false;
1070
1064
  }
1071
1065
  visitTry(node) {
@@ -1180,7 +1174,9 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1180
1174
  antecedent: this._currentFlowNode,
1181
1175
  preFinallyGate,
1182
1176
  };
1183
- this._currentFlowNode = isAfterElseAndExceptsReachable ? postFinallyNode : Binder._unreachableFlowNode;
1177
+ this._currentFlowNode = isAfterElseAndExceptsReachable
1178
+ ? postFinallyNode
1179
+ : Binder._unreachableStructuralFlowNode;
1184
1180
  }
1185
1181
  return false;
1186
1182
  }
@@ -1862,8 +1858,14 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1862
1858
  continue;
1863
1859
  }
1864
1860
  let symbol = this._currentScope.lookUpSymbol(slotName);
1865
- if (!symbol) {
1866
- symbol = this._currentScope.addSymbol(slotName, 1 /* SymbolFlags.InitiallyUnbound */ | 4 /* SymbolFlags.ClassMember */);
1861
+ if (symbol) {
1862
+ symbol.setIsSlotsMember();
1863
+ }
1864
+ else {
1865
+ symbol = this._currentScope.addSymbol(slotName, 1 /* SymbolFlags.InitiallyUnbound */ |
1866
+ 4 /* SymbolFlags.ClassMember */ |
1867
+ 8 /* SymbolFlags.InstanceMember */ |
1868
+ 16 /* SymbolFlags.SlotsMember */);
1867
1869
  const honorPrivateNaming = this._fileInfo.diagnosticRuleSet.reportPrivateUsage !== 'none';
1868
1870
  if ((0, symbolNameUtils_1.isPrivateOrProtectedName)(slotName) && honorPrivateNaming) {
1869
1871
  symbol.setIsPrivateMember();
@@ -2213,7 +2215,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2213
2215
  _finishFlowLabel(node) {
2214
2216
  // If there were no antecedents, this is unreachable.
2215
2217
  if (node.antecedents.length === 0) {
2216
- return Binder._unreachableFlowNode;
2218
+ return Binder._unreachableStructuralFlowNode;
2217
2219
  }
2218
2220
  // If there was only one antecedent and this is a simple
2219
2221
  // branch label, there's no need for a label to exist.
@@ -2303,13 +2305,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2303
2305
  this._currentFalseTarget = savedFalseTarget;
2304
2306
  }
2305
2307
  _createFlowConditional(flags, antecedent, expression) {
2306
- if (antecedent.flags & codeFlowTypes_1.FlowFlags.Unreachable) {
2308
+ if (antecedent.flags & (codeFlowTypes_1.FlowFlags.UnreachableStructural | codeFlowTypes_1.FlowFlags.UnreachableStaticCondition)) {
2307
2309
  return antecedent;
2308
2310
  }
2309
2311
  const staticValue = StaticExpressions.evaluateStaticBoolLikeExpression(expression, this._fileInfo.executionEnvironment, this._fileInfo.definedConstants, this._typingImportAliases, this._sysImportAliases);
2310
2312
  if ((staticValue === true && flags & codeFlowTypes_1.FlowFlags.FalseCondition) ||
2311
2313
  (staticValue === false && flags & codeFlowTypes_1.FlowFlags.TrueCondition)) {
2312
- return Binder._unreachableFlowNode;
2314
+ return Binder._unreachableStaticConditionFlowNode;
2313
2315
  }
2314
2316
  const expressionList = [];
2315
2317
  if (!this._isNarrowingExpression(expression, expressionList, {
@@ -2660,7 +2662,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2660
2662
  AnalyzerNodeInfo.setAfterFlowNode(node, this._currentFlowNode);
2661
2663
  }
2662
2664
  _isCodeUnreachable() {
2663
- return !!(this._currentFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable);
2665
+ return !!(this._currentFlowNode.flags &
2666
+ (codeFlowTypes_1.FlowFlags.UnreachableStaticCondition | codeFlowTypes_1.FlowFlags.UnreachableStructural));
2664
2667
  }
2665
2668
  _addExceptTargets(flowNode) {
2666
2669
  // If there are any except targets, then we're in a try block, and we
@@ -2694,7 +2697,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2694
2697
  this._currentBreakTarget = savedBreakTarget;
2695
2698
  }
2696
2699
  _addAntecedent(label, antecedent) {
2697
- if (!(this._currentFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable)) {
2700
+ if (!(this._currentFlowNode.flags & (codeFlowTypes_1.FlowFlags.UnreachableStructural | codeFlowTypes_1.FlowFlags.UnreachableStaticCondition))) {
2698
2701
  // Don't add the same antecedent twice.
2699
2702
  if (!label.antecedents.some((existing) => existing.id === antecedent.id)) {
2700
2703
  label.antecedents.push(antecedent);
@@ -3403,8 +3406,12 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3403
3406
  }
3404
3407
  exports.Binder = Binder;
3405
3408
  // Flow node that is used for unreachable code.
3406
- Binder._unreachableFlowNode = {
3407
- flags: codeFlowTypes_1.FlowFlags.Unreachable,
3409
+ Binder._unreachableStaticConditionFlowNode = {
3410
+ flags: codeFlowTypes_1.FlowFlags.UnreachableStaticCondition,
3411
+ id: (0, codeFlowTypes_1.getUniqueFlowNodeId)(),
3412
+ };
3413
+ Binder._unreachableStructuralFlowNode = {
3414
+ flags: codeFlowTypes_1.FlowFlags.UnreachableStructural,
3408
3415
  id: (0, codeFlowTypes_1.getUniqueFlowNodeId)(),
3409
3416
  };
3410
3417
  class YieldFinder extends parseTreeWalker_1.ParseTreeWalker {