comparison mercurial/templateutil.py @ 38252:c2456a7726c1

templater: do dict lookup over a wrapped object Dict/list lookup operations will be moved to a wrapped interface so that a returned element can inherit hybrid-ness automatically. wraphybridvalue() will be inlined.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 21 Mar 2018 01:18:29 +0900
parents 7701c2d4a438
children ad06a4264daf
comparison
equal deleted inserted replaced
38251:ead71b15efd5 38252:c2456a7726c1
660 d = evalwrapped(context, mapping, darg) 660 d = evalwrapped(context, mapping, darg)
661 return mappedgenerator(_applymap, args=(mapping, d, targ)) 661 return mappedgenerator(_applymap, args=(mapping, d, targ))
662 662
663 def runmember(context, mapping, data): 663 def runmember(context, mapping, data):
664 darg, memb = data 664 darg, memb = data
665 d = evalrawexp(context, mapping, darg) 665 d = evalwrapped(context, mapping, darg)
666 if util.safehasattr(d, 'tomap'): 666 if util.safehasattr(d, 'tomap'):
667 lm = context.overlaymap(mapping, d.tomap()) 667 lm = context.overlaymap(mapping, d.tomap())
668 return runsymbol(context, lm, memb) 668 return runsymbol(context, lm, memb)
669 if util.safehasattr(d, 'get'): 669 if util.safehasattr(d, 'get'):
670 return getdictitem(d, memb) 670 return getdictitem(d, memb)