Author: Armin Rigo <ar...@tunes.org>
Branch: py3.5
Changeset: r87814:bd88b9bb4db8
Date: 2016-10-15 14:25 +0200
http://bitbucket.org/pypy/pypy/changeset/bd88b9bb4db8/

Log:    Add error/warning for re.split('')

diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -262,6 +262,14 @@
     @unwrap_spec(maxsplit=int)
     def split_w(self, w_string, maxsplit=0):
         space = self.space
+        if self.code[0] != rsre_core.OPCODE_INFO or self.code[3] == 0:
+            if self.code[0] == rsre_core.OPCODE_INFO and self.code[4] == 0:
+                raise oefmt(space.w_ValueError,
+                            "split() requires a non-empty pattern match.")
+            space.warn(
+                space.wrap("split() requires a non-empty pattern match."),
+                space.w_FutureWarning)
+        #
         splitlist = []
         n = 0
         last = 0
diff --git a/pypy/module/_sre/test/test_app_sre.py 
b/pypy/module/_sre/test/test_app_sre.py
--- a/pypy/module/_sre/test/test_app_sre.py
+++ b/pypy/module/_sre/test/test_app_sre.py
@@ -1041,3 +1041,8 @@
         import re
         assert re.search(".+ab", "wowowowawoabwowo")
         assert None == re.search(".+ab", "wowowaowowo")
+
+    def test_split_nonempty(self):
+        import re
+        raises(ValueError, re.split, '', '')
+        re.split("a*", '')    # -> warning
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to