mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 05:49:08 +00:00
Implement return keyword
This commit is contained in:
parent
20a539a96d
commit
b3e60f9d3a
39 changed files with 594 additions and 80 deletions
|
@ -147,6 +147,7 @@ fn wrap_in_decode_custom_decode_with(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: decode_with_result_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: sorted_inner_decoder_captures,
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
|
@ -350,6 +350,7 @@ pub(super) fn step_field(
|
|||
function_type,
|
||||
closure_type,
|
||||
return_type: keep_or_skip_var,
|
||||
early_returns: vec![],
|
||||
name: step_field_closure,
|
||||
captured_symbols: Vec::new(),
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -586,6 +587,7 @@ fn custom_decoder_lambda(env: &mut Env<'_>, args: DecodingFieldArgs) -> (Variabl
|
|||
function_type: this_custom_callback_var,
|
||||
closure_type: custom_callback_lambda_set_var,
|
||||
return_type: custom_callback_ret_var,
|
||||
early_returns: vec![],
|
||||
name: custom_closure_symbol,
|
||||
captured_symbols: vec![(state_arg_symbol, state_record_var)],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -993,6 +995,7 @@ pub(super) fn finalizer(
|
|||
function_type: function_var,
|
||||
closure_type,
|
||||
return_type: return_type_var,
|
||||
early_returns: vec![],
|
||||
name: function_symbol,
|
||||
captured_symbols: Vec::new(),
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
|
@ -556,6 +556,7 @@ fn step_elem(
|
|||
function_type: this_custom_callback_var,
|
||||
closure_type: custom_callback_lambda_set_var,
|
||||
return_type: custom_callback_ret_var,
|
||||
early_returns: vec![],
|
||||
name: custom_closure_symbol,
|
||||
captured_symbols: vec![(state_arg_symbol, state_record_var)],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -710,6 +711,7 @@ fn step_elem(
|
|||
function_type,
|
||||
closure_type,
|
||||
return_type: keep_or_skip_var,
|
||||
early_returns: vec![],
|
||||
name: step_elem_closure,
|
||||
captured_symbols: Vec::new(),
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -896,6 +898,7 @@ fn finalizer(
|
|||
function_type: function_var,
|
||||
closure_type,
|
||||
return_type: return_type_var,
|
||||
early_returns: vec![],
|
||||
name: function_symbol,
|
||||
captured_symbols: Vec::new(),
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
|
@ -188,6 +188,7 @@ fn to_encoder_list(env: &mut Env<'_>, fn_name: Symbol) -> (Expr, Variable) {
|
|||
function_type: to_elem_encoder_fn_var,
|
||||
closure_type: to_elem_encoder_lset,
|
||||
return_type: elem_encoder_var,
|
||||
early_returns: vec![],
|
||||
name: to_elem_encoder_sym,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -281,6 +282,7 @@ fn to_encoder_list(env: &mut Env<'_>, fn_name: Symbol) -> (Expr, Variable) {
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_encoder_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -490,6 +492,7 @@ fn to_encoder_record(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_encoder_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -672,6 +675,7 @@ fn to_encoder_tuple(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_encoder_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -914,6 +918,7 @@ fn to_encoder_tag_union(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_encoder_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -1025,6 +1030,7 @@ fn wrap_in_encode_custom(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: Variable::LIST_U8,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![(captured_symbol, captured_var)],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
|
@ -542,6 +542,7 @@ fn build_outer_derived_closure(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: body_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
|
@ -194,6 +194,7 @@ fn to_inspector_list(env: &mut Env<'_>, fn_name: Symbol) -> (Expr, Variable) {
|
|||
function_type: to_elem_inspector_fn_var,
|
||||
closure_type: to_elem_inspector_lset,
|
||||
return_type: elem_inspector_var,
|
||||
early_returns: vec![],
|
||||
name: to_elem_inspector_sym,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -292,6 +293,7 @@ fn to_inspector_list(env: &mut Env<'_>, fn_name: Symbol) -> (Expr, Variable) {
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_inspector_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -502,6 +504,7 @@ fn to_inspector_record(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_inspector_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -685,6 +688,7 @@ fn to_inspector_tuple(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_inspector_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -931,6 +935,7 @@ fn to_inspector_tag_union(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: this_inspector_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
@ -1029,6 +1034,7 @@ fn wrap_in_inspect_custom(
|
|||
function_type: fn_var,
|
||||
closure_type: fn_clos_var,
|
||||
return_type: fmt_var,
|
||||
early_returns: vec![],
|
||||
name: fn_name,
|
||||
captured_symbols: vec![(captured_symbol, captured_var)],
|
||||
recursive: Recursive::NotRecursive,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue