From 3235c889b94314eb3d4f731333f54c179255e4ae Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Sat, 22 Aug 2009 18:13:56 +0000 Subject: [PATCH] fix of warning. It should be correct now svn path=/nixpkgs/trunk/; revision=16813 --- pkgs/lib/strings-with-deps.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/lib/strings-with-deps.nix b/pkgs/lib/strings-with-deps.nix index 0cd1416e0be..a367559653b 100644 --- a/pkgs/lib/strings-with-deps.nix +++ b/pkgs/lib/strings-with-deps.nix @@ -52,20 +52,23 @@ rec { textClosureList = predefined: arg: let + warn = map (x : if isAttrs x + then builtins.trace "warning, passing attrs to textClosureList instead of dep entry names is depreceated and may cause failure" x + else x ); + f = done: todo: if todo == [] then {result = []; inherit done;} else let entry = head todo; in if isAttrs entry then - builtins.trace "warning, passing attrs to textClosureList instead of dep entry names is depreceated and may cause failure" ( - let x = f done entry.deps; + let x = f done (warn entry.deps); y = f x.done (tail todo); in { result = x.result ++ [entry.text] ++ y.result; done = y.done; - }) + } else if hasAttr entry done then f done (tail todo) else f (done // listToAttrs [{name = entry; value = 1;}]) ([(builtins.getAttr entry predefined)] ++ tail todo); - in (f {} arg).result; + in (f {} (warn arg)).result; textClosureMap = f: predefined: names: concatStringsSep "\n" (map f (textClosureList predefined names));