This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Dennis Sweeney
Recipients Dennis Sweeney, thepabloaguilar
Date 2021-07-13.06:16:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1626157008.62.0.56821873159.issue44617@roundup.psfhosted.org>
In-reply-to
Content
This code...

    match my_maybe:
        case Maybe.empty:
            print('FIRST CASE')
        case _:
            print('DEFAULT CASE')

... is roughly equivalent to this code:

    if my_maybe == Maybe.empty:
        print('FIRST CASE')
    case _:
        print('DEFAULT CASE')


I don't think this is a bug in the match/case compiler, I think it's simply a matter of how Maybe() == Maybe() evaluates. Since your __new__ code always returns the same object, Maybe() == Maybe() will return True. But by default, each Maybe() call constructs a new instance that won't be equal to any others.
History
Date User Action Args
2021-07-13 06:16:48Dennis Sweeneysetrecipients: + Dennis Sweeney, thepabloaguilar
2021-07-13 06:16:48Dennis Sweeneysetmessageid: <1626157008.62.0.56821873159.issue44617@roundup.psfhosted.org>
2021-07-13 06:16:48Dennis Sweeneylinkissue44617 messages
2021-07-13 06:16:48Dennis Sweeneycreate