github / github/codeql

LGTM.com - false positive: py/unreachable-statement after context manager with while True loop

未關閉
#7,256 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
false-positive not security Python
主要語言
CodeQL
星號
10.1k
分支
2.1k
平均合併
2 天 15 小時
30 天內合併 PR
141

描述

**Description of the false positive**

The code looks like this:

```python
with trio.CancelScope() as cscope:
task_status.started(cscope)

while True:
# ...
await trio.sleep(0.5)

do_more_things() # This code is marked as unreachable
```

A trio `Cancelled` exception is expected to break out of the loop, and then be caught by the `CancelScope` being used as a context manager. Trio's `CancelScope` is also used to build other context managers like `with trio.move_on_after(5):`, which implements a timeout by raising a `Cancelled` error and then catching it.

See also the discussion on #2351 - it's not only `contextlib.suppress` that can catch exceptions.

**URL to the alert on the project page on LGTM.com**

https://lgtm.com/projects/g/European-XFEL/sfollow/snapshot/2b50fa3bd622a5ed2dd5bf12948cee0174d55faa/files/sfollow/sfollow.py?sort=name&dir=ASC&mode=heatmap#x7fd2565924064ca:1

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。