1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
definition module checkFunctionBodies
import syntax, checksupport
:: ExpressionState =
{ es_expr_heap :: !.ExpressionHeap
, es_var_heap :: !.VarHeap
, es_type_heaps :: !.TypeHeaps
, es_calls :: ![FunCall]
, es_dynamics :: ![ExprInfoPtr]
, es_fun_defs :: !.{# FunDef}
, es_dynamic_expr_count :: !Int // used to give each dynamic expr an unique id
}
:: ExpressionInput =
{ ei_expr_level :: !Level
, ei_fun_index :: !FunctionOrMacroIndex
, ei_fun_level :: !Level
, ei_mod_index :: !Index
, ei_local_functions_index_offset :: !Int
}
checkFunctionBodies :: !FunctionBody !Ident !.ExpressionInput !*ExpressionState !*ExpressionInfo !*CheckState
-> (FunctionBody,[FreeVar],!.ExpressionState,.ExpressionInfo,!.CheckState);
|