Loading lib/types.nix +4 −4 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ rec { tail' = tail ts; in foldl' either head' tail'; # Either value of type `finalType` or `coercedType`, the latter is # Either value of type `coercedType` or `finalType`, the former is # converted to `finalType` using `coerceFunc`. coercedTo = coercedType: coerceFunc: finalType: assert lib.assertMsg (coercedType.getSubModules == null) Loading @@ -599,12 +599,12 @@ rec { mkOptionType rec { name = "coercedTo"; description = "${finalType.description} or ${coercedType.description} convertible to it"; check = x: finalType.check x || (coercedType.check x && finalType.check (coerceFunc x)); check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; merge = loc: defs: let coerceVal = val: if finalType.check val then val else coerceFunc val; if coercedType.check val then coerceFunc val else val; in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); emptyValue = finalType.emptyValue; getSubOptions = finalType.getSubOptions; Loading Loading
lib/types.nix +4 −4 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ rec { tail' = tail ts; in foldl' either head' tail'; # Either value of type `finalType` or `coercedType`, the latter is # Either value of type `coercedType` or `finalType`, the former is # converted to `finalType` using `coerceFunc`. coercedTo = coercedType: coerceFunc: finalType: assert lib.assertMsg (coercedType.getSubModules == null) Loading @@ -599,12 +599,12 @@ rec { mkOptionType rec { name = "coercedTo"; description = "${finalType.description} or ${coercedType.description} convertible to it"; check = x: finalType.check x || (coercedType.check x && finalType.check (coerceFunc x)); check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; merge = loc: defs: let coerceVal = val: if finalType.check val then val else coerceFunc val; if coercedType.check val then coerceFunc val else val; in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); emptyValue = finalType.emptyValue; getSubOptions = finalType.getSubOptions; Loading