Skip to content

Refactor operator method access and protocol checks to use checkmember.py #5136

Closed

Description

@ilevkivskyi

Currently code that checks access to dunder operator methods duplicates code in checkmember.py. Apart from code duplication, the code for operators is more simplistic and doesn't cover some corner cases. A similar situation is with accessing attributes for protocol checks.

The common pattern in both cases is that we need almost the same logic as in checkmember.py, but with some steps skipped and error reporting suppressed.

Activity

  1. JukkaL commented on Jun 4, 2018

    @JukkaL
    Collaborator

    One concrete difference is that operator methods on type objects (as opposed to instances) have different semantics -- they can't generally be defined as class/static methods (and there's __class_getitem__ in Python 3.7).

  2. Michael0x2a commented on Aug 16, 2018

    @Michael0x2a
    Collaborator

    Just to add some extra details/clues: I tried removing that call in my recent operators refactor, and it ended up breaking the pythoneval.testMetaclassOpAccessAny test case to fail -- I added a TODO about this to the relevant section of the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions