[pypy-commit] pypy bitstring: Make sure we don't build new EffectInfo instances after
arigo
pypy.commits at gmail.com
Tue Apr 26 17:04:54 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: bitstring
Changeset: r83921:36636c9ac7e4
Date: 2016-04-26 23:01 +0200
http://bitbucket.org/pypy/pypy/changeset/36636c9ac7e4/
Log: Make sure we don't build new EffectInfo instances after
compute_bitstrings() is called (it would fail translation if we do)
diff --git a/rpython/annotator/test/test_annrpython.py b/rpython/annotator/test/test_annrpython.py
--- a/rpython/annotator/test/test_annrpython.py
+++ b/rpython/annotator/test/test_annrpython.py
@@ -4577,6 +4577,13 @@
with py.test.raises(AnnotatorError):
a.build_types(f, [float])
+ def test_Ellipsis_not_rpython(self):
+ def f():
+ return Ellipsis
+ a = self.RPythonAnnotator()
+ e = py.test.raises(Exception, a.build_types, f, [])
+ assert str(e.value) == "Don't know how to represent Ellipsis"
+
def g(n):
return [0, 1, 2, n]
diff --git a/rpython/jit/codewriter/effectinfo.py b/rpython/jit/codewriter/effectinfo.py
--- a/rpython/jit/codewriter/effectinfo.py
+++ b/rpython/jit/codewriter/effectinfo.py
@@ -167,6 +167,16 @@
result._write_descrs_fields = write_descrs_fields
result._write_descrs_arrays = write_descrs_arrays
result._write_descrs_interiorfields = write_descrs_interiorfields
+ # initialized later, in compute_bitstrings()
+ # (the goal of this is to make sure we don't build new EffectInfo
+ # instances after compute_bitstrings() is called)
+ result.bitstring_readonly_descrs_fields = Ellipsis
+ result.bitstring_readonly_descrs_arrays = Ellipsis
+ result.bitstring_readonly_descrs_interiorfields = Ellipsis
+ result.bitstring_write_descrs_fields = Ellipsis
+ result.bitstring_write_descrs_arrays = Ellipsis
+ result.bitstring_write_descrs_interiorfields = Ellipsis
+ #
result.extraeffect = extraeffect
result.can_invalidate = can_invalidate
result.oopspecindex = oopspecindex
More information about the pypy-commit
mailing list