mercurial/templateutil.py
changeset 37163 0fb28899e81a
parent 37162 9ab3491f84c2
child 37222 54355c243042
--- a/mercurial/templateutil.py	Fri Mar 23 20:34:12 2018 +0900
+++ b/mercurial/templateutil.py	Fri Mar 23 20:43:55 2018 +0900
@@ -77,7 +77,8 @@
     - "{manifest.rev}"
 
     Unlike a hybrid, this does not simulate the behavior of the underling
-    value. Use unwrapvalue() or unwraphybrid() to obtain the inner object.
+    value. Use unwrapvalue(), unwrapastype(), or unwraphybrid() to obtain
+    the inner object.
     """
 
     def __init__(self, gen, key, value, makemap):
@@ -340,18 +341,18 @@
         thing = func(context, mapping, data)
     return stringify(thing)
 
-_evalfuncbytype = {
-    bytes: evalstring,
-    int: evalinteger,
+_unwrapfuncbytype = {
+    bytes: stringify,
+    int: unwrapinteger,
 }
 
-def evalastype(context, mapping, arg, typ):
-    """Evaluate given argument and coerce its type"""
+def unwrapastype(thing, typ):
+    """Move the inner value object out of the wrapper and coerce its type"""
     try:
-        f = _evalfuncbytype[typ]
+        f = _unwrapfuncbytype[typ]
     except KeyError:
         raise error.ProgrammingError('invalid type specified: %r' % typ)
-    return f(context, mapping, arg)
+    return f(thing)
 
 def runinteger(context, mapping, data):
     return int(data)