diff options
-rw-r--r-- | doc/manual/release-notes.xml | 5 | ||||
-rw-r--r-- | doc/manual/writing-nix-expressions.xml | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml index 56f7bd65490d..44762d1d6c8a 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 71cd84b072b4..873dc21a5292 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> |