[pypy-commit] pypy py3.5: Add error/warning for re.split('')
arigo
pypy.commits at gmail.com
Sat Oct 15 08:26:25 EDT 2016
Author: Armin Rigo <arigo at 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
More information about the pypy-commit
mailing list