1948@@ -1948,35 +1949,33 @@ inline NodeRef<Key> Parse(Span<const char> in, const Ctx& ctx)
1949 } else if (Const("after(", in)) {
1950 int arg_size = FindNextChar(in, ')');
1951 if (arg_size < 1) return {};
1952- int64_t num;
1953- if (!ParseInt64(std::string(in.begin(), in.begin() + arg_size), &num)) return {};
1954- if (num < 1 || num >= 0x80000000L) return {};
1955- constructed.push_back(MakeNodeRef<Key>(internal::NoDupCheck{}, ctx.MsContext(), Fragment::AFTER, num));
1956+ const auto num{ToIntegral<int64_t>(std::string(in.begin(), in.begin() + arg_size))};
nit: A string_view should be enough and avoid a string copy to insert an unused null terminator?