templater: add symbol to error
authorRyan McElroy <rmcelroy@fb.com>
Thu, 12 Jun 2014 18:07:21 -0700
changeset 21822 028a48105191
parent 21821 4a445dc5abff
child 21824 57c70d3ad1c9
templater: add symbol to error This patch makes it easier to debug writing templater functions by telling the user exactly what was sent to the templater.
mercurial/templater.py
tests/test-command-template.t
--- a/mercurial/templater.py	Thu Jun 12 17:53:37 2014 -0700
+++ b/mercurial/templater.py	Thu Jun 12 18:07:21 2014 -0700
@@ -111,7 +111,7 @@
 def getsymbol(exp):
     if exp[0] == 'symbol':
         return exp[1]
-    raise error.ParseError(_("expected a symbol"))
+    raise error.ParseError(_("expected a symbol, got '%s'") % exp[0])
 
 def getlist(x):
     if not x:
--- a/tests/test-command-template.t	Thu Jun 12 17:53:37 2014 -0700
+++ b/tests/test-command-template.t	Thu Jun 12 18:07:21 2014 -0700
@@ -1911,3 +1911,9 @@
   |
   o  line 1
      line 2
+
+Test bad template with better error message
+
+  $ hg log -Gv -R a --template '{desc|user()}'
+  hg: parse error: expected a symbol, got 'func'
+  [255]