@zzzen/pyright-internal 1.2.0-dev.20250420 → 1.2.0-dev.20250803

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 (257) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +1 -1
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.d.ts +2 -1
  4. package/dist/analyzer/binder.js +33 -18
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.js +81 -44
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.js +19 -7
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/codeFlowTypes.d.ts +9 -8
  11. package/dist/analyzer/codeFlowTypes.js +9 -8
  12. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  13. package/dist/analyzer/codeFlowUtils.js +4 -2
  14. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  15. package/dist/analyzer/docStringUtils.js +3 -1
  16. package/dist/analyzer/docStringUtils.js.map +1 -1
  17. package/dist/analyzer/importStatementUtils.js +5 -3
  18. package/dist/analyzer/importStatementUtils.js.map +1 -1
  19. package/dist/analyzer/operations.js +1 -1
  20. package/dist/analyzer/operations.js.map +1 -1
  21. package/dist/analyzer/packageTypeVerifier.js +5 -3
  22. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  23. package/dist/analyzer/parameterUtils.js +10 -3
  24. package/dist/analyzer/parameterUtils.js.map +1 -1
  25. package/dist/analyzer/parseTreeUtils.d.ts +3 -4
  26. package/dist/analyzer/parseTreeUtils.js +19 -225
  27. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  28. package/dist/analyzer/patternMatching.js +4 -0
  29. package/dist/analyzer/patternMatching.js.map +1 -1
  30. package/dist/analyzer/program.d.ts +12 -2
  31. package/dist/analyzer/program.js +74 -58
  32. package/dist/analyzer/program.js.map +1 -1
  33. package/dist/analyzer/properties.js +3 -5
  34. package/dist/analyzer/properties.js.map +1 -1
  35. package/dist/analyzer/protocols.js +13 -3
  36. package/dist/analyzer/protocols.js.map +1 -1
  37. package/dist/analyzer/sentinel.d.ts +4 -0
  38. package/dist/analyzer/sentinel.js +51 -0
  39. package/dist/analyzer/sentinel.js.map +1 -0
  40. package/dist/analyzer/service.d.ts +2 -2
  41. package/dist/analyzer/service.js +7 -6
  42. package/dist/analyzer/service.js.map +1 -1
  43. package/dist/analyzer/sourceFile.d.ts +4 -0
  44. package/dist/analyzer/sourceFile.js +52 -12
  45. package/dist/analyzer/sourceFile.js.map +1 -1
  46. package/dist/analyzer/sourceFileInfo.d.ts +10 -1
  47. package/dist/analyzer/sourceFileInfo.js +28 -0
  48. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  49. package/dist/analyzer/sourceFileInfoUtils.js +4 -4
  50. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  51. package/dist/analyzer/sourceMapper.d.ts +1 -1
  52. package/dist/analyzer/sourceMapper.js +20 -20
  53. package/dist/analyzer/sourceMapper.js.map +1 -1
  54. package/dist/analyzer/symbol.d.ts +3 -0
  55. package/dist/analyzer/symbol.js +11 -0
  56. package/dist/analyzer/symbol.js.map +1 -1
  57. package/dist/analyzer/testWalker.js +2 -13
  58. package/dist/analyzer/testWalker.js.map +1 -1
  59. package/dist/analyzer/tracePrinter.js +1 -1
  60. package/dist/analyzer/tracePrinter.js.map +1 -1
  61. package/dist/analyzer/typeEvaluator.js +261 -137
  62. package/dist/analyzer/typeEvaluator.js.map +1 -1
  63. package/dist/analyzer/typeEvaluatorTypes.d.ts +8 -4
  64. package/dist/analyzer/typeEvaluatorTypes.js +15 -2
  65. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  66. package/dist/analyzer/typeGuards.js +47 -13
  67. package/dist/analyzer/typeGuards.js.map +1 -1
  68. package/dist/analyzer/typePrinter.js +10 -2
  69. package/dist/analyzer/typePrinter.js.map +1 -1
  70. package/dist/analyzer/typePrinterUtils.js +2 -2
  71. package/dist/analyzer/typePrinterUtils.js.map +1 -1
  72. package/dist/analyzer/typeUtils.d.ts +2 -0
  73. package/dist/analyzer/typeUtils.js +10 -0
  74. package/dist/analyzer/typeUtils.js.map +1 -1
  75. package/dist/analyzer/typedDicts.js +9 -5
  76. package/dist/analyzer/typedDicts.js.map +1 -1
  77. package/dist/analyzer/types.d.ts +9 -2
  78. package/dist/analyzer/types.js +39 -1
  79. package/dist/analyzer/types.js.map +1 -1
  80. package/dist/commands/dumpFileDebugInfoCommand.d.ts +96 -0
  81. package/dist/commands/dumpFileDebugInfoCommand.js +13 -2
  82. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  83. package/dist/common/cancellationUtils.d.ts +1 -1
  84. package/dist/common/cancellationUtils.js +2 -2
  85. package/dist/common/cancellationUtils.js.map +1 -1
  86. package/dist/common/charCodes.d.ts +1 -1
  87. package/dist/common/charCodes.js +1 -1
  88. package/dist/common/charCodes.js.map +1 -1
  89. package/dist/common/configOptions.d.ts +1 -0
  90. package/dist/common/configOptions.js +5 -0
  91. package/dist/common/configOptions.js.map +1 -1
  92. package/dist/common/core.d.ts +1 -3
  93. package/dist/common/core.js +3 -4
  94. package/dist/common/core.js.map +1 -1
  95. package/dist/common/diagnostic.d.ts +1 -1
  96. package/dist/common/diagnosticRules.d.ts +1 -0
  97. package/dist/common/diagnosticRules.js +1 -0
  98. package/dist/common/diagnosticRules.js.map +1 -1
  99. package/dist/common/docRange.d.ts +6 -0
  100. package/dist/common/docRange.js +10 -0
  101. package/dist/common/docRange.js.map +1 -0
  102. package/dist/common/envVarUtils.js +1 -6
  103. package/dist/common/envVarUtils.js.map +1 -1
  104. package/dist/common/extensibility.d.ts +11 -2
  105. package/dist/common/extensibility.js.map +1 -1
  106. package/dist/common/fileBasedCancellationUtils.d.ts +1 -0
  107. package/dist/common/fileBasedCancellationUtils.js +1 -0
  108. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  109. package/dist/common/logTracker.d.ts +5 -1
  110. package/dist/common/logTracker.js +43 -26
  111. package/dist/common/logTracker.js.map +1 -1
  112. package/dist/common/pathUtils.d.ts +1 -1
  113. package/dist/common/pathUtils.js +3 -2
  114. package/dist/common/pathUtils.js.map +1 -1
  115. package/dist/common/realFileSystem.d.ts +1 -1
  116. package/dist/common/realFileSystem.js +2 -1
  117. package/dist/common/realFileSystem.js.map +1 -1
  118. package/dist/common/stringUtils.d.ts +0 -1
  119. package/dist/common/stringUtils.js +0 -42
  120. package/dist/common/stringUtils.js.map +1 -1
  121. package/dist/common/textEditTracker.js +5 -3
  122. package/dist/common/textEditTracker.js.map +1 -1
  123. package/dist/common/textRange.d.ts +5 -11
  124. package/dist/common/textRange.js +31 -56
  125. package/dist/common/textRange.js.map +1 -1
  126. package/dist/common/textRangeCollection.js +3 -2
  127. package/dist/common/textRangeCollection.js.map +1 -1
  128. package/dist/common/uri/baseUri.js +2 -1
  129. package/dist/common/uri/baseUri.js.map +1 -1
  130. package/dist/common/uri/uri.d.ts +5 -2
  131. package/dist/common/uri/uri.js +21 -5
  132. package/dist/common/uri/uri.js.map +1 -1
  133. package/dist/common/uri/uriUtils.d.ts +2 -2
  134. package/dist/common/uri/uriUtils.js +4 -3
  135. package/dist/common/uri/uriUtils.js.map +1 -1
  136. package/dist/common/workspaceEditUtils.js +9 -9
  137. package/dist/common/workspaceEditUtils.js.map +1 -1
  138. package/dist/languageServerBase.d.ts +5 -3
  139. package/dist/languageServerBase.js +44 -37
  140. package/dist/languageServerBase.js.map +1 -1
  141. package/dist/languageService/analyzerServiceExecutor.d.ts +3 -0
  142. package/dist/languageService/analyzerServiceExecutor.js +1 -0
  143. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  144. package/dist/languageService/autoImporter.d.ts +2 -2
  145. package/dist/languageService/autoImporter.js +3 -3
  146. package/dist/languageService/autoImporter.js.map +1 -1
  147. package/dist/languageService/callHierarchyProvider.js +2 -3
  148. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  149. package/dist/languageService/completionProvider.js +16 -13
  150. package/dist/languageService/completionProvider.js.map +1 -1
  151. package/dist/languageService/definitionProvider.d.ts +2 -1
  152. package/dist/languageService/definitionProvider.js.map +1 -1
  153. package/dist/languageService/documentSymbolCollector.d.ts +4 -1
  154. package/dist/languageService/documentSymbolCollector.js +9 -7
  155. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  156. package/dist/languageService/hoverProvider.js +1 -9
  157. package/dist/languageService/hoverProvider.js.map +1 -1
  158. package/dist/languageService/importSorter.js +1 -0
  159. package/dist/languageService/importSorter.js.map +1 -1
  160. package/dist/languageService/navigationUtils.d.ts +1 -1
  161. package/dist/languageService/referencesProvider.d.ts +2 -1
  162. package/dist/languageService/referencesProvider.js +8 -7
  163. package/dist/languageService/referencesProvider.js.map +1 -1
  164. package/dist/languageService/renameProvider.js +4 -19
  165. package/dist/languageService/renameProvider.js.map +1 -1
  166. package/dist/languageService/tooltipUtils.d.ts +2 -0
  167. package/dist/languageService/tooltipUtils.js +2 -0
  168. package/dist/languageService/tooltipUtils.js.map +1 -1
  169. package/dist/languageService/workspaceSymbolProvider.js +1 -1
  170. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  171. package/dist/localization/localize.d.ts +12 -2
  172. package/dist/localization/localize.js +12 -2
  173. package/dist/localization/localize.js.map +1 -1
  174. package/dist/localization/package.nls.cs.json +23 -9
  175. package/dist/localization/package.nls.de.json +18 -4
  176. package/dist/localization/package.nls.en-us.json +36 -2
  177. package/dist/localization/package.nls.es.json +18 -4
  178. package/dist/localization/package.nls.fr.json +22 -8
  179. package/dist/localization/package.nls.it.json +23 -9
  180. package/dist/localization/package.nls.ja.json +18 -4
  181. package/dist/localization/package.nls.ko.json +23 -9
  182. package/dist/localization/package.nls.pl.json +18 -4
  183. package/dist/localization/package.nls.pt-br.json +18 -4
  184. package/dist/localization/package.nls.qps-ploc.json +17 -3
  185. package/dist/localization/package.nls.ru.json +18 -4
  186. package/dist/localization/package.nls.tr.json +23 -9
  187. package/dist/localization/package.nls.zh-cn.json +18 -4
  188. package/dist/localization/package.nls.zh-tw.json +18 -4
  189. package/dist/parser/characters.d.ts +1 -8
  190. package/dist/parser/characters.js +6 -3
  191. package/dist/parser/characters.js.map +1 -1
  192. package/dist/parser/parseNodeUtils.d.ts +12 -0
  193. package/dist/parser/parseNodeUtils.js +136 -0
  194. package/dist/parser/parseNodeUtils.js.map +1 -0
  195. package/dist/parser/parseNodes.d.ts +12 -2
  196. package/dist/parser/parseNodes.js +17 -2
  197. package/dist/parser/parseNodes.js.map +1 -1
  198. package/dist/parser/parser.d.ts +3 -2
  199. package/dist/parser/parser.js +54 -47
  200. package/dist/parser/parser.js.map +1 -1
  201. package/dist/parser/tokenizer.d.ts +3 -3
  202. package/dist/parser/tokenizer.js +58 -38
  203. package/dist/parser/tokenizer.js.map +1 -1
  204. package/dist/parser/tokenizerTypes.d.ts +4 -3
  205. package/dist/parser/tokenizerTypes.js +4 -3
  206. package/dist/parser/tokenizerTypes.js.map +1 -1
  207. package/dist/pyright.js +1 -1
  208. package/dist/pyright.js.map +1 -1
  209. package/dist/server.js +3 -3
  210. package/dist/server.js.map +1 -1
  211. package/dist/tests/checker.test.js +2 -2
  212. package/dist/tests/common.test.js +6 -6
  213. package/dist/tests/common.test.js.map +1 -1
  214. package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js +29 -0
  215. package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js.map +1 -0
  216. package/dist/tests/fourslash/completions.declNames.method.fourslash.js +8 -8
  217. package/dist/tests/harness/fourslash/testState.d.ts +3 -2
  218. package/dist/tests/harness/fourslash/testState.js +9 -3
  219. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  220. package/dist/tests/lsp/languageServer.js +1 -1
  221. package/dist/tests/lsp/languageServer.js.map +1 -1
  222. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -2
  223. package/dist/tests/lsp/languageServerTestUtils.js +2 -2
  224. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  225. package/dist/tests/positionUtils.test.js +1 -1
  226. package/dist/tests/service.test.js +4 -4
  227. package/dist/tests/service.test.js.map +1 -1
  228. package/dist/tests/sourceFile.test.js +19 -1
  229. package/dist/tests/sourceFile.test.js.map +1 -1
  230. package/dist/tests/stringUtils.test.js +0 -12
  231. package/dist/tests/stringUtils.test.js.map +1 -1
  232. package/dist/tests/testStateUtils.js +8 -3
  233. package/dist/tests/testStateUtils.js.map +1 -1
  234. package/dist/tests/tokenizer.test.js +5 -5
  235. package/dist/tests/tokenizer.test.js.map +1 -1
  236. package/dist/tests/typeEvaluator1.test.js +11 -13
  237. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  238. package/dist/tests/typeEvaluator2.test.js +15 -1
  239. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  240. package/dist/tests/typeEvaluator4.test.js +16 -1
  241. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  242. package/dist/tests/typeEvaluator5.test.js +9 -3
  243. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  244. package/dist/tests/typeEvaluator6.test.js +1 -1
  245. package/dist/tests/typeEvaluator7.test.js +9 -0
  246. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  247. package/dist/tests/typeEvaluator8.test.js +4 -0
  248. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  249. package/dist/tests/workspaceEditUtils.test.js +7 -9
  250. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  251. package/dist/types.d.ts +1 -1
  252. package/dist/workspaceFactory.d.ts +12 -1
  253. package/dist/workspaceFactory.js.map +1 -1
  254. package/package.json +2 -3
  255. package/dist/tests/fourslash/rename.args.fourslash.js +0 -72
  256. package/dist/tests/fourslash/rename.args.fourslash.js.map +0 -1
  257. /package/dist/tests/fourslash/{rename.args.fourslash.d.ts → completions.autoimport.unicode.fourslash.d.ts} +0 -0
