summary refs log tree commit diff
path: root/lib/tests/modules/adhoc-freeformType-survives-type-merge.nix
blob: 3cefb543c256bfff99bb9d537574b9ca287a9458 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{ lib, ... }: {
  options.dummy = lib.mkOption { type = lib.types.anything; default = {}; };
  freeformType =
    let
      a = lib.types.attrsOf (lib.types.submodule { options.bar = lib.mkOption { }; });
    in
    # modifying types like this breaks type merging.
    # This test makes sure that type merging is not performed when only a single declaration exists.
    # Don't modify types in practice!
    a // {
      merge = loc: defs: { freeformItems = a.merge loc defs; };
    };
  config.foo.bar = "ok";
}