diff -r a12d13eac513 -r 5004ef47f437 mercurial/revset.py --- a/mercurial/revset.py Mon Aug 08 16:47:42 2016 +0200 +++ b/mercurial/revset.py Sun Aug 07 14:58:49 2016 +0900 @@ -2423,6 +2423,9 @@ elif op == 'list': ws, ts = zip(*(_optimize(y, small) for y in x[1:])) return sum(ws), (op,) + ts + elif op == 'keyvalue': + w, t = _optimize(x[2], small) + return w, (op, x[1], t) elif op == 'func': f = getsymbol(x[1]) wa, ta = _optimize(x[2], small)