@@ -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;
@@ -865,7 +865,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
865
865
  if (this._currentContinueTarget) {
866
866
  this._addAntecedent(this._currentContinueTarget, this._currentFlowNode);
867
867
  }
868
- this._currentFlowNode = Binder._unreachableFlowNode;
868
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
869
869
  // Continue nodes don't have any children.
870
870
  return false;
871
871
  }
@@ -873,7 +873,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
873
873
  if (this._currentBreakTarget) {
874
874
  this._addAntecedent(this._currentBreakTarget, this._currentFlowNode);
875
875
  }
876
- this._currentFlowNode = Binder._unreachableFlowNode;
876
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
877
877
  // Break nodes don't have any children.
878
878
  return false;
879
879
  }
@@ -895,7 +895,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
895
895
  this._finallyTargets.forEach((target) => {
896
896
  this._addAntecedent(target, this._currentFlowNode);
897
897
  });
898
- this._currentFlowNode = Binder._unreachableFlowNode;
898
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
899
899
  return false;
900
900
  }
901
901
  visitYield(node) {
@@ -947,14 +947,16 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
947
947
  this._bindConditional(node.d.testExpr, thenLabel, elseLabel);
948
948
  // Handle the if clause.
949
949
  this._currentFlowNode =
950
- constExprValue === false ? Binder._unreachableFlowNode : this._finishFlowLabel(thenLabel);
950
+ constExprValue === false
951
+ ? Binder._unreachableStaticConditionFlowNode
952
+ : this._finishFlowLabel(thenLabel);
951
953
  this.walk(node.d.ifSuite);
952
954
  this._addAntecedent(postIfLabel, this._currentFlowNode);
953
955
  // Now handle the else clause if it's present. If there
954
956
  // are chained "else if" statements, they'll be handled
955
957
  // recursively here.
956
958
  this._currentFlowNode =
957
- constExprValue === true ? Binder._unreachableFlowNode : this._finishFlowLabel(elseLabel);
959
+ constExprValue === true ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(elseLabel);
958
960
  if (node.d.elseSuite) {
959
961
  this.walk(node.d.elseSuite);
960
962
  }
@@ -979,13 +981,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
979
981
  this._bindConditional(node.d.testExpr, thenLabel, elseLabel);
980
982
  // Handle the while clause.
981
983
  this._currentFlowNode =
982
- constExprValue === false ? Binder._unreachableFlowNode : this._finishFlowLabel(thenLabel);
984
+ constExprValue === false ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(thenLabel);
983
985
  this._bindLoopStatement(preLoopLabel, postWhileLabel, () => {
984
986
  this.walk(node.d.whileSuite);
985
987
  });
986
988
  this._addAntecedent(preLoopLabel, this._currentFlowNode);
987
989
  this._currentFlowNode =
988
- constExprValue === true ? Binder._unreachableFlowNode : this._finishFlowLabel(elseLabel);
990
+ constExprValue === true ? Binder._unreachableStaticConditionFlowNode : this._finishFlowLabel(elseLabel);
989
991
  if (node.d.elseSuite) {
990
992
  this.walk(node.d.elseSuite);
991
993
  }
@@ -1057,7 +1059,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1057
1059
  this._finallyTargets.forEach((target) => {
1058
1060
  this._addAntecedent(target, this._currentFlowNode);
1059
1061
  });
1060
- this._currentFlowNode = Binder._unreachableFlowNode;
1062
+ this._currentFlowNode = Binder._unreachableStructuralFlowNode;
1061
1063
  return false;
1062
1064
  }
1063
1065
  visitTry(node) {
@@ -1172,7 +1174,9 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1172
1174
  antecedent: this._currentFlowNode,
1173
1175
  preFinallyGate,
1174
1176
  };
1175
- this._currentFlowNode = isAfterElseAndExceptsReachable ? postFinallyNode : Binder._unreachableFlowNode;
1177
+ this._currentFlowNode = isAfterElseAndExceptsReachable
1178
+ ? postFinallyNode
1179
+ : Binder._unreachableStructuralFlowNode;
1176
1180
  }
1177
1181
  return false;
1178
1182
  }
@@ -1854,8 +1858,14 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1854
1858
  continue;
1855
1859
  }
1856
1860
  let symbol = this._currentScope.lookUpSymbol(slotName);
1857
- if (!symbol) {
1858
- 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 */);
1859
1869
  const honorPrivateNaming = this._fileInfo.diagnosticRuleSet.reportPrivateUsage !== 'none';
1860
1870
  if ((0, symbolNameUtils_1.isPrivateOrProtectedName)(slotName) && honorPrivateNaming) {
1861
1871
  symbol.setIsPrivateMember();
@@ -2205,7 +2215,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2205
2215
  _finishFlowLabel(node) {
2206
2216
  // If there were no antecedents, this is unreachable.
2207
2217
  if (node.antecedents.length === 0) {
2208
- return Binder._unreachableFlowNode;
2218
+ return Binder._unreachableStructuralFlowNode;
2209
2219
  }
2210
2220
  // If there was only one antecedent and this is a simple
2211
2221
  // branch label, there's no need for a label to exist.
@@ -2295,13 +2305,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2295
2305
  this._currentFalseTarget = savedFalseTarget;
2296
2306
  }
2297
2307
  _createFlowConditional(flags, antecedent, expression) {
2298
- if (antecedent.flags & codeFlowTypes_1.FlowFlags.Unreachable) {
2308
+ if (antecedent.flags & (codeFlowTypes_1.FlowFlags.UnreachableStructural | codeFlowTypes_1.FlowFlags.UnreachableStaticCondition)) {
2299
2309
  return antecedent;
2300
2310
  }
2301
2311
  const staticValue = StaticExpressions.evaluateStaticBoolLikeExpression(expression, this._fileInfo.executionEnvironment, this._fileInfo.definedConstants, this._typingImportAliases, this._sysImportAliases);
2302
2312
  if ((staticValue === true && flags & codeFlowTypes_1.FlowFlags.FalseCondition) ||
2303
2313
  (staticValue === false && flags & codeFlowTypes_1.FlowFlags.TrueCondition)) {
2304
- return Binder._unreachableFlowNode;
2314
+ return Binder._unreachableStaticConditionFlowNode;
2305
2315
  }
2306
2316
  const expressionList = [];
2307
2317
  if (!this._isNarrowingExpression(expression, expressionList, {
@@ -2652,7 +2662,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2652
2662
  AnalyzerNodeInfo.setAfterFlowNode(node, this._currentFlowNode);
2653
2663
  }
2654
2664
  _isCodeUnreachable() {
2655
- return !!(this._currentFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable);
2665
+ return !!(this._currentFlowNode.flags &
2666
+ (codeFlowTypes_1.FlowFlags.UnreachableStaticCondition | codeFlowTypes_1.FlowFlags.UnreachableStructural));
2656
2667
  }
2657
2668
  _addExceptTargets(flowNode) {
2658
2669
  // If there are any except targets, then we're in a try block, and we
@@ -2686,7 +2697,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2686
2697
  this._currentBreakTarget = savedBreakTarget;
2687
2698
  }
2688
2699
  _addAntecedent(label, antecedent) {
2689
- if (!(this._currentFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable)) {
2700
+ if (!(this._currentFlowNode.flags & (codeFlowTypes_1.FlowFlags.UnreachableStructural | codeFlowTypes_1.FlowFlags.UnreachableStaticCondition))) {
2690
2701
  // Don't add the same antecedent twice.
2691
2702
  if (!label.antecedents.some((existing) => existing.id === antecedent.id)) {
2692
2703
  label.antecedents.push(antecedent);
@@ -3395,8 +3406,12 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3395
3406
  }
3396
3407
  exports.Binder = Binder;
3397
3408
  // Flow node that is used for unreachable code.
3398
- Binder._unreachableFlowNode = {
3399
- 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,
3400
3415
  id: (0, codeFlowTypes_1.getUniqueFlowNodeId)(),
3401
3416
  };
3402
3417
  class YieldFinder extends parseTreeWalker_1.ParseTreeWalker {