##// END OF EJS Templates
revset: do not transform range* operators in parsed tree...
Yuya Nishihara -
r30803:d389f19f default
parent child Browse files
Show More
@@ -380,6 +380,10 b' def rangeset(repo, subset, x, y, order):'
380 380 return baseset()
381 381 return _makerangeset(repo, subset, m.first(), n.last(), order)
382 382
383 def rangeall(repo, subset, x, order):
384 assert x is None
385 return _makerangeset(repo, subset, 0, len(repo) - 1, order)
386
383 387 def rangepre(repo, subset, y, order):
384 388 # ':y' can't be rewritten to '0:y' since '0' may be hidden
385 389 n = getset(repo, fullreposet(repo), y)
@@ -387,6 +391,12 b' def rangepre(repo, subset, y, order):'
387 391 return baseset()
388 392 return _makerangeset(repo, subset, 0, n.last(), order)
389 393
394 def rangepost(repo, subset, x, order):
395 m = getset(repo, fullreposet(repo), x)
396 if not m:
397 return baseset()
398 return _makerangeset(repo, subset, m.first(), len(repo) - 1, order)
399
390 400 def _makerangeset(repo, subset, m, n, order):
391 401 if m == n:
392 402 r = baseset([m])
@@ -2385,7 +2395,9 b' def _hexlist(repo, subset, x, order):'
2385 2395
2386 2396 methods = {
2387 2397 "range": rangeset,
2398 "rangeall": rangeall,
2388 2399 "rangepre": rangepre,
2400 "rangepost": rangepost,
2389 2401 "dagrange": dagrange,
2390 2402 "string": stringset,
2391 2403 "symbol": stringset,
@@ -2500,10 +2512,6 b' def _analyze(x, order):'
2500 2512 return _analyze(('func', ('symbol', 'ancestors'), x[1]), order)
2501 2513 elif op == 'dagrangepost':
2502 2514 return _analyze(('func', ('symbol', 'descendants'), x[1]), order)
2503 elif op == 'rangeall':
2504 return _analyze(('rangepre', ('string', 'tip')), order)
2505 elif op == 'rangepost':
2506 return _analyze(('range', x[1], ('string', 'tip')), order)
2507 2515 elif op == 'negate':
2508 2516 s = getstring(x[1], _("can't negate that"))
2509 2517 return _analyze(('string', '-' + s), order)
@@ -2517,7 +2525,9 b' def _analyze(x, order):'
2517 2525 return (op, _analyze(x[1], order), order)
2518 2526 elif op == 'not':
2519 2527 return (op, _analyze(x[1], anyorder), order)
2520 elif op in ('rangepre', 'parentpost'):
2528 elif op == 'rangeall':
2529 return (op, None, order)
2530 elif op in ('rangepre', 'rangepost', 'parentpost'):
2521 2531 return (op, _analyze(x[1], defineorder), order)
2522 2532 elif op == 'group':
2523 2533 return _analyze(x[1], order)
@@ -2622,7 +2632,9 b' def _optimize(x, small):'
2622 2632 o = _optimize(x[1], not small)
2623 2633 order = x[2]
2624 2634 return o[0], (op, o[1], order)
2625 elif op in ('rangepre', 'parentpost'):
2635 elif op == 'rangeall':
2636 return smallbonus, x
2637 elif op in ('rangepre', 'rangepost', 'parentpost'):
2626 2638 o = _optimize(x[1], small)
2627 2639 order = x[2]
2628 2640 return o[0], (op, o[1], order)
@@ -161,8 +161,8 b' trivial'
161 161 (rangeall
162 162 None)
163 163 * optimized:
164 (rangepre
165 ('string', 'tip')
164 (rangeall
165 None
166 166 define)
167 167 * set:
168 168 <spanset+ 0:9>
@@ -619,8 +619,8 b' may be hidden (issue5385)'
619 619 (rangeall
620 620 None)
621 621 * analyzed:
622 (rangepre
623 ('string', 'tip')
622 (rangeall
623 None
624 624 define)
625 625 * set:
626 626 <spanset+ 0:9>
General Comments 0
You need to be logged in to leave comments. Login now