lib.isConvertibleToString: Statically compute types list

This commit is contained in:
adisbladis 2023-12-11 16:42:13 +13:00
parent eec92ca9df
commit a128a3f234

View File

@ -977,9 +977,11 @@ rec {
Many types of value are coercible to string this way, including int, float, Many types of value are coercible to string this way, including int, float,
null, bool, list of similarly coercible values. null, bool, list of similarly coercible values.
*/ */
isConvertibleWithToString = x: isConvertibleWithToString = let
types = [ "null" "int" "float" "bool" ];
in x:
isStringLike x || isStringLike x ||
elem (typeOf x) [ "null" "int" "float" "bool" ] || elem (typeOf x) types ||
(isList x && lib.all isConvertibleWithToString x); (isList x && lib.all isConvertibleWithToString x);
/* Check whether a value can be coerced to a string. /* Check whether a value can be coerced to a string.