···
, # The deprecation message to display when this type is used by an option
# If null, the type isn't deprecated
deprecationMessage ? null
150
+
, # The types that occur in the definition of this type. This is used to
151
+
# issue deprecation warnings recursively. Can also be used to reuse
152
-
inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage;
156
+
inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage nestedTypes;
description = if description == null then name else description;
···
getSubModules = elemType.getSubModules;
substSubModules = m: listOf (elemType.substSubModules m);
functor = (defaultFunctor name) // { wrapped = elemType; };
372
+
nestedTypes.elemType = elemType;
nonEmptyListOf = elemType:
···
getSubModules = elemType.getSubModules;
substSubModules = m: attrsOf (elemType.substSubModules m);
functor = (defaultFunctor name) // { wrapped = elemType; };
397
+
nestedTypes.elemType = elemType;
# A version of attrsOf that's lazy in its values at the expense of
···
getSubModules = elemType.getSubModules;
substSubModules = m: lazyAttrsOf (elemType.substSubModules m);
functor = (defaultFunctor name) // { wrapped = elemType; };
422
+
nestedTypes.elemType = elemType;
# TODO: drop this in the future:
···
deprecationMessage = "Mixing lists with attribute values is no longer"
+ " possible; please use `types.attrsOf` instead. See"
+ " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.";
431
+
nestedTypes.elemType = elemType;
# Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
···
getSubModules = elemType.getSubModules;
substSubModules = m: uniq (elemType.substSubModules m);
functor = (defaultFunctor name) // { wrapped = elemType; };
444
+
nestedTypes.elemType = elemType;
···
getSubModules = elemType.getSubModules;
substSubModules = m: nullOr (elemType.substSubModules m);
functor = (defaultFunctor name) // { wrapped = elemType; };
463
+
nestedTypes.elemType = elemType;
functionTo = elemType: mkOptionType {
···
substSubModules = m: submoduleWith (attrs // {
548
+
nestedTypes = lib.optionalAttrs (freeformType != null) {
549
+
freeformType = freeformType;
functor = defaultFunctor name // {
type = types.submoduleWith;
···
then functor.type mt1 mt2
functor = (defaultFunctor name) // { wrapped = [ t1 t2 ]; };
612
+
nestedTypes.left = t1;
613
+
nestedTypes.right = t2;
# Any of the types in the given list
···
substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
typeMerge = t1: t2: null;
functor = (defaultFunctor name) // { wrapped = finalType; };
645
+
nestedTypes.coercedType = coercedType;
646
+
nestedTypes.finalType = finalType;
# Obsolete alternative to configOf. It takes its option