diff options
author | Profpatsch <mail@profpatsch.de> | 2021-01-30T08·25+0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2021-02-19T23·04+0000 |
commit | 83e81def2316de2800d3a78b8294835a5319c191 (patch) | |
tree | 62c4c45c8c368884fc58ca7809f0863d2455148a /nix/readTree/tests/test-wrong-no-dots | |
parent | 0f1a497361893e5324e61812a8db6ca77369789f (diff) |
feat(nix/readTree): give better error message when not a function r/2224
When a file is added to the depot tree that is picked up by read-tree, but it’s not a function like ({...}: {}), `readTree` will fail on the function application, leading to a bad error message. We can do slightly better, by checking the type and throwing a nicer trace message. `assertMsg` is copied from `nixpkgs/lib/assert.nix`, since at this point we don’t have a reference to the lib. There is another evaluation failure that can happen, which is when the function we try to call does not have dots; however, nix does not provide any inflection capabilies for checking whether a function attrset is open (`builtins.functionArgs` only tells us the attrs it mentions explicitly). Maybe the locality of the error could be improved somehow. Change-Id: Ibe38ce78bb56902075f7c31f2eeeb93485b34be3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2469 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'nix/readTree/tests/test-wrong-no-dots')
-rw-r--r-- | nix/readTree/tests/test-wrong-no-dots/no-dots-in-function.nix | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/nix/readTree/tests/test-wrong-no-dots/no-dots-in-function.nix b/nix/readTree/tests/test-wrong-no-dots/no-dots-in-function.nix new file mode 100644 index 000000000000..4681253af831 --- /dev/null +++ b/nix/readTree/tests/test-wrong-no-dots/no-dots-in-function.nix @@ -0,0 +1,3 @@ +{}: + +"This is a function, but readTree wants to pass a bunch of arguments, and not having dots means we depend on exactly which arguments." |