from typing import reveal_type, Final, Literal
asdf: Final = False
reveal_type(asdf) # revealed type: Literal[False]
if asdf:
foo = 1
else:
foo = 2
reveal_type(foo) # revealed type: Literal[1, 2] (wrong)
if False:
bar = 1
else:
bar = 2
reveal_type(bar) # revealed type: Literal[2] (correct)
Describe the Bug
Python: 3.14
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN2UYANxiooAfSbEYAGjoAxVmLkAZCAxiUxAHXS7UcTGEQKlUOgF4FYuDF2CRYycxgAKA0YCUdAMQDhorCYjC4mahpaUADa8jYwALq6uhBgdB7GunRZdGC4uJZ0AIy6MFC2iJnZuflWAExJ6A6BztKu1d5%2BTWIwwVIwYeqaYlGFcrXxdK4A7tTsng0p1mX9lVnYqJQFxeil5at065t1DV0Sfa6HHf6OQSHSAxHD45MAxryCLwzz6CAyIGSCMBQUiEBi0KAUMgMAAWuHQAFoRJQ4BA4QVtCAAMyEQoAFgxuiimmoyMSWBgxA%2BqA0wSsGOJvAxdGS3CgEBe6nhqGwcAYWk%2B8JeUAMcHRIAZlAJ6C4xDZHIY8JlvH4dPFlBJTJZsvZ6mB8MwMEgO0wXIYfIg2AArhoxRKpTQIHAUex4XBcJbKC8YLb1YyQLp0HD4TB8NDUJbeRARPCaNSXtCfRr-ehAwrBABHS0QQQmgDWMFIXJeXqdib9ulw0gRlvQxFQL1zrA4qrtIGZjR6NcwGAVLwMKuZaqT7ZzXZ7grhmHUqPQZclbd0NZ2JbQlELb24G0daJbvvn7aXMBXG0LfQn6CRKJ3g9bB479bD2Fgc816Brggf3NgMbj0MFBm9Xdh0XDs3SgIQvxgfUu00LkoHMIC-TvPoTSVPgXwXN831sVC2EDQQMPbCDKAgDAvRjR1YwYeNCOSC8xAgE0DTeLQwSOG89wxEAAF8-nrBgoxgRRYAoNAsDwIgyB4oA
(Only applicable for extension issues) IDE Information
No response