diff options
author | zimbatm <zimbatm@zimbatm.com> | 2018-01-29T12·36+0000 |
---|---|---|
committer | zimbatm <zimbatm@zimbatm.com> | 2019-03-24T10·36+0100 |
commit | 514b3c7f8345cfcbbe166981214497ed9d93ae18 (patch) | |
tree | c9b5d3dec07486f41dbb31a9a0e12c83426e346e /src/libexpr | |
parent | 56f1ed55791fc7e8671f10263baa7a9d15b47c4b (diff) |
Add isPath primop
this is added for completeness' sake since all the other possible `builtins.typeOf` results have a corresponding `builtins.is<Type>`
Diffstat (limited to 'src/libexpr')
-rw-r--r-- | src/libexpr/primops.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 6b0c55e72cd9..39073725e9c4 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -315,6 +315,12 @@ static void prim_isBool(EvalState & state, const Pos & pos, Value * * args, Valu mkBool(v, args[0]->type == tBool); } +/* Determine whether the argument is a path. */ +static void prim_isPath(EvalState & state, const Pos & pos, Value * * args, Value & v) +{ + state.forceValue(*args[0]); + mkBool(v, args[0]->type == tPath); +} struct CompareValues { @@ -2169,6 +2175,7 @@ void EvalState::createBaseEnv() addPrimOp("__isInt", 1, prim_isInt); addPrimOp("__isFloat", 1, prim_isFloat); addPrimOp("__isBool", 1, prim_isBool); + addPrimOp("__isPath", 1, prim_isPath); addPrimOp("__genericClosure", 1, prim_genericClosure); addPrimOp("abort", 1, prim_abort); addPrimOp("__addErrorContext", 2, prim_addErrorContext); |