gh-115999: Update test_opcache to test with nested method (gh-128166)

gh-115999: Update test_opcace to test with nested method
This commit is contained in:
Donghee Na 2024-12-24 02:08:34 +09:00 committed by GitHub
parent 180d417e9f
commit c5b0c90b62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 10 deletions

View File

@ -606,7 +606,7 @@ def assert_races_do_not_crash(
for writer in writers: for writer in writers:
writer.join() writer.join()
@requires_specialization @requires_specialization_ft
def test_binary_subscr_getitem(self): def test_binary_subscr_getitem(self):
def get_items(): def get_items():
class C: class C:
@ -1242,14 +1242,6 @@ def f(o, n):
f(test_obj, 1) f(test_obj, 1)
self.assertEqual(test_obj.b, 0) self.assertEqual(test_obj.b, 0)
# gh-127274: BINARY_SUBSCR_GETITEM will only cache __getitem__ methods that
# are deferred. We only defer functions defined at the top-level.
class CGetItem:
def __init__(self, val):
self.val = val
def __getitem__(self, item):
return self.val
class TestSpecializer(TestBase): class TestSpecializer(TestBase):
@ -1592,7 +1584,13 @@ def binary_subscr_str_int():
self.assert_no_opcode(binary_subscr_str_int, "BINARY_SUBSCR") self.assert_no_opcode(binary_subscr_str_int, "BINARY_SUBSCR")
def binary_subscr_getitems(): def binary_subscr_getitems():
items = [CGetItem(i) for i in range(100)] class C:
def __init__(self, val):
self.val = val
def __getitem__(self, item):
return self.val
items = [C(i) for i in range(100)]
for i in range(100): for i in range(100):
self.assertEqual(items[i][i], i) self.assertEqual(items[i][i], i)