Merge pull request #132602 from NixOS/backport-131267-to-release-21.05
[Backport release-21.05] lib: fix functionArgs for functors
This commit is contained in:
commit
6745921e23
|
@ -132,6 +132,16 @@ runTests {
|
||||||
expected = [ 1 1 0 ];
|
expected = [ 1 1 0 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testFunctionArgsFunctor = {
|
||||||
|
expr = functionArgs { __functor = self: { a, b }: null; };
|
||||||
|
expected = { a = false; b = false; };
|
||||||
|
};
|
||||||
|
|
||||||
|
testFunctionArgsSetFunctionArgs = {
|
||||||
|
expr = functionArgs (setFunctionArgs (args: args.x) { x = false; });
|
||||||
|
expected = { x = false; };
|
||||||
|
};
|
||||||
|
|
||||||
# STRINGS
|
# STRINGS
|
||||||
|
|
||||||
testConcatMapStrings = {
|
testConcatMapStrings = {
|
||||||
|
|
|
@ -334,7 +334,10 @@ rec {
|
||||||
has the same return type and semantics as builtins.functionArgs.
|
has the same return type and semantics as builtins.functionArgs.
|
||||||
setFunctionArgs : (a → b) → Map String Bool.
|
setFunctionArgs : (a → b) → Map String Bool.
|
||||||
*/
|
*/
|
||||||
functionArgs = f: f.__functionArgs or (builtins.functionArgs f);
|
functionArgs = f:
|
||||||
|
if f ? __functor
|
||||||
|
then f.__functionArgs or (lib.functionArgs (f.__functor f))
|
||||||
|
else builtins.functionArgs f;
|
||||||
|
|
||||||
/* Check whether something is a function or something
|
/* Check whether something is a function or something
|
||||||
annotated with function args.
|
annotated with function args.
|
||||||
|
|
Loading…
Reference in New Issue