diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 834b15cbd..ce38e2ab9 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -87,7 +87,7 @@ static Expr substArgs(EvalState & state, arguments. Find out which. */ for (ATermIterator i(formals); i; ++i) { Expr name; ATerm d1, d2; - matchFormal(*i, name, d1, d2); + if (!matchFormal(*i, name, d1, d2)) abort(); subs.remove(name); } throw TypeError(format("the function does not expect an argument named `%1%'") diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc index 06ca8c928..fac2c0e5c 100644 --- a/src/libexpr/nixexpr.cc +++ b/src/libexpr/nixexpr.cc @@ -130,7 +130,7 @@ Expr substitute(const Substitution & subs, Expr e) /* In case of a function, filter out all variables bound by this function. */ ATermList formals; - ATerm body, def; + ATerm body; if (matchFunction(e, formals, body, pos)) { ATermMap map(ATgetLength(formals)); for (ATermIterator i(formals); i; ++i) { @@ -227,7 +227,7 @@ static void checkVarDefs2(set & done, const ATermMap & defs, Expr e) for (ATermIterator i(formals); i; ++i) { ATerm valids, deflt; set done2; - matchFormal(*i, name, valids, deflt); + if (!matchFormal(*i, name, valids, deflt)) abort(); checkVarDefs2(done, defs, valids); checkVarDefs2(done2, defs2, deflt); } diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh index 3fd22ecfe..28ac35e60 100644 --- a/src/libexpr/nixexpr.hh +++ b/src/libexpr/nixexpr.hh @@ -50,7 +50,7 @@ struct Substitution { Expr x; for (const Substitution * s(this); s; s = s->prev) - if (x = s->map->get(name)) return x; + if ((x = s->map->get(name))) return x; return 0; } }; diff --git a/src/libexpr/parser.cc b/src/libexpr/parser.cc index 7adbcb618..9b3e9041d 100644 --- a/src/libexpr/parser.cc +++ b/src/libexpr/parser.cc @@ -75,7 +75,7 @@ Expr unescapeStr(const char * s) { string t; char c; - while (c = *s++) { + while ((c = *s++)) { if (c == '\\') { assert(*s); c = *s++;