Skip to content

0.981 @classmethod and @property can no longer be chained #13746

Closed as not planned
@bzoracler

Description

@bzoracler

Class properties were introduced in Python 3.9, and used to be unanalysed in 0.971:

# mypy 0.971
class A:
    @property
    @classmethod
    def bad_class_property(cls) -> int:  # No mypy error
        return 8
    @classmethod
    @property
    def good_class_property(cls) -> int:  # No mypy error
        return 8
>>> A.bad_class_property
 <property at 0x...>
>>> A.good_class_property
8

Now, we have

# mypy 0.981
class A:
    @classmethod  # Only instance methods can be decorated with @property [misc]
    @property
    def good_class_property(cls) -> int:
        return 8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions