Merge pull request #131267 from blaggacao/fix-functionArgs

lib: fix functionArgs for functors
This commit is contained in:
Silvan Mosberger 2021-08-04 00:02:57 +02:00 committed by GitHub
commit f0fda3bf55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -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 = {

View File

@ -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.