Skip to content

'exprec' fails to process empty records #2

@superbobry

Description

@superbobry

I know the example bellow doesn't make much sense, but anyway:

-module(test).
-record(test, {}).
-compile({parse_transform, exprecs}).
-export_records([test]).

... results in the following error with the latest version of parse_trans and Erlang R15B:

src/test.erl:none: internal error in lint_module;
crash reason: {function_clause,
               [{erl_lint,'-compiler_options/1-lc$^0/1-0-',
                 [{error,
                   [{"src/test.erl",
                     [{9999,parse_trans,
                       {function_clause,
                        [{exprecs,funspec,
                          [5,'#pos-',[]],
                          [{file,"src/exprecs.erl"},{line,735}]},
                         {exprecs,f_pos_2,2,
                          [{file,"src/exprecs.erl"},{line,991}]},
                         {exprecs,generate_accessors,2,
                          [{file,"src/exprecs.erl"},{line,608}]},
                         {exprecs,generate_specs_and_accessors,2,
                          [{file,"src/exprecs.erl"},{line,513}]},
                         {exprecs,verify_generated,3,
                          [{file,"src/exprecs.erl"},{line,526}]},
                         {exprecs,do_transform,2,
                          [{file,"src/exprecs.erl"},{line,425}]},
                         {parse_trans,top,3,
                          [{file,"src/parse_trans.erl"},{line,336}]},
                         {compile,'-foldl_transform/2-anonymous-2-',2,
                          [{file,"compile.erl"},{line,841}]}]}}]}]}],
                 [{file,"erl_lint.erl"},{line,474}]},
                {erl_lint,compiler_options,1,
                 [{file,"erl_lint.erl"},{line,474}]},
                {erl_lint,module,3,[{file,"erl_lint.erl"},{line,469}]},
                {compile,lint_module,1,[{file,"compile.erl"},{line,906}]},
                {compile,'-internal_comp/4-anonymous-1-',2,
                 [{file,"compile.erl"},{line,269}]},
                {compile,fold_comp,3,[{file,"compile.erl"},{line,287}]},
                {compile,internal_comp,4,[{file,"compile.erl"},{line,271}]},
                {compile,internal,3,[{file,"compile.erl"},{line,246}]}]}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions