It means "I can't prove it matches". This should be clear from the spec already (it's an important point actually, since it means type checkers cannot narrow in an else clause). So please don't file a PR to "add" this.

On Thu, Feb 11, 2021 at 11:49 AM Jim J. Jewett <> wrote:
If a TypeGuard returns false, does that mean "it doesn't match", or just "I can't prove it matches, but it still might"?  That seems relevant to the else clause ... and seems to have changed since the last version I looked at.

Python-Dev mailing list --
To unsubscribe send an email to
Message archived at
Code of Conduct:

--Guido van Rossum (
Pronouns: he/him (why is my pronoun here?)