Call both resolve_const and resolve_fun from resolve_var

This commit is contained in:
Gaith Hallak 2023-03-08 11:12:26 +03:00
parent 521b382dd7
commit 274bb4e197

View File

@ -1728,13 +1728,21 @@ bind_var(Env = #{ vars := Vars }, X) -> Env#{ vars := [X | Vars] }.
resolve_var(#{ vars := Vars } = Env, [X]) -> resolve_var(#{ vars := Vars } = Env, [X]) ->
case lists:member(X, Vars) of case lists:member(X, Vars) of
true -> {var, X}; true -> {var, X};
false -> resolve_const(Env, [X]) false ->
case resolve_const(Env, [X]) of
false -> resolve_fun(Env, [X]);
Const -> Const
end
end; end;
resolve_var(Env, Q) -> resolve_const(Env, Q). resolve_var(Env, Q) ->
case resolve_const(Env, Q) of
false -> resolve_fun(Env, Q);
Const -> Const
end.
resolve_const(#{ consts := Consts } = Env, Q) -> resolve_const(#{ consts := Consts }, Q) ->
case maps:get(Q, Consts, not_found) of case maps:get(Q, Consts, not_found) of
not_found -> resolve_fun(Env, Q); not_found -> false;
Val -> Val Val -> Val
end. end.