summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-03-10 07:09:07 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-03-11 13:15:06 +0100
commit2f2a20ed18535ba819225fabe9a4cf2f37d2edb1 (patch)
treed5378f4677c7828ed48fa7c843701c4015637fce
parent049a379ec6ca755bcc077fd0e8da186ff76b8679 (diff)
downloadguix-2f2a20ed18535ba819225fabe9a4cf2f37d2edb1.tar.gz
Document null dynamic attrs
-rw-r--r--doc/manual/release-notes.xml5
-rw-r--r--doc/manual/writing-nix-expressions.xml11
2 files changed, 15 insertions, 1 deletions
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml
index 56f7bd6549..44762d1d6c 100644
--- a/doc/manual/release-notes.xml
+++ b/doc/manual/release-notes.xml
@@ -25,7 +25,10 @@
   attribute names (e.g. <literal>set."${foo}"</literal>). In the
   case where the attribute name is just a single antiquotation,
   the quotes can be dropped (e.g. the above example can be written
-  <literal>set.${foo}</literal>).</para></listitem>
+  <literal>set.${foo}</literal>). If an attribute name inside of a
+  set declaration evaluates to <literal>"${null}"</literal> (e.g.
+  <literal>{ ${null} = false; }</literal>), then that attribute is not added
+  added to the set.</para></listitem>
 
 </itemizedlist>
 
diff --git a/doc/manual/writing-nix-expressions.xml b/doc/manual/writing-nix-expressions.xml
index 71cd84b072..873dc21a52 100644
--- a/doc/manual/writing-nix-expressions.xml
+++ b/doc/manual/writing-nix-expressions.xml
@@ -871,6 +871,17 @@ This will evaluate to <literal>123</literal> if
 coerced to a string and <literal>456</literal> otherwise (again
 assuming <literal>bar</literal> is antiquotable).</para>
 
+<para>In the special case where an attribute name inside of a set declaration
+evaluates to <literal>"${null}"</literal> (which is normally an error, as
+<literal>null</literal> is not antiquotable), that attribute is simply not
+added to the set:
+
+<programlisting>
+{ ${if foo then "bar" else null} = true; }</programlisting>
+
+This will evaluate to <literal>{}</literal> if <literal>foo</literal>
+evaluates to <literal>false</literal>.</para>
+
 
 </simplesect>