fix(tvix): Pass all args when auto-calling a function with an ellipsis
The command line options --arg and --argstr that are used by a bunch of
CLI commands to pass arguments to top-level functions in files go
through the same code-path as auto-calling top-level functions with
their default arguments - this, however, was only passing the arguments
that were *explicitly* mentioned in the formals of the function - in the
case of an as-pattern with an ellipsis (eg args @ { ... }) extra passed
arguments would get omitted. This fixes that to instead pass *all*
specified auto args in the case that our function has an ellipsis.
Submitted upstream at https://github.com/NixOS/nix/pull/3965
Fixes: #46
Change-Id: I32b7ee0e5bacf75b2bc43a3f0796f533f4bd5959
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1863
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
This commit is contained in:
parent
3bada1d41e
commit
fb0528c5da
2 changed files with 21 additions and 9 deletions
1
third_party/nix/src/nix-build/nix-build.cc
vendored
1
third_party/nix/src/nix-build/nix-build.cc
vendored
|
|
@ -270,6 +270,7 @@ static void _main(int argc, char** argv) {
|
|||
|
||||
if (packages) {
|
||||
std::ostringstream joined;
|
||||
// TODO(grfn): Generate a syntax tree here, not a string
|
||||
joined << "with import <nixpkgs> { }; (pkgs.runCommandCC or "
|
||||
"pkgs.runCommand) \"shell\" { buildInputs = [ ";
|
||||
for (const auto& i : left) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue