···36 inherit (lib.types)
37 mkOptionType
38 ;
00039in
40rec {
41···184 if length defs == 1
185 then (head defs).value
186 else assert length defs > 1;
187- throw "The option `${showOption loc}' is defined multiple times.\n${message}\nDefinition values:${showDefs defs}";
188189 /* "Merge" option definitions by checking that they all have the same value. */
190 mergeEqualOption = loc: defs:
···195 else if length defs == 1 then (head defs).value
196 else (foldl' (first: def:
197 if def.value != first.value then
198- throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}"
199 else
200 first) (head defs) (tail defs)).value;
201
···36 inherit (lib.types)
37 mkOptionType
38 ;
39+ prioritySuggestion = ''
40+ Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions.
41+ '';
42in
43rec {
44···187 if length defs == 1
188 then (head defs).value
189 else assert length defs > 1;
190+ throw "The option `${showOption loc}' is defined multiple times while it's expected to be unique.\n${message}\nDefinition values:${showDefs defs}\n${prioritySuggestion}";
191192 /* "Merge" option definitions by checking that they all have the same value. */
193 mergeEqualOption = loc: defs:
···198 else if length defs == 1 then (head defs).value
199 else (foldl' (first: def:
200 if def.value != first.value then
201+ throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}\n${prioritySuggestion}"
202 else
203 first) (head defs) (tail defs)).value;
204