Fix gen for runtime error functions

This commit is contained in:
ayazhafiz 2022-07-06 00:01:51 -04:00 committed by Ayaz Hafiz
parent 41e63c8576
commit ab75de39d6
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58

View file

@ -2819,13 +2819,15 @@ fn generate_runtime_error_function<'a>(
let (args, ret_layout) = match layout {
RawFunctionLayout::Function(arg_layouts, lambda_set, ret_layout) => {
let mut args = Vec::with_capacity_in(arg_layouts.len(), env.arena);
let real_arg_layouts = lambda_set.extend_argument_list(env.arena, arg_layouts);
let mut args = Vec::with_capacity_in(real_arg_layouts.len(), env.arena);
for arg in arg_layouts {
args.push((*arg, env.unique_symbol()));
}
args.push((Layout::LambdaSet(lambda_set), Symbol::ARG_CLOSURE));
if real_arg_layouts.len() != arg_layouts.len() {
args.push((Layout::LambdaSet(lambda_set), Symbol::ARG_CLOSURE));
}
(args.into_bump_slice(), *ret_layout)
}