Add FunctionPointer layout

This commit is contained in:
Ayaz Hafiz 2023-06-25 15:35:03 -05:00
parent a9e3f967a8
commit 6312d75ee0
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
18 changed files with 111 additions and 14 deletions

View file

@ -8,7 +8,7 @@ use inkwell::values::{BasicValueEnum, FunctionValue, IntValue, PointerValue, Str
use inkwell::{AddressSpace, FloatPredicate, IntPredicate};
use roc_builtins::bitcode;
use roc_builtins::bitcode::{FloatWidth, IntWidth};
use roc_error_macros::internal_error;
use roc_error_macros::{internal_error, todo_lambda_erasure};
use roc_module::symbol::Symbol;
use roc_mono::layout::{
Builtin, InLayout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
@ -225,6 +225,8 @@ fn build_eq<'a, 'ctx>(
field2_cast.into(),
)
}
LayoutRepr::FunctionPointer(_) => todo_lambda_erasure!(),
}
}
@ -399,6 +401,8 @@ fn build_neq<'a, 'ctx>(
unreachable!("recursion pointers should never be compared directly")
}
LayoutRepr::LambdaSet(_) => unreachable!("cannot compare closure"),
LayoutRepr::FunctionPointer(_) => todo_lambda_erasure!(),
}
}