# HG changeset patch
# User Gregory Szorc <gregory.szorc@gmail.com>
# Date 2018-08-22 18:58:36
# Node ID ce145f8eface41f595bc662df7da3fa968d749e4
# Parent  3a60416c4fd8eaabe7ea5a52d6391b0aadb79cfc

stringutil: teach pprint() to recognize generators

Otherwise they get serialized as e.g.

<generator object X at 0x7f543d3d68c0>

Differential Revision: https://phab.mercurial-scm.org/D4396

diff --git a/mercurial/utils/stringutil.py b/mercurial/utils/stringutil.py
--- a/mercurial/utils/stringutil.py
+++ b/mercurial/utils/stringutil.py
@@ -13,6 +13,7 @@ import ast
 import codecs
 import re as remod
 import textwrap
+import types
 
 from ..i18n import _
 from ..thirdparty import attr
@@ -64,6 +65,8 @@ def pprint(o, bprefix=False):
             pprint(k, bprefix=bprefix) for k in sorted(o)))
     elif isinstance(o, tuple):
         return '(%s)' % (b', '.join(pprint(a, bprefix=bprefix) for a in o))
+    elif isinstance(o, types.GeneratorType):
+        return 'gen[%s]' % (b', '.join(pprint(a, bprefix=bprefix) for a in o))
     else:
         return pycompat.byterepr(o)