Bläddra i källkod

replace list comprehension with recursive invokation in pr/2

The list comprehension fail on improper lists, use a recursive
call into pr/2 instead.

Fixes #477.
pull/478/head
Andreas Schultz 6 år sedan
förälder
incheckning
ca40952066
2 ändrade filer med 9 tillägg och 2 borttagningar
  1. +2
    -2
      src/lager.erl
  2. +7
    -0
      test/pr_composite_test.erl

+ 2
- 2
src/lager.erl Visa fil

@ -577,8 +577,8 @@ pr(Record, Module, Options) when is_tuple(Record), is_atom(element(1, Record)),
error:undef ->
Record
end;
pr(List, Module, Options) when is_list(List), is_list(Options) ->
[pr(Element, Module, Options) || Element <- List];
pr([Head|Tail], Module, Options) when is_list(Options) ->
[pr(Head, Module, Options)|pr(Tail, Module, Options)];
pr(Record, _, _) ->
Record.

+ 7
- 0
test/pr_composite_test.erl Visa fil

@ -38,3 +38,10 @@ list_of_records_test() ->
?assertEqual([{'$lager_record', a, [{field1, 1},{field2, a2}]},
{'$lager_record', a, [{field1, 2},{field2, a2}]}],
Pr_As).
improper_list_test() ->
A = #a{field1 = [1|2], field2 = a2},
Pr_A = lager:pr(A, ?MODULE),
?assertEqual({'$lager_record',a,
[{field1,[1|2]},{field2,a2}]},
Pr_A).

Laddar…
Avbryt
Spara