예제 #1
0
 def get_generator_type(self, typdict, retty):
     gi = self.generator_info
     arg_types = [None] * len(self.arg_names)
     for index, name in self.arg_names.items():
         arg_types[index] = typdict[name]
     state_types = [typdict[var_name] for var_name in gi.state_vars]
     yield_types = [typdict[y.inst.value.name] for y in gi.get_yield_points()]
     if not yield_types:
         raise TypingError("Cannot type generator: it does not yield any value")
     yield_type = self.context.unify_types(*yield_types)
     return types.Generator(self.py_func, yield_type, arg_types, state_types,
                            has_finalizer=True)
예제 #2
0
class TestGeneratorModel(test_factory()):
    fe_type = types.Generator(gen_func=None,
                              yield_type=types.int32,
                              arg_types=[types.int64, types.float32],
                              state_types=[types.intp, types.intp[::1]],
                              has_finalizer=False)