@@ -126,29 +126,6 @@ collect_filters([H|T], Acc) ->
126
126
collect_filters ([], Acc ) ->
127
127
{Acc , []}.
128
128
129
- % % If all we have is one enum generator, we check if it is a list
130
- % % for optimization otherwise fallback to the reduce generator.
131
- build_inline (Line , [{enum , Meta , Left , Right , Filters }] = Orig , Expr , Into , Var , Acc , S ) ->
132
- case Right of
133
- {cons , _ , _ , _ } ->
134
- build_comprehension (Line , Orig , Expr , Into );
135
- {Other , _ , _ } when Other == tuple ; Other == map ->
136
- build_reduce (Orig , Expr , Into , Acc , S );
137
- _ ->
138
- Clauses = [{enum , Meta , Left , Var , Filters }],
139
-
140
- {'case' , - 1 , Right , [
141
- {clause , - 1 ,
142
- [Var ],
143
- [[elixir_utils :erl_call (Line , erlang , is_list , [Var ])]],
144
- [build_comprehension (Line , Clauses , Expr , Into )]},
145
- {clause , - 1 ,
146
- [Var ],
147
- [],
148
- [build_reduce (Clauses , Expr , Into , Acc , S )]}
149
- ]}
150
- end ;
151
-
152
129
build_inline (Line , Clauses , Expr , Into , _Var , Acc , S ) ->
153
130
case lists :all (fun (Clause ) -> element (1 , Clause ) == bin end , Clauses ) of
154
131
true -> build_comprehension (Line , Clauses , Expr , Into );
@@ -165,7 +142,7 @@ build_into(Line, Clauses, Expr, Into, Fun, Acc, S) ->
165
142
MatchExpr = {match , Line ,
166
143
{tuple , Line , [Acc , Fun ]},
167
144
elixir_utils :erl_call (Line , 'Elixir.Collectable' , into , [Into ])
168
- },
145
+ },
169
146
170
147
TryExpr =
171
148
{'try' , Line ,
@@ -199,10 +176,8 @@ build_reduce(Clauses, Expr, {bin, _, _} = Into, Acc, S) ->
199
176
200
177
build_reduce_clause ([{enum , Meta , Left , Right , Filters }|T ], Expr , Arg , Acc , S ) ->
201
178
Line = ? line (Meta ),
202
- Inner = build_reduce_clause (T , Expr , Acc , Acc , S ),
203
-
204
- True = pair (Line , cont , Inner ),
205
- False = pair (Line , cont , Acc ),
179
+ True = build_reduce_clause (T , Expr , Acc , Acc , S ),
180
+ False = Acc ,
206
181
207
182
Clauses0 =
208
183
case is_var (Left ) of
@@ -218,11 +193,8 @@ build_reduce_clause([{enum, Meta, Left, Right, Filters}|T], Expr, Arg, Acc, S) -
218
193
[Left , Acc ], [],
219
194
[join_filters (Line , Filters , True , False )]}|Clauses0 ],
220
195
221
- Args = [Right , pair (Line , cont , Arg ), {'fun' , Line , {clauses , Clauses1 }}],
222
- Tuple = elixir_utils :erl_call (Line , 'Elixir.Enumerable' , reduce , Args ),
223
-
224
- % % Use -1 because in case of no returns we don't care about the result
225
- elixir_utils :erl_call (- 1 , erlang , element , [{integer , Line , 2 }, Tuple ]);
196
+ Args = [Right , Arg , {'fun' , Line , {clauses , Clauses1 }}],
197
+ elixir_utils :erl_call (Line , 'Elixir.Enum' , reduce , Args );
226
198
227
199
build_reduce_clause ([{bin , Meta , Left , Right , Filters }|T ], Expr , Arg , Acc , S ) ->
228
200
Line = ? line (Meta ),
0 commit comments