From patchwork Thu Aug 22 15:11:15 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4, of, 6, V3] revset: add helper function to get functions used in a revset parse tree From: Alexander Plavin X-Patchwork-Id: 2246 Message-Id: <5734dd4b2bd2a859a2ef.1377184275@debian-alexander.dolgopa> To: mercurial-devel@selenic.com Date: Thu, 22 Aug 2013 19:11:15 +0400 # HG changeset patch # User Alexander Plavin # Date 1375824091 -14400 # Wed Aug 07 01:21:31 2013 +0400 # Node ID 5734dd4b2bd2a859a2ef0be6e0f4485f028abf6e # Parent 6db09c0cbf06af6f990fcb497449f8e1200fba86 revset: add helper function to get functions used in a revset parse tree diff -r 6db09c0cbf06 -r 5734dd4b2bd2 mercurial/revset.py --- a/mercurial/revset.py Fri Aug 16 15:01:22 2013 +0400 +++ b/mercurial/revset.py Wed Aug 07 01:21:31 2013 +0400 @@ -1978,5 +1978,16 @@ else: return 0 +def funcsused(tree): + if not isinstance(tree, tuple) or tree[0] in ('string', 'symbol'): + return set() + else: + funcs = set() + for s in tree[1:]: + funcs |= funcsused(s) + if tree[0] == 'func': + funcs.add(tree[1][1]) + return funcs + # tell hggettext to extract docstrings from these functions: i18nfunctions = symbols.values()