aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r--src/libexpr/primops.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 9e7651da7..57dc7bd12 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -271,7 +271,18 @@ static void prim_isNull(EvalState & state, const Pos & pos, Value * * args, Valu
static void prim_isFunction(EvalState & state, const Pos & pos, Value * * args, Value & v)
{
state.forceValue(*args[0]);
- mkBool(v, args[0]->type == tLambda);
+ bool res;
+ switch (args[0]->type) {
+ case tLambda:
+ case tPrimOp:
+ case tPrimOpApp:
+ res = true;
+ break;
+ default:
+ res = false;
+ break;
+ }
+ mkBool(v, res);
}