diff --git a/lib/types.nix b/lib/types.nix index 069d7b170327..cda048fd10ca 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -86,7 +86,7 @@ let else { elemType = merged; }; wrappedDeprecationMessage = { loc }: lib.warn '' - The deprecated `type.functor.wrapped` attribute of the option `${showOption loc}` is accessed, use `type.nestedTypes.elemType` instead. + The deprecated `${lib.optionalString (loc != null) "type."}functor.wrapped` attribute ${lib.optionalString (loc != null) "of the option `${showOption loc}` "}is accessed, use `${lib.optionalString (loc != null) "type."}nestedTypes.elemType` instead. '' payload.elemType; }; @@ -227,7 +227,16 @@ rec { { _type = "option-type"; inherit name check merge emptyValue getSubOptions getSubModules substSubModules - typeMerge functor deprecationMessage nestedTypes descriptionClass; + typeMerge deprecationMessage nestedTypes descriptionClass; + functor = + if functor ? wrappedDeprecationMessage then + functor // { + wrapped = functor.wrappedDeprecationMessage { + loc = null; + }; + } + else + functor; description = if description == null then name else description; };