示例#1
0
def register_type(type_):
    from pypy.objspace.std.stdtypedef import multimethods_defined_on
    
    for mm, is_local in multimethods_defined_on(type_.original):
        if not mm.name.startswith('__'):
            install_mm_trampoline(type_, mm, is_local)
            if is_special_doublearg(mm, type_):
                install_mm_special(type_, mm, is_local)
示例#2
0
 def test_multimethods_defined_on(self):
     from pypy.objspace.std.stdtypedef import multimethods_defined_on
     from pypy.objspace.std.listobject import W_ListObject
     res = multimethods_defined_on(W_ListObject)
     res = [(m.name, local) for (m, local) in res]
     assert ('add', False) in res
     assert ('lt', False) in res
     assert ('setitem', False) in res
     assert ('mod', False) not in res
     assert ('pop', True) in res
     assert ('reverse', True) in res
     assert ('popitem', True) not in res
示例#3
0
 def test_multimethods_defined_on(self):
     from pypy.objspace.std.stdtypedef import multimethods_defined_on
     from pypy.objspace.std.listobject import W_ListObject
     res = multimethods_defined_on(W_ListObject)
     res = [(m.name, local) for (m, local) in res]
     assert ('add', False) in res
     assert ('lt', False) in res
     assert ('setitem', False) in res
     assert ('mod', False) not in res
     assert ('pop', True) in res
     assert ('reverse', True) in res
     assert ('popitem', True) not in res
示例#4
0
    def test_multimethods_defined_on(self):
        from pypy.objspace.std.stdtypedef import multimethods_defined_on
        from pypy.objspace.std.listobject import W_ListObject

        res = multimethods_defined_on(W_ListObject)
        res = [(m.name, local) for (m, local) in res]
        assert ("add", False) in res
        assert ("lt", False) in res
        assert ("setitem", False) in res
        assert ("mod", False) not in res
        assert ("pop", True) in res
        assert ("reverse", True) in res
        assert ("popitem", True) not in res