@@ -270,34 +270,34 @@ defmodule Keyword do
270270 @ spec validate ( keyword ( ) , values :: [ atom ( ) | { atom ( ) , term ( ) } ] ) ::
271271 { :ok , keyword ( ) } | { :error , [ atom ] }
272272 def validate ( keyword , values ) when is_list ( keyword ) and is_list ( values ) do
273- validate ( keyword , values , [ ] , [ ] , [ ] )
273+ validate ( keyword , values , [ ] , keyword , [ ] )
274274 end
275275
276- defp validate ( [ { key , _ } = pair | keyword ] , values1 , values2 , acc , bad_keys ) when is_atom ( key ) do
276+ defp validate ( [ { key , _ } | keyword ] , values1 , values2 , original , bad_keys ) when is_atom ( key ) do
277277 case find_key! ( key , values1 , values2 ) do
278278 { values1 , values2 } ->
279- validate ( keyword , values1 , values2 , [ pair | acc ] , bad_keys )
279+ validate ( keyword , values1 , values2 , original , bad_keys )
280280
281281 :error ->
282282 case find_key! ( key , values2 , values1 ) do
283283 { values1 , values2 } ->
284- validate ( keyword , values1 , values2 , [ pair | acc ] , bad_keys )
284+ validate ( keyword , values1 , values2 , original , bad_keys )
285285
286286 :error ->
287- validate ( keyword , values1 , values2 , acc , [ key | bad_keys ] )
287+ validate ( keyword , values1 , values2 , original , [ key | bad_keys ] )
288288 end
289289 end
290290 end
291291
292- defp validate ( [ ] , values1 , values2 , acc , [ ] ) do
293- { :ok , move_pairs! ( values1 , move_pairs! ( values2 , acc ) ) }
292+ defp validate ( [ ] , values1 , values2 , original , [ ] ) do
293+ { :ok , move_pairs! ( values1 , move_pairs! ( values2 , original ) ) }
294294 end
295295
296- defp validate ( [ ] , _values1 , _values2 , _acc , bad_keys ) do
296+ defp validate ( [ ] , _values1 , _values2 , _original , bad_keys ) do
297297 { :error , bad_keys }
298298 end
299299
300- defp validate ( [ pair | _ ] , _values1 , _values2 , _acc , [ ] ) do
300+ defp validate ( [ pair | _ ] , _values1 , _values2 , _original , [ ] ) do
301301 raise ArgumentError ,
302302 "expected a keyword list as first argument, got invalid entry: #{ inspect ( pair ) } "
303303 end
0 commit comments