@@ -186,13 +186,12 @@ defmodule Code.Normalizer do
186
186
defp do_normalize ( { :{} , meta , args } = quoted , state ) do
187
187
{ last_arg , args } = List . pop_at ( args , - 1 )
188
188
189
- with [ { { :__block__ , key_meta , _ } , _ } | _ ] <- last_arg , :keyword <- key_meta [ :format ] do
190
- args = normalize_kw_args ( args , state )
191
- kw_list = normalize_kw_args ( last_arg , state )
189
+ if args != [ ] and match? ( [ _ | _ ] , last_arg ) and keyword? ( last_arg ) do
190
+ args = normalize_args ( args , state )
191
+ kw_list = normalize_kw_args ( last_arg , state , true )
192
192
{ :{} , meta , args ++ kw_list }
193
193
else
194
- _ ->
195
- normalize_call ( quoted , state )
194
+ normalize_call ( quoted , state )
196
195
end
197
196
end
198
197
@@ -246,11 +245,10 @@ defmodule Code.Normalizer do
246
245
meta = patch_meta_line ( meta , state . parent_meta )
247
246
state = % { state | parent_meta: meta }
248
247
249
- with [ { { :__block__ , key_meta , _ } , _ } | _ ] <- right , :keyword <- key_meta [ :format ] do
250
- { :__block__ , meta , [ { do_normalize ( left , state ) , normalize_kw_args ( right , state ) } ] }
248
+ if match? ( [ _ | _ ] , right ) and keyword? ( right ) do
249
+ { :__block__ , meta , [ { do_normalize ( left , state ) , normalize_kw_args ( right , state , true ) } ] }
251
250
else
252
- _ ->
253
- { :__block__ , meta , [ { do_normalize ( left , state ) , do_normalize ( right , state ) } ] }
251
+ { :__block__ , meta , [ { do_normalize ( left , state ) , do_normalize ( right , state ) } ] }
254
252
end
255
253
end
256
254
@@ -282,7 +280,7 @@ defmodule Code.Normalizer do
282
280
meta
283
281
end
284
282
285
- { :__block__ , meta , [ normalize_kw_args ( list , state ) ] }
283
+ { :__block__ , meta , [ normalize_kw_args ( list , state , false ) ] }
286
284
end
287
285
end
288
286
@@ -402,7 +400,7 @@ defmodule Code.Normalizer do
402
400
end
403
401
404
402
defp normalize_map_args ( args , state ) do
405
- Enum . map ( normalize_kw_args ( args , state ) , fn
403
+ Enum . map ( normalize_kw_args ( args , state , false ) , fn
406
404
{ :__block__ , _ , [ { _ , _ } = pair ] } -> pair
407
405
pair -> pair
408
406
end )
@@ -435,7 +433,7 @@ defmodule Code.Normalizer do
435
433
{ form , meta , leading_args ++ [ kw_blocks ] }
436
434
end
437
435
438
- defp normalize_kw_args ( elems , state , keyword? \\ false )
436
+ defp normalize_kw_args ( elems , state , keyword? )
439
437
440
438
defp normalize_kw_args (
441
439
[ { { :__block__ , key_meta , [ key ] } , value } = first | rest ] = current ,
0 commit comments