about summary refs log tree commit diff
path: root/src/libexpr
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/eval.cc1
-rw-r--r--src/libexpr/primops.cc7
2 files changed, 8 insertions, 0 deletions
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") {