diff options
| author | Benno Fünfstück <benno.fuenfstueck@gmail.com> | 2015-08-19 11:23:28 +0200 |
|---|---|---|
| committer | Peter Simons <simons@cryp.to> | 2017-04-25 16:08:43 +0200 |
| commit | 731e0fa7423ae34cf25bf967c90228ec7ea99e10 (patch) | |
| tree | aa6f3a897c7b618be97bae79c9b9b44cc41bfd5e /pkgs/development/python-modules/httpserver | |
| parent | 9b74549c0bd8458e4eba626977852efe3f3204b4 (diff) | |
haskell: preserve overrideScope on override
We want code such as `(pkg.override {}).overrideScope (self: super: {})` to
work. This didn't work before, since `override` will call the original package
again, and the attribute `overideScope`, which `callPackageWithScope` added,
wasn't added again. The fix for this is to modify the package function itself
to include the `callPackageWithScope` attribute, so it'll be re-added whenever
the function is overriden for with arguments.
There is a small problem here though: since callPackage uses some magic
(`builtins.functionArgs`) to determine the auto-arguments of a function, we
can't just write `callPackageWith scope drvScope`, since
`builtins.functionArgs drvScope` will be `{}`. To fix this, we implement our own
`callPackageWith`.
Fixes https://github.com/NixOS/nixpkgs/issues/7953.
Closes https://github.com/NixOS/nixpkgs/pull/9336.
Diffstat (limited to 'pkgs/development/python-modules/httpserver')
0 files changed, 0 insertions, 0 deletions
