113f00a9ab
Instead of assuming that the method is a bytecode object, and only supporting load of __name__, make the operation generic by delegating the load to the method object itself. Saves a bit of code size and fixes the case of attempting to load __name__ on a native method, see issue #4028.
25 lines
456 B
Python
25 lines
456 B
Python
def Fun():
|
|
pass
|
|
|
|
class A:
|
|
def __init__(self):
|
|
pass
|
|
def Fun(self):
|
|
pass
|
|
|
|
try:
|
|
print(Fun.__name__)
|
|
print(A.__init__.__name__)
|
|
print(A.Fun.__name__)
|
|
print(A().Fun.__name__)
|
|
except AttributeError:
|
|
print('SKIP')
|
|
raise SystemExit
|
|
|
|
# __name__ of a bound native method is not implemented in uPy
|
|
# the test here is to make sure it doesn't crash
|
|
try:
|
|
str((1).to_bytes.__name__)
|
|
except AttributeError:
|
|
pass
|