about summary refs log tree commit diff
path: root/src/libexpr/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/parser.y')
-rw-r--r--src/libexpr/parser.y6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index 073fac1bee..49bd7bfa5f 100644
--- a/src/libexpr/parser.y
+++ b/src/libexpr/parser.y
@@ -325,8 +325,8 @@ expr_app
   ;
 
 expr_select
-  : expr_select '.' ID
-    { $$ = new ExprSelect($1, data->symbols.create($3)); }
+  : expr_simple '.' attrpath
+    { $$ = new ExprSelect($1, *$3); }
   | expr_simple { $$ = $1; }
   ;
 
@@ -382,7 +382,7 @@ binds
   | binds INHERIT '(' expr ')' ids ';'
     { $$ = $1;
       /* !!! Should ensure sharing of the expression in $4. */
-      foreach (AttrPath::iterator, i, *$6) {
+      foreach (vector<Symbol>::iterator, i, *$6) {
           if ($$->attrs.find(*i) != $$->attrs.end())
               dupAttr(*i, makeCurPos(@6, data), $$->attrs[*i].pos);
           $$->attrs[*i] = ExprAttrs::AttrDef(new ExprSelect($4, *i), makeCurPos(@6, data));