Show More
@@ -1377,16 +1377,15 b' def _expandaliases(aliases, tree, expand' | |||
|
1377 | 1377 | raise error.ParseError(_('infinite expansion of revset alias "%s" ' |
|
1378 | 1378 | 'detected') % alias.name) |
|
1379 | 1379 | expanding.append(alias) |
|
1380 | result = alias.replacement | |
|
1380 | result = _expandaliases(aliases, alias.replacement, expanding) | |
|
1381 | expanding.pop() | |
|
1381 | 1382 | if alias.args is not None: |
|
1382 | 1383 | l = getlist(tree[2]) |
|
1383 | 1384 | if len(l) != len(alias.args): |
|
1384 | 1385 | raise error.ParseError( |
|
1385 | 1386 | _('invalid number of arguments: %s') % len(l)) |
|
1387 | l = [_expandaliases(aliases, a, []) for a in l] | |
|
1386 | 1388 | result = _expandargs(result, dict(zip(alias.args, l))) |
|
1387 | # Recurse in place, the base expression may have been rewritten | |
|
1388 | result = _expandaliases(aliases, result, expanding) | |
|
1389 | expanding.pop() | |
|
1390 | 1389 | else: |
|
1391 | 1390 | result = tuple(_expandaliases(aliases, t, expanding) |
|
1392 | 1391 | for t in tree) |
@@ -520,6 +520,27 b' test infinite recursion' | |||
|
520 | 520 | hg: parse error: infinite expansion of revset alias "recurse1" detected |
|
521 | 521 | [255] |
|
522 | 522 | |
|
523 | $ echo 'level1($1, $2) = $1 or $2' >> .hg/hgrc | |
|
524 | $ echo 'level2($1, $2) = level1($2, $1)' >> .hg/hgrc | |
|
525 | $ try "level2(level1(1, 2), 3)" | |
|
526 | (func | |
|
527 | ('symbol', 'level2') | |
|
528 | (list | |
|
529 | (func | |
|
530 | ('symbol', 'level1') | |
|
531 | (list | |
|
532 | ('symbol', '1') | |
|
533 | ('symbol', '2'))) | |
|
534 | ('symbol', '3'))) | |
|
535 | (or | |
|
536 | ('symbol', '3') | |
|
537 | (or | |
|
538 | ('symbol', '1') | |
|
539 | ('symbol', '2'))) | |
|
540 | 3 | |
|
541 | 1 | |
|
542 | 2 | |
|
543 | ||
|
523 | 544 | test nesting and variable passing |
|
524 | 545 | |
|
525 | 546 | $ echo 'nested($1) = nested2($1)' >> .hg/hgrc |
General Comments 0
You need to be logged in to leave comments.
Login now