From a128a3f234afb3d0a1d67b8b36e93cc629d0186d Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 11 Dec 2023 16:42:13 +1300 Subject: [PATCH] lib.isConvertibleToString: Statically compute types list --- lib/strings.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index 3403f9f32bb6..0e357daf8d9b 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -977,9 +977,11 @@ rec { Many types of value are coercible to string this way, including int, float, null, bool, list of similarly coercible values. */ - isConvertibleWithToString = x: + isConvertibleWithToString = let + types = [ "null" "int" "float" "bool" ]; + in x: isStringLike x || - elem (typeOf x) [ "null" "int" "float" "bool" ] || + elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x); /* Check whether a value can be coerced to a string.