Commit c9c8d0ed authored by Benjamin Peterson's avatar Benjamin Peterson

merge 3.1

parents 63bd5f9f d86e4c86
...@@ -743,9 +743,11 @@ class WildcardPattern(BasePattern): ...@@ -743,9 +743,11 @@ class WildcardPattern(BasePattern):
else: else:
# The reason for this is that hitting the recursion limit usually # The reason for this is that hitting the recursion limit usually
# results in some ugly messages about how RuntimeErrors are being # results in some ugly messages about how RuntimeErrors are being
# ignored. # ignored. We only have to do this on CPython, though, because other
save_stderr = sys.stderr # implementations don't have this nasty bug in the first place.
sys.stderr = StringIO() if hasattr(sys, "getrefcount"):
save_stderr = sys.stderr
sys.stderr = StringIO()
try: try:
for count, r in self._recursive_matches(nodes, 0): for count, r in self._recursive_matches(nodes, 0):
if self.name: if self.name:
...@@ -759,7 +761,8 @@ class WildcardPattern(BasePattern): ...@@ -759,7 +761,8 @@ class WildcardPattern(BasePattern):
r[self.name] = nodes[:count] r[self.name] = nodes[:count]
yield count, r yield count, r
finally: finally:
sys.stderr = save_stderr if hasattr(sys, "getrefcount"):
sys.stderr = save_stderr
def _iterative_matches(self, nodes): def _iterative_matches(self, nodes):
"""Helper to iteratively yield the matches.""" """Helper to iteratively yield the matches."""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment