diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index c06b1af63aa41..901124b91c7ce 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -23,3 +23,4 @@ `functor` is an implementation detail and should not be relied upon, but since its status wasn't clear and it has had some use cases without alternatives, changes are being handled as gracefully as possible. Deprecations within functor: - `functor.wrapped` is now deprecated for some types and using it will give a warning with migration instructions. It is deprecated for these types: - `lib.types.attrsWith` + - `lib.types.listOf` diff --git a/lib/types.nix b/lib/types.nix index b988ff1a89a9b..e74775d0a27ad 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -600,7 +600,9 @@ rec { getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]); getSubModules = elemType.getSubModules; substSubModules = m: listOf (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; + functor = (elemTypeFunctor name { inherit elemType; }) // { + type = payload: types.listOf payload.elemType; + }; nestedTypes.elemType = elemType; };