# HG changeset patch # User Yuya Nishihara # Date 1516114201 -32400 # 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 -r 3c2a6246fd63 -r 8685192a8733 mercurial/templater.py --- a/mercurial/templater.py Tue Jan 16 21:46:17 2018 +0900 +++ b/mercurial/templater.py Tue Jan 16 23:50:01 2018 +0900 @@ -259,6 +259,8 @@ 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 -r 3c2a6246fd63 -r 8685192a8733 tests/test-command-template.t --- a/tests/test-command-template.t Tue Jan 16 21:46:17 2018 +0900 +++ b/tests/test-command-template.t Tue Jan 16 23:50:01 2018 +0900 @@ -2766,6 +2766,16 @@ 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'