##// 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 return baseset()
380 return baseset()
381 return _makerangeset(repo, subset, m.first(), n.last(), order)
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 def rangepre(repo, subset, y, order):
387 def rangepre(repo, subset, y, order):
384 # ':y' can't be rewritten to '0:y' since '0' may be hidden
388 # ':y' can't be rewritten to '0:y' since '0' may be hidden
385 n = getset(repo, fullreposet(repo), y)
389 n = getset(repo, fullreposet(repo), y)
@@ -387,6 +391,12 b' def rangepre(repo, subset, y, order):'
387 return baseset()
391 return baseset()
388 return _makerangeset(repo, subset, 0, n.last(), order)
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 def _makerangeset(repo, subset, m, n, order):
400 def _makerangeset(repo, subset, m, n, order):
391 if m == n:
401 if m == n:
392 r = baseset([m])
402 r = baseset([m])
@@ -2385,7 +2395,9 b' def _hexlist(repo, subset, x, order):'
2385
2395
2386 methods = {
2396 methods = {
2387 "range": rangeset,
2397 "range": rangeset,
2398 "rangeall": rangeall,
2388 "rangepre": rangepre,
2399 "rangepre": rangepre,
2400 "rangepost": rangepost,
2389 "dagrange": dagrange,
2401 "dagrange": dagrange,
2390 "string": stringset,
2402 "string": stringset,
2391 "symbol": stringset,
2403 "symbol": stringset,
@@ -2500,10 +2512,6 b' def _analyze(x, order):'
2500 return _analyze(('func', ('symbol', 'ancestors'), x[1]), order)
2512 return _analyze(('func', ('symbol', 'ancestors'), x[1]), order)
2501 elif op == 'dagrangepost':
2513 elif op == 'dagrangepost':
2502 return _analyze(('func', ('symbol', 'descendants'), x[1]), order)
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 elif op == 'negate':
2515 elif op == 'negate':
2508 s = getstring(x[1], _("can't negate that"))
2516 s = getstring(x[1], _("can't negate that"))
2509 return _analyze(('string', '-' + s), order)
2517 return _analyze(('string', '-' + s), order)
@@ -2517,7 +2525,9 b' def _analyze(x, order):'
2517 return (op, _analyze(x[1], order), order)
2525 return (op, _analyze(x[1], order), order)
2518 elif op == 'not':
2526 elif op == 'not':
2519 return (op, _analyze(x[1], anyorder), order)
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 return (op, _analyze(x[1], defineorder), order)
2531 return (op, _analyze(x[1], defineorder), order)
2522 elif op == 'group':
2532 elif op == 'group':
2523 return _analyze(x[1], order)
2533 return _analyze(x[1], order)
@@ -2622,7 +2632,9 b' def _optimize(x, small):'
2622 o = _optimize(x[1], not small)
2632 o = _optimize(x[1], not small)
2623 order = x[2]
2633 order = x[2]
2624 return o[0], (op, o[1], order)
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 o = _optimize(x[1], small)
2638 o = _optimize(x[1], small)
2627 order = x[2]
2639 order = x[2]
2628 return o[0], (op, o[1], order)
2640 return o[0], (op, o[1], order)
@@ -161,8 +161,8 b' trivial'
161 (rangeall
161 (rangeall
162 None)
162 None)
163 * optimized:
163 * optimized:
164 (rangepre
164 (rangeall
165 ('string', 'tip')
165 None
166 define)
166 define)
167 * set:
167 * set:
168 <spanset+ 0:9>
168 <spanset+ 0:9>
@@ -619,8 +619,8 b' may be hidden (issue5385)'
619 (rangeall
619 (rangeall
620 None)
620 None)
621 * analyzed:
621 * analyzed:
622 (rangepre
622 (rangeall
623 ('string', 'tip')
623 None
624 define)
624 define)
625 * set:
625 * set:
626 <spanset+ 0:9>
626 <spanset+ 0:9>
General Comments 0
You need to be logged in to leave comments. Login now