Skip to content

Commit 6feb117

Browse files
add type assertions
1 parent 1c6b354 commit 6feb117

File tree

5 files changed

+22
-2
lines changed

5 files changed

+22
-2
lines changed

Modules/_testinternalcapi/test_cases.c.h

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/bytecodes.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,7 @@ dummy_func(
12481248
tier2 op(_BINARY_OP_SUBSCR_DICT_KNOWN_HASH, (dict_st, sub_st, hash/4 -- res, ds, ss)) {
12491249
PyObject *sub = PyStackRef_AsPyObjectBorrow(sub_st);
12501250
PyObject *dict = PyStackRef_AsPyObjectBorrow(dict_st);
1251+
assert(PyAnyDict_Check(dict));
12511252
assert(Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript);
12521253
STAT_INC(BINARY_OP, hit);
12531254
PyObject *res_o = _PyDict_SubscriptKnownHash(dict, sub, (Py_hash_t)hash);
@@ -1263,7 +1264,8 @@ dummy_func(
12631264
op(_BINARY_OP_SUBSCR_DICT, (dict_st, sub_st -- res, ds, ss)) {
12641265
PyObject *sub = PyStackRef_AsPyObjectBorrow(sub_st);
12651266
PyObject *dict = PyStackRef_AsPyObjectBorrow(dict_st);
1266-
1267+
assert(PyAnyDict_Check(dict));
1268+
assert(Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript);
12671269
STAT_INC(BINARY_OP, hit);
12681270
PyObject *res_o = _PyDict_Subscript(dict, sub);
12691271
if (res_o == NULL) {
@@ -1386,7 +1388,8 @@ dummy_func(
13861388

13871389
op(_STORE_SUBSCR_DICT, (value, dict_st, sub -- st)) {
13881390
PyObject *dict = PyStackRef_AsPyObjectBorrow(dict_st);
1389-
1391+
assert(PyDict_Check(dict));
1392+
assert(Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript);
13901393
STAT_INC(STORE_SUBSCR, hit);
13911394
int err = _PyDict_SetItem_Take2((PyDictObject *)dict,
13921395
PyStackRef_AsPyObjectSteal(sub),
@@ -1401,6 +1404,7 @@ dummy_func(
14011404

14021405
tier2 op(_STORE_SUBSCR_DICT_KNOWN_HASH, (value, dict_st, sub, hash/4 -- st)) {
14031406
PyObject *dict = PyStackRef_AsPyObjectBorrow(dict_st);
1407+
assert(PyDict_Check(dict));
14041408
assert(Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript);
14051409
STAT_INC(STORE_SUBSCR, hit);
14061410
int err = _PyDict_SetItem_Take2_KnownHash((PyDictObject *)dict,

Python/executor_cases.c.h

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/optimizer_cases.c.h

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)