Author: Armin Rigo <[email protected]>
Branch:
Changeset: r2374:be44fd9b3554
Date: 2015-11-06 18:36 +0100
http://bitbucket.org/cffi/cffi/changeset/be44fd9b3554/
Log: Give a warning instead of crashing; in this way we can call the next
release 1.3.1 as planned and give some advance warning to users
relying on this.
diff --git a/cffi/model.py b/cffi/model.py
--- a/cffi/model.py
+++ b/cffi/model.py
@@ -519,10 +519,12 @@
smallest_value = min(self.enumvalues)
largest_value = max(self.enumvalues)
else:
- raise api.CDefError("%r has no values explicitly defined: "
- "refusing to guess which integer type it is "
- "meant to be (unsigned/signed, int/long)"
- % self._get_c_name())
+ import warnings
+ warnings.warn("%r has no values explicitly defined; next version "
+ "will refuse to guess which integer type it is "
+ "meant to be (unsigned/signed, int/long)"
+ % self._get_c_name())
+ smallest_value = largest_value = 0
if smallest_value < 0: # needs a signed type
sign = 1
candidate1 = PrimitiveType("int")
diff --git a/testing/cffi0/backend_tests.py b/testing/cffi0/backend_tests.py
--- a/testing/cffi0/backend_tests.py
+++ b/testing/cffi0/backend_tests.py
@@ -1351,6 +1351,9 @@
def test_opaque_enum(self):
ffi = FFI(backend=self.Backend())
ffi.cdef("enum foo;")
+ from cffi import __version_info__
+ if __version_info__ < (1, 4):
+ py.test.skip("re-enable me in version 1.4")
e = py.test.raises(CDefError, ffi.cast, "enum foo", -1)
assert str(e.value) == (
"'enum foo' has no values explicitly defined: refusing to guess "
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit