Author: Raffael Tfirst <[email protected]>
Branch: py3.5-async
Changeset: r85724:aa5fb74bcfd2
Date: 2016-07-15 19:47 +0200
http://bitbucket.org/pypy/pypy/changeset/aa5fb74bcfd2/
Log: Define function with coroutine flag as coroutine
diff --git a/pypy/interpreter/pycode.py b/pypy/interpreter/pycode.py
--- a/pypy/interpreter/pycode.py
+++ b/pypy/interpreter/pycode.py
@@ -12,7 +12,7 @@
from pypy.interpreter.gateway import unwrap_spec
from pypy.interpreter.astcompiler.consts import (
CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS, CO_NESTED,
- CO_GENERATOR, CO_KILL_DOCSTRING, CO_YIELD_INSIDE_TRY)
+ CO_GENERATOR, CO_COROUTINE, CO_KILL_DOCSTRING, CO_YIELD_INSIDE_TRY)
from pypy.tool import dis3
from pypy.tool.stdlib_opcode import opcodedesc, HAVE_ARGUMENT
from rpython.rlib.rarithmetic import intmask
diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -243,6 +243,9 @@
if self.getcode().co_flags & pycode.CO_GENERATOR:
from pypy.interpreter.generator import GeneratorIterator
return self.space.wrap(GeneratorIterator(self))
+ elif self.getcode().co_flags & pycode.CO_COROUTINE:
+ from pypy.interpreter.generator import Coroutine
+ return self.space.wrap(Coroutine(self))
else:
return self.execute_frame()
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -798,7 +798,7 @@
assert not GeneratorIterator.typedef.acceptable_as_base_class # no __new__
Coroutine.typedef = TypeDef("coroutine",
- __repr__ = interp2app(GeneratorIterator.descr__repr__),
+ __repr__ = interp2app(Coroutine.descr__repr__),
__reduce__ = interp2app(GeneratorIterator.descr__reduce__),
__setstate__ = interp2app(GeneratorIterator.descr__setstate__),
__next__ = interp2app(GeneratorIterator.descr_next,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit