move synth_branch

This commit is contained in:
Mylloon 2023-12-06 09:53:01 +01:00
parent f9c8d3e2f9
commit c98eb70a06
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -444,6 +444,17 @@ and synth_read
let refty = synth_expression tenv ref in let refty = synth_expression tenv ref in
HopixTypes.destruct_reference_type ref.position refty HopixTypes.destruct_reference_type ref.position refty
and synth_case
: HopixTypes.typing_environment -> expression Position.located
-> branch Position.located list -> HopixTypes.aty
=
fun tenv expr branches ->
let casety = synth_expression tenv expr in
(* Test les branches *)
match List.fold_right (synth_branch tenv casety) branches None with
| Some branchesty -> branchesty
| None -> HopixTypes.type_error expr.position "No types found."
and synth_branch and synth_branch
: HopixTypes.typing_environment -> HopixTypes.aty -> branch Position.located : HopixTypes.typing_environment -> HopixTypes.aty -> branch Position.located
-> HopixTypes.aty option -> HopixTypes.aty option -> HopixTypes.aty option -> HopixTypes.aty option
@ -458,17 +469,6 @@ and synth_branch
| Some ty' -> check_equal_types e.position ~expected:ty' ~given:given_branch); | Some ty' -> check_equal_types e.position ~expected:ty' ~given:given_branch);
Some given_branch Some given_branch
and synth_case
: HopixTypes.typing_environment -> expression Position.located
-> branch Position.located list -> HopixTypes.aty
=
fun tenv expr branches ->
let casety = synth_expression tenv expr in
(* Test les branches *)
match List.fold_right (synth_branch tenv casety) branches None with
| Some branchesty -> branchesty
| None -> HopixTypes.type_error expr.position "No types found."
and synth_ifthenelse and synth_ifthenelse
: HopixTypes.typing_environment -> expression Position.located : HopixTypes.typing_environment -> expression Position.located
-> expression Position.located -> expression Position.located -> HopixTypes.aty -> expression Position.located -> expression Position.located -> HopixTypes.aty