λ Support functions! #5

Open
acw wants to merge 59 commits from awick/functions into develop
2 changed files with 12 additions and 9 deletions
Showing only changes of commit f915db9337 - Show all commits

View File

@@ -129,14 +129,13 @@ proptest::proptest! {
let basic_result = basic_result.map(|x| x.replace('\n', "\r\n"));
if !matches!(basic_result, Err(EvalError::PrimOp(PrimOpError::MathFailure(_)))) {
// use pretty::{DocAllocator, Pretty};
// let allocator = pretty::BoxAllocator;
// allocator
// .text("---------------")
// .append(allocator.hardline())
//use pretty::DocAllocator;
//let allocator = pretty::Arena::new();
//let result = allocator.text("-------------")
// .append(allocator.line())
// .append(program.pretty(&allocator))
// .1
// .render_colored(70, pretty::termcolor::StandardStream::stdout(pretty::termcolor::ColorChoice::Auto))
// .append(allocator.line());
//result.render_raw(70, &mut pretty::IoWrite::new(std::io::stdout()))
// .expect("rendering works");
let compiled_result = Backend::<ObjectModule>::eval(program);

View File

@@ -363,6 +363,10 @@ impl<M: Module> Backend<M> {
(types::I64, Type::Primitive(PrimitiveType::U64)) => Ok((val, val_type)),
(types::I64, Type::Primitive(PrimitiveType::Void)) => {
Ok((builder.ins().iconst(types::I64, 0), VOID_REPR_TYPE))
}
_ => Err(BackendError::InvalidTypeCast {
from: val_type,
to: target_type,