aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-01-22 00:33:18 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-02-26 14:06:45 +0100
commit733214144a7a910001c1c82683db780853bac9b1 (patch)
treeee875c5888232ecc42b2ac6045a4725ce82b481c /doc/manual
parent42eb4afd7a38f3024a66da037d9f39859f7bd8f3 (diff)
Document dynamic attributes
Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'doc/manual')
-rw-r--r--doc/manual/release-notes.xml6
-rw-r--r--doc/manual/writing-nix-expressions.xml21
2 files changed, 23 insertions, 4 deletions
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml
index 37bb730f4..56f7bd654 100644
--- a/doc/manual/release-notes.xml
+++ b/doc/manual/release-notes.xml
@@ -21,6 +21,12 @@
<listitem><para><command>nix-setuid-helper</command> is
gone.</para></listitem>
+ <listitem><para>Now antiquotation is allowed inside of quoted
+ 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>
+
</itemizedlist>
</section>
diff --git a/doc/manual/writing-nix-expressions.xml b/doc/manual/writing-nix-expressions.xml
index c5b355ea0..71cd84b07 100644
--- a/doc/manual/writing-nix-expressions.xml
+++ b/doc/manual/writing-nix-expressions.xml
@@ -851,13 +851,26 @@ default value in an attribute selection using the
will evaluate to <literal>"Xyzzy"</literal> because there is no
<varname>c</varname> attribute in the set.</para>
-<para>You can use arbitrary string constants as attribute names by
-enclosing them in quotes:
+<para>You can use arbitrary double-quoted strings as attribute
+names:
<programlisting>
-{ "foo bar" = 123; "nix-1.0" = 456; }."foo bar" </programlisting>
+{ "foo ${bar}" = 123; "nix-1.0" = 456; }."foo ${bar}"
+</programlisting>
+
+This will evaluate to <literal>123</literal> (Assuming
+<literal>bar</literal> is antiquotable). In the case where an
+attribute name is just a single antiquotation, the quotes can be
+dropped:
+
+<programlisting>
+{ foo = 123; }.${bar} or 456 </programlisting>
+
+This will evaluate to <literal>123</literal> if
+<literal>bar</literal> evaluates to <literal>"foo"</literal> when
+coerced to a string and <literal>456</literal> otherwise (again
+assuming <literal>bar</literal> is antiquotable).</para>
-This will evaluate to <literal>123</literal>.</para>
</simplesect>