self.assert_specialized(binary_subscr_str_int, "BINARY_OP_SUBSCR_STR_INT")
self.assert_no_opcode(binary_subscr_str_int, "BINARY_OP")
+ def binary_subscr_str_int_non_compact():
+ for _ in range(_testinternalcapi.SPECIALIZATION_THRESHOLD):
+ a = "바이트코드_특수화"
+ for idx, expected in enumerate(a):
+ self.assertEqual(a[idx], expected)
+
+ binary_subscr_str_int_non_compact()
+ self.assert_no_opcode(binary_subscr_str_int_non_compact, "BINARY_OP_SUBSCR_STR_INT")
+
def binary_subscr_getitems():
class C:
def __init__(self, val):
specialize(instr, BINARY_OP_SUBSCR_TUPLE_INT);
return;
}
- if (PyUnicode_CheckExact(lhs)) {
+ if (PyUnicode_CheckExact(lhs) && PyUnicode_IS_COMPACT_ASCII(lhs)) {
specialize(instr, BINARY_OP_SUBSCR_STR_INT);
return;
}