aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/nixexpr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/nixexpr.cc')
-rw-r--r--src/libexpr/nixexpr.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc
index 4744cdde3..b2d775abb 100644
--- a/src/libexpr/nixexpr.cc
+++ b/src/libexpr/nixexpr.cc
@@ -114,6 +114,7 @@ static void varsBoundByPattern(ATermMap & map, Pattern pat)
{
ATerm name;
ATermList formals;
+ Pattern pat1, pat2;
/* Use makeRemoved() so that it can be used directly in
substitute(). */
if (matchVarPat(pat, name))
@@ -125,6 +126,10 @@ static void varsBoundByPattern(ATermMap & map, Pattern pat)
map.set(name, makeRemoved());
}
}
+ else if (matchAtPat(pat, pat1, pat2)) {
+ varsBoundByPattern(map, pat1);
+ varsBoundByPattern(map, pat2);
+ }
else abort();
}
@@ -354,7 +359,7 @@ Expr makeStr(const string & s, const PathSet & context)
string showType(Expr e)
{
- ATerm t1, t2, t3;
+ ATerm t1, t2;
ATermList l1;
ATermBlob b1;
int i1;