mercurial/revsetlang.py
changeset 35542 beb667c9880f
parent 35494 dd911f95cbda
child 35557 2df8d12f23bc
--- a/mercurial/revsetlang.py	Fri Jan 05 21:48:29 2018 -0500
+++ b/mercurial/revsetlang.py	Sat Dec 30 17:55:23 2017 +0900
@@ -27,8 +27,10 @@
     "~": (18, None, None, ("ancestor", 18), None),
     "^": (18, None, None, ("parent", 18), "parentpost"),
     "-": (5, None, ("negate", 19), ("minus", 5), None),
-    "::": (17, None, ("dagrangepre", 17), ("dagrange", 17), "dagrangepost"),
-    "..": (17, None, ("dagrangepre", 17), ("dagrange", 17), "dagrangepost"),
+    "::": (17, "dagrangeall", ("dagrangepre", 17), ("dagrange", 17),
+           "dagrangepost"),
+    "..": (17, "dagrangeall", ("dagrangepre", 17), ("dagrange", 17),
+           "dagrangepost"),
     ":": (15, "rangeall", ("rangepre", 15), ("range", 15), "rangepost"),
     "not": (10, None, ("not", 10), None, None),
     "!": (10, None, ("not", 10), None, None),
@@ -288,6 +290,8 @@
         post = ('parentpost', x[1])
         if x[2][0] == 'dagrangepre':
             return _fixops(('dagrange', post, x[2][1]))
+        elif x[2][0] == 'dagrangeall':
+            return _fixops(('dagrangepost', post))
         elif x[2][0] == 'rangepre':
             return _fixops(('range', post, x[2][1]))
         elif x[2][0] == 'rangeall':
@@ -313,6 +317,8 @@
         return _analyze(_build('only(_, _)', *x[1:]))
     elif op == 'onlypost':
         return _analyze(_build('only(_)', x[1]))
+    elif op == 'dagrangeall':
+        raise error.ParseError(_("can't use '::' in this context"))
     elif op == 'dagrangepre':
         return _analyze(_build('ancestors(_)', x[1]))
     elif op == 'dagrangepost':