# HG changeset patch # User Yuya Nishihara # Date 2018-01-16 14:50:01 # Node ID 8685192a873368b6e389594e6a4d6e88910ec833 # Parent 3c2a6246fd632a9d435dc75f4083083c782727f0 templater: fix crash by empty group expression 'exp' may be None because of '(group None)' node. The error message is copied from revset.py. diff --git a/mercurial/templater.py b/mercurial/templater.py --- a/mercurial/templater.py +++ b/mercurial/templater.py @@ -259,6 +259,8 @@ def prettyformat(tree): def compileexp(exp, context, curmethods): """Compile parsed template tree to (func, data) pair""" + if not exp: + raise error.ParseError(_("missing argument")) t = exp[0] if t in curmethods: return curmethods[t](exp, context) diff --git a/tests/test-command-template.t b/tests/test-command-template.t --- a/tests/test-command-template.t +++ b/tests/test-command-template.t @@ -2766,6 +2766,16 @@ Error on syntax: hg: parse error at 6: invalid token [255] + $ hg log -T '{}' + hg: parse error at 2: not a prefix: end + [255] + $ hg debugtemplate -v '{()}' + (template + (group + None)) + hg: parse error: missing argument + [255] + Behind the scenes, this will throw TypeError $ hg log -l 3 --template '{date|obfuscate}\n'