github / github/codeql

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

Ouverte
#7,256 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
false-positive not security Python
Langage dominant
CodeQL
Étoiles
10.1k
Forks
2.1k
Merge moyen
2 j 15 h
PR mergées (30 j)
141

Description

**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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.