@@ -1808,6 +1808,27 @@ def binary_subscr_dict():
18081808 self .assert_specialized (binary_subscr_dict , "BINARY_OP_SUBSCR_DICT" )
18091809 self .assert_no_opcode (binary_subscr_dict , "BINARY_OP" )
18101810
1811+ def binary_subscr_frozen_dict ():
1812+ for _ in range (_testinternalcapi .SPECIALIZATION_THRESHOLD ):
1813+ a = frozendict ({1 : 2 , 2 : 3 })
1814+ self .assertEqual (a [1 ], 2 )
1815+ self .assertEqual (a [2 ], 3 )
1816+
1817+ binary_subscr_frozen_dict ()
1818+ self .assert_specialized (binary_subscr_frozen_dict , "BINARY_OP_SUBSCR_FROZEN_DICT" )
1819+ self .assert_no_opcode (binary_subscr_frozen_dict , "BINARY_OP" )
1820+
1821+ def binary_subscr_frozen_dict_subclass ():
1822+ class MyFrozenDict (frozendict ):
1823+ pass
1824+ for _ in range (_testinternalcapi .SPECIALIZATION_THRESHOLD ):
1825+ a = MyFrozenDict ({1 : 2 , 2 : 3 })
1826+ self .assertEqual (a [1 ], 2 )
1827+ self .assertEqual (a [2 ], 3 )
1828+
1829+ binary_subscr_frozen_dict_subclass ()
1830+ self .assert_no_opcode (binary_subscr_frozen_dict_subclass , "BINARY_OP_SUBSCR_FROZEN_DICT" )
1831+
18111832 def binary_subscr_str_int ():
18121833 for _ in range (_testinternalcapi .SPECIALIZATION_THRESHOLD ):
18131834 a = "foobar"
0 commit comments