diff --git a/src/lager_transform.erl b/src/lager_transform.erl index bf06b9a..5d1b723 100644 --- a/src/lager_transform.erl +++ b/src/lager_transform.erl @@ -57,16 +57,19 @@ walk_ast(Acc, [{function, Line, Name, Arity, Clauses}|T]) -> walk_ast([{function, Line, Name, Arity, walk_clauses([], Clauses)}|Acc], T); walk_ast(Acc, [{attribute, _, record, {Name, Fields}}=H|T]) -> - FieldNames = lists:map(fun({record_field, _, {atom, _, FieldName}}) -> - FieldName; - ({record_field, _, {atom, _, FieldName}, _Default}) -> - FieldName - end, Fields), + FieldNames = lists:map(fun record_field_name/1, Fields), stash_record({Name, FieldNames}), walk_ast([H|Acc], T); walk_ast(Acc, [H|T]) -> walk_ast([H|Acc], T). +record_field_name({record_field, _, {atom, _, FieldName}}) -> + FieldName; +record_field_name({record_field, _, {atom, _, FieldName}, _Default}) -> + FieldName; +record_field_name({typed_record_field, Field, _Type}) -> + record_field_name(Field). + walk_clauses(Acc, []) -> lists:reverse(Acc); walk_clauses(Acc, [{clause, Line, Arguments, Guards, Body}|T]) ->