changeset 38278:80f423a14c90

templater: inline wraphybridvalue() All wraphybridvalue() calls are now handled in the hybrid class.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 21 Mar 2018 12:06:18 +0900
parents 41ae9b3cbfb9
children fb874fc1d9b4
files mercurial/templateutil.py
diffstat 1 files changed, 4 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templateutil.py	Mon Mar 19 00:16:12 2018 +0900
+++ b/mercurial/templateutil.py	Wed Mar 21 12:06:18 2018 +0900
@@ -193,7 +193,10 @@
     def _wrapvalue(self, key, val):
         if val is None:
             return
-        return wraphybridvalue(self, key, val)
+        if util.safehasattr(val, '_makemap'):
+            # a nested hybrid list/dict, which has its own way of map operation
+            return val
+        return mappable(None, key, val, self._makemap)
 
     def itermaps(self, context):
         makemap = self._makemap
@@ -422,20 +425,6 @@
         return thing
     return thing.show(context, mapping)
 
-def wraphybridvalue(container, key, value):
-    """Wrap an element of hybrid container to be mappable
-
-    The key is passed to the makemap function of the given container, which
-    should be an item generated by iter(container).
-    """
-    makemap = getattr(container, '_makemap', None)
-    if makemap is None:
-        return value
-    if util.safehasattr(value, '_makemap'):
-        # a nested hybrid list/dict, which has its own way of map operation
-        return value
-    return mappable(None, key, value, makemap)
-
 def compatdict(context, mapping, name, data, key='key', value='value',
                fmt=None, plural=None, separator=' '):
     """Wrap data like hybriddict(), but also supports old-style list template