New submission from Joël Bourgault <joel.bourga...@gmail.com>: While testing the `match...case` construction, I get the following behavior with Docker image Python 3.10 rc2-slim:
```python >>> match "robert": ... case x if len(x) > 10: ... print("long nom") ... case [0, y]: ... print("point à x nul") ... case _: ... print("nothing interesting") ... nothing interesting >>> x # assigned, since matched, even if 'guarded-out' 'robert' >>> y # not assigned, because not matched Traceback (most recent call last): ... NameError: name 'y' is not defined >>> _ # normally not assigned, but we get a value?? 😱 'robert' >>> del _ # but the variable does not even exist!?!?!? 😱😱😱 Traceback (most recent call last): ... NameError: name '_' is not defined ``` Moreover, if we continue working in the same session by assigning `_` explicitly and playing with `case _`, we don't get any weird behavior anymore, and `_` behaves as a normal variable. So it seems to me that there is some weird corner case here, that should be adressed. ---------- messages: 402884 nosy: ojob priority: normal severity: normal status: open title: unexpected behavior on first match case _ type: behavior versions: Python 3.10 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue45323> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com