From 6e8c19714af00b8340eea6eecf1c38fc6b09f6de Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 25 Nov 2003 12:05:48 +0000 Subject: * Allow integer bindings in derivations. --- src/libexpr/eval.cc | 1 + src/libexpr/primops.cc | 7 +++++++ 2 files changed, 8 insertions(+) (limited to 'src/libexpr') diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index b110c3a4a41c..f6634e8921a5 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -127,6 +127,7 @@ Expr evalExpr2(EvalState & state, Expr e) 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" || diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 481966af9e3e..da6927d0fcbd 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -89,6 +89,13 @@ static string processBinding(EvalState & state, Expr e, StoreExpr & ne) if (atMatch(m, e) >> "Bool" >> "True") return "1"; if (atMatch(m, e) >> "Bool" >> "False") return ""; + int n; + if (atMatch(m, e) >> "Int" >> n) { + ostringstream st; + st << n; + return st.str(); + } + if (atMatch(m, e) >> "Attrs" >> es) { Expr a = queryAttr(e, "type"); if (a && evalString(state, a) == "derivation") { -- cgit 1.4.1