998a9c1707
For an option definition that uses `lib.options.mergeEqualOption` underneath, like `types.anything`, an error is thrown when multiple functions are assigned, indicating that functions can't be compared for equivalence: error: The option `test' has conflicting definition values: - In `xxx': <function> - In `xxx': <function> (use '--show-trace' to show detailed location information) However, the error message didn't use the correct files. While above error indicates that both definitions are in the xxx file, that's in fact not true. Above error was generated with options.test = lib.mkOption { type = lib.types.anything; }; imports = [ { _file = "yyy"; test = y: y; } { _file = "xxx"; test = x: x; } ]; With this change, the error uses the correct file locations: error: The option `test' has conflicting definition values: - In `xxx': <function> - In `yyy': <function> (use '--show-trace' to show detailed location information) |
||
---|---|---|
.. | ||
systems | ||
tests | ||
asserts.nix | ||
attrsets.nix | ||
cli.nix | ||
customisation.nix | ||
debug.nix | ||
default.nix | ||
deprecated.nix | ||
fetchers.nix | ||
filesystem.nix | ||
fixed-points.nix | ||
flake.nix | ||
generators.nix | ||
kernel.nix | ||
licenses.nix | ||
lists.nix | ||
meta.nix | ||
minver.nix | ||
modules.nix | ||
options.nix | ||
sources.nix | ||
strings-with-deps.nix | ||
strings.nix | ||
trivial.nix | ||
types.nix | ||
versions.nix | ||
zip-int-bits.nix |