[3.13] gh-120449: fix `test_pyclbr` introspection for mangled names (GH-120450) (GH-120700)

gh-120449: fix ``test_pyclbr`` introspection for mangled names (GH-120450)
(cherry picked from commit d8cd0fa4e3)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2024-06-19 09:20:09 +02:00 committed by GitHub
parent 39c3f11f25
commit d65e145f9d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 75 additions and 17 deletions

View file

@ -12,17 +12,19 @@ class B (object):
def bm(self): pass
class C (B):
foo = Other().foo
om = Other.om
d = 10
# XXX: This causes test_pyclbr.py to fail, but only because the
# introspection-based is_method() code in the test can't
# distinguish between this and a genuine method function like m().
# The pyclbr.py module gets this right as it parses the text.
# This one is correctly considered by both test_pyclbr.py and pyclbr.py
# as a non-method of C.
foo = Other().foo
# This causes test_pyclbr.py to fail, but only because the
# introspection-based is_method() code in the test can't
# distinguish between this and a genuine method function like m().
#
#f = f
# The pyclbr.py module gets this right as it parses the text.
om = Other.om
f = f
def m(self): pass
@ -31,3 +33,53 @@ class C (B):
@classmethod
def cm(self): pass
# Check that mangling is correctly handled
class a:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass
class _:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass
class __:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass
class ___:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass
class _a:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass
class __a:
def a(self): pass
def _(self): pass
def _a(self): pass
def __(self): pass
def ___(self): pass
def __a(self): pass