diff --git a/src/libexpr/include/nix/expr/nixexpr.hh b/src/libexpr/include/nix/expr/nixexpr.hh index 392545069..5121b9d98 100644 --- a/src/libexpr/include/nix/expr/nixexpr.hh +++ b/src/libexpr/include/nix/expr/nixexpr.hh @@ -592,11 +592,11 @@ public: struct ExprCall : Expr { Expr * fun; - std::vector args; + std::pmr::vector args; PosIdx pos; std::optional cursedOrEndPos; // used during parsing to warn about https://github.com/NixOS/nix/issues/11118 - ExprCall(const PosIdx & pos, Expr * fun, std::vector && args) + ExprCall(const PosIdx & pos, Expr * fun, std::pmr::vector && args) : fun(fun) , args(args) , pos(pos) @@ -604,7 +604,7 @@ struct ExprCall : Expr { } - ExprCall(const PosIdx & pos, Expr * fun, std::vector && args, PosIdx && cursedOrEndPos) + ExprCall(const PosIdx & pos, Expr * fun, std::pmr::vector && args, PosIdx && cursedOrEndPos) : fun(fun) , args(args) , pos(pos) @@ -836,7 +836,7 @@ public: // we define some calls to add explicitly so that the argument can be passed in as initializer lists template [[gnu::always_inline]] - C * add(const PosIdx & pos, Expr * fun, std::vector && args) + C * add(const PosIdx & pos, Expr * fun, std::pmr::vector && args) requires(std::same_as) { return alloc.new_object(pos, fun, std::move(args)); @@ -844,7 +844,7 @@ public: template [[gnu::always_inline]] - C * add(const PosIdx & pos, Expr * fun, std::vector && args, PosIdx && cursedOrEndPos) + C * add(const PosIdx & pos, Expr * fun, std::pmr::vector && args, PosIdx && cursedOrEndPos) requires(std::same_as) { return alloc.new_object(pos, fun, std::move(args), std::move(cursedOrEndPos)); diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 3cfc6f936..c4333eced 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -129,7 +129,7 @@ static Expr * makeCall(Exprs & exprs, PosIdx pos, Expr * fn, Expr * arg) { %type start expr expr_function expr_if expr_op %type expr_select expr_simple expr_app %type expr_pipe_from expr_pipe_into -%type > list +%type > list %type binds binds1 %type formals formal_set %type formal