From 79bb0008ec9afa8d8cee9e6b807a579bcb1c92ab Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 19 Mar 2004 14:45:45 +0000 Subject: * `null' is a normal form. --- src/libexpr/eval.cc | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 335f44baa..7ee157c31 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -186,14 +186,17 @@ Expr evalExpr2(EvalState & state, Expr e) ATerm name; /* Normal forms. */ - if (atMatch(m, e) >> "Str" || - atMatch(m, e) >> "Path" || - atMatch(m, e) >> "Uri" || - atMatch(m, e) >> "Int" || - atMatch(m, e) >> "Bool" || - atMatch(m, e) >> "Function" || - atMatch(m, e) >> "Attrs" || - atMatch(m, e) >> "List") + string cons; + if (atMatch(m, e) >> cons && + (cons == "Str" || + cons == "Path" || + cons == "Uri" || + cons == "Null" || + cons == "Int" || + cons == "Bool" || + cons == "Function" || + cons == "Attrs" || + cons == "List")) return e; /* Any encountered variables must be undeclared or primops. */ -- cgit v1.2.3