You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected behavior
This should pass but not give a false positive: test.py:9:11 Uninitialized local [61]: Local variable `my_none` is undefined, or not always defined.
Logs
$ pyre check
ƛ Found 1 type error!
test.py:9:11 Uninitialized local [61]: Local variable `my_none` is undefined, or not always defined.
Hey @WangGithubUser, thanks for reporting this! I didn't know that for-else loops were a thing until now, it's a cool feature of the language!
As a quick debugging check, I tried doing a similar setup with an if statement, and it looks like the issue doesn't appear there. My guess is that we have an issue with our control flow graph around for-else statements. I'll add this task to our backlog and we'll take a look.
The error you're seeing is because Pyre isn't sure if the variable my_none is always set before it's used. To fix this error i would suggest you to initialize my_none before the loop:
from random import randint
def foo() -> None:
my_none = None # Initialize it here
for i in range(randint(1, 10)):
if i % 5 == 0:
my_none = None
break
else:
return None
return my_none
Pyre Bug
Bug description
Pyre doesn't understand meaning of for-else.
Reproduction steps
Run pyre-check with following script:
Expected behavior
This should pass but not give a false positive:
test.py:9:11 Uninitialized local [61]: Local variable `my_none` is undefined, or not always defined.
Logs
pyre_rage.log
The text was updated successfully, but these errors were encountered: