def _opaque_call(self, query, continuation): from pypy.lang.prolog.builtin import builtins signature = query.signature builtin = builtins.get(signature, None) if builtin is not None: return builtin.call(self, query, continuation) # do a real call return self.user_call(query, continuation, choice_point=False)
def _call(self, query, continuation): signature = query.signature from pypy.lang.prolog.builtin import builtins builtins = hint(builtins, deepfreeze=True) signature = hint(signature, promote=True) for bsig, builtin in unrolling_builtins: if signature == bsig: return builtin.call(self, query, continuation) return self.user_call(query, continuation, choice_point=False)