Make init
do the state updates in FATE (instead of a new INIT function)
This commit is contained in:
parent
a50730155f
commit
58ab771dff
@ -20,7 +20,7 @@
|
||||
|
||||
-type fun_name() :: {entrypoint, binary()}
|
||||
| {local_fun, [string()]}
|
||||
| init | event.
|
||||
| event.
|
||||
-type var_name() :: string().
|
||||
-type sophia_name() :: [string()].
|
||||
|
||||
@ -910,10 +910,9 @@ add_init_function(Env, StateType, Funs0) ->
|
||||
false ->
|
||||
Funs = add_default_init_function(Env, StateType, Funs0),
|
||||
InitName = {entrypoint, <<"init">>},
|
||||
InitFun = #{ args := InitArgs } = maps:get(InitName, Funs, none),
|
||||
Vars = [ {var, X} || {X, _} <- InitArgs ],
|
||||
Funs#{ init => InitFun#{ return => {tuple, []},
|
||||
body => {builtin, set_state, [{def, InitName, Vars}]} } }
|
||||
InitFun = #{ body := InitBody} = maps:get(InitName, Funs),
|
||||
Funs#{ InitName => InitFun#{ return => {tuple, []},
|
||||
body => {builtin, set_state, [InitBody]} } }
|
||||
end.
|
||||
|
||||
add_default_init_function(_Env, StateType, Funs) ->
|
||||
@ -1460,7 +1459,6 @@ pp_fun(Name, #{ args := Args, return := Return, body := Body }) ->
|
||||
pp_text(" : "), pp_ftype(Return), pp_text(" =")]),
|
||||
prettypr:nest(2, pp_fexpr(Body))).
|
||||
|
||||
pp_fun_name(init) -> pp_text('INIT');
|
||||
pp_fun_name(event) -> pp_text(event);
|
||||
pp_fun_name({entrypoint, E}) -> pp_text(binary_to_list(E));
|
||||
pp_fun_name({local_fun, Q}) -> pp_text(string:join(Q, ".")).
|
||||
|
@ -143,7 +143,6 @@ compile(FCode, Options) ->
|
||||
make_function_id(X) ->
|
||||
aeb_fate_code:symbol_identifier(make_function_name(X)).
|
||||
|
||||
make_function_name(init) -> <<"INIT">>;
|
||||
make_function_name(event) -> <<"Chain.event">>;
|
||||
make_function_name({entrypoint, Name}) -> Name;
|
||||
make_function_name({local_fun, Xs}) -> list_to_binary("." ++ string:join(Xs, ".")).
|
||||
|
Loading…
x
Reference in New Issue
Block a user