changeset 28462:dbba18ba26d4

templater: make label() just fail if ui object isn't available Silent failure hides bugs and makes it harder to track down the issue. It's worse than raising exception. In future patches, I plan to sort out template functions that require 'ui', 'ctx', 'fctx', etc. so that incompatible functions are excluded and the doc can say in which context these functions are usable. @templatefunc('label', requires=('ui',)) def label(context, mapping, args): ...
author Yuya Nishihara <yuya@tcha.org>
date Wed, 09 Mar 2016 23:59:26 +0900
parents b433233e25d9
children 19b4a2087dfc
files mercurial/templater.py
diffstat 1 files changed, 1 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templater.py	Fri Mar 11 21:55:44 2016 +0900
+++ b/mercurial/templater.py	Wed Mar 09 23:59:26 2016 +0900
@@ -547,12 +547,8 @@
         # i18n: "label" is a keyword
         raise error.ParseError(_("label expects two arguments"))
 
+    ui = mapping['ui']
     thing = evalstring(context, mapping, args[1])
-
-    ui = mapping.get('ui', '')
-    if isinstance(ui, str):
-        return thing
-
     # preserve unknown symbol as literal so effects like 'red', 'bold',
     # etc. don't need to be quoted
     label = evalstringliteral(context, mapping, args[0])