Commit 0a102793 authored by Robert Hensing's avatar Robert Hensing
Browse files

lib.makeOverridable: fix functionArgs on returned function

parent f6caf65a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -69,8 +69,8 @@ rec {
     "<pkg>.overrideDerivation" to learn about `overrideDerivation` and caveats
     related to its use.
  */
  makeOverridable = f: origArgs:
    let
  makeOverridable = f: lib.setFunctionArgs
    (origArgs: let
      result = f origArgs;

      # Creates a functor with the same arguments as f
@@ -95,7 +95,8 @@ rec {
        lib.setFunctionArgs result (lib.functionArgs result) // {
          override = overrideArgs;
        }
      else result;
      else result)
    (lib.functionArgs f);


  /* Call the package function in the file `fn` with the required
+12 −0
Original line number Diff line number Diff line
@@ -43,6 +43,18 @@ in

runTests {

# CUSTOMIZATION

  testFunctionArgsMakeOverridable = {
    expr = functionArgs (makeOverridable ({ a, b, c ? null}: {}));
    expected = { a = false; b = false; c = true; };
  };

  testFunctionArgsMakeOverridableOverride = {
    expr = functionArgs (makeOverridable ({ a, b, c ? null }: {}) { a = 1; b = 2; }).override;
    expected = { a = false; b = false; c = true; };
  };

# TRIVIAL

  testId = {