@@ -254,7 +254,7 @@ eval_quoted(Tree, Binding, #{line := Line} = E) ->
254254eval_forms (Tree , Binding , Opts ) when is_list (Opts ) ->
255255 eval_forms (Tree , Binding , env_for_eval (Opts ));
256256eval_forms (Tree , RawBinding , OrigE ) ->
257- {Vars , Binding } = normalize_binding (RawBinding , [], []),
257+ {Vars , Binding } = normalize_binding (RawBinding , [], [], 0 ),
258258 E = elixir_env :with_vars (OrigE , Vars ),
259259 {_ , S } = elixir_env :env_to_erl (E ),
260260 {Erl , NewErlS , NewExS , NewE } = quoted_to_erl (Tree , E , S ),
@@ -275,12 +275,12 @@ eval_forms(Tree, RawBinding, OrigE) ->
275275 {Value , elixir_erl_var :dump_binding (NewBinding , NewExS , NewErlS ), NewE }
276276 end .
277277
278- normalize_binding ([{Key , Value } | Binding ], Vars , Acc ) when is_atom (Key ) ->
279- normalize_binding (Binding , [{Key , nil } | Vars ], [{{Key , nil }, Value } | Acc ]);
280- normalize_binding ([{Pair , Value } | Binding ], Vars , Acc ) ->
281- normalize_binding (Binding , [Pair | Vars ], [{Pair , Value } | Acc ]);
282- normalize_binding ([], Vars , Acc ) ->
283- {Vars , Acc }.
278+ normalize_binding ([{Key , Value } | Binding ], Vars , Acc , I ) when is_atom (Key ) ->
279+ normalize_binding (Binding , [{{ Key , nil }, I } | Vars ], [{{Key , nil }, Value } | Acc ], I + 1 );
280+ normalize_binding ([{Pair , Value } | Binding ], Vars , Acc , I ) ->
281+ normalize_binding (Binding , [{ Pair , I } | Vars ], [{Pair , Value } | Acc ], I + 1 );
282+ normalize_binding ([], Vars , Acc , _I ) ->
283+ {maps : from_list ( Vars ) , Acc }.
284284
285285recur_eval ([Expr | Exprs ], Binding , Env ) ->
286286 {value , Value , NewBinding } =
0 commit comments