Author: Arianna Avanzini <avanzini.aria...@gmail.com>
Branch: rpython-sprint
Changeset: r93992:737e0369f12e
Date: 2018-03-18 18:48 +0100
http://bitbucket.org/pypy/pypy/changeset/737e0369f12e/

Log:    Remove check added in last commit.

        Check was about disallowing annotation of iterable objects with zero
        length. Annotation is also used by marshalling, where having zero
        length iterables is accepted.

diff --git a/rpython/annotator/signature.py b/rpython/annotator/signature.py
--- a/rpython/annotator/signature.py
+++ b/rpython/annotator/signature.py
@@ -43,12 +43,11 @@
     try:
         _ = iter(t)
     except TypeError:  # if it's not an iterable, just return
-        return t
-    if len(t) == 0:
-        raise ValueError("Cannot handle empty %s in args enforcing", type(t))
-    if isinstance(t, tuple) or len(t) == 1:  # we accept tuples with len > 1 
because
-        return t                             # tuple items are all of same type
-    raise TypeError("Cannot specify multiple types in a %s (try using tuple)", 
type(t))
+        return t       # (size does not matter)
+    if isinstance(t, tuple):  # we accept tuples with any length, because
+        return t              # their in-memory representation is predictable
+    if len(t) > 1:
+        raise TypeError("Cannot specify multiple types in a %s (try using 
tuple)", type(t))
 
 
 def _compute_annotation(t, bookkeeper=None):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to