refactor(tvix/eval): directly return builtin tuples from macro
All invocations of the builtin macro had to previously filter through the `builtin_tuple` function, but it's more sensible to directly return these from the macro. Change-Id: I45600ba84d56c9528d3e92570461c319eea595ce Reviewed-on: https://cl.tvl.fyi/c/depot/+/7825 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
972c867b36
commit
f12f938166
5 changed files with 23 additions and 34 deletions
|
@ -1,11 +1,9 @@
|
|||
pub use tvix_eval::internal;
|
||||
pub use tvix_eval::Value;
|
||||
pub use tvix_eval::{Builtin, BuiltinArgument, Value, VM};
|
||||
use tvix_eval_builtin_macros::builtins;
|
||||
|
||||
#[builtins]
|
||||
mod builtins {
|
||||
use tvix_eval::internal::VM;
|
||||
use tvix_eval::{ErrorKind, Value};
|
||||
use tvix_eval::{ErrorKind, Value, VM};
|
||||
|
||||
/// Test docstring.
|
||||
///
|
||||
|
@ -26,13 +24,21 @@ fn builtins() {
|
|||
let builtins = builtins::builtins();
|
||||
assert_eq!(builtins.len(), 2);
|
||||
|
||||
let identity = builtins.iter().find(|b| b.name() == "identity").unwrap();
|
||||
assert_eq!(
|
||||
identity.documentation(),
|
||||
Some(
|
||||
r#" Test docstring.
|
||||
let (_, identity) = builtins
|
||||
.iter()
|
||||
.find(|(name, _)| *name == "identity")
|
||||
.unwrap();
|
||||
|
||||
match identity {
|
||||
Value::Builtin(identity) => assert_eq!(
|
||||
identity.documentation(),
|
||||
Some(
|
||||
r#" Test docstring.
|
||||
|
||||
It has multiple lines!"#
|
||||
)
|
||||
);
|
||||
)
|
||||
),
|
||||
|
||||
_ => panic!("builtin was not a builtin"),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue