erlfmt icon indicating copy to clipboard operation
erlfmt copied to clipboard

Internal Error when running twice as provider hook from alias

Open Alberdi opened this issue 3 years ago • 0 comments

I've got a project where I want to automatically format the code when compiling, so I've added erlfmt as a provider hook. I didn't have any issues with this flow until I added an alias that runs ct and cover. In that case I always get an "Internal Error".

I can provide a minimal example that displays the bug:

ᐅ rebar3 -v 
rebar 3.17.0 on Erlang/OTP 23 Erts 11.2.2.2

ᐅ rebar3 new lib erlfmt_bug
===> Writing erlfmt_bug/src/erlfmt_bug.erl
===> Writing erlfmt_bug/src/erlfmt_bug.app.src
===> Writing erlfmt_bug/rebar.config
===> Writing erlfmt_bug/.gitignore
===> Writing erlfmt_bug/LICENSE
===> Writing erlfmt_bug/README.md

ᐅ cd erlfmt_bug

ᐅ echo '
{project_plugins, [erlfmt]}.

{erlfmt, [write]}.

{provider_hooks, [
    {pre, [{compile, fmt}]}
]}.

{alias, [
    {test, [
        {ct, "--cover"},
        {cover, "-m 100"}
    ]}
]}.
' >> rebar.config

ᐅ rebar3 test
[...]
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling erlfmt_bug
===> Running Common Test suites...
All 0 tests passed.
===> Verifying dependencies...
rebar3 fmt Internal Error
exit:normal
[{erlfmt_cli,parallel_loop,5,
             [{file,"/Users/marcelino/Developer/erlfmt_bug/_build/default/plugins/erlfmt/src/erlfmt_cli.erl"},
              {line,484}]},
 {erlfmt_cli,unprotected_with_config,2,
             [{file,"/Users/marcelino/Developer/erlfmt_bug/_build/default/plugins/erlfmt/src/erlfmt_cli.erl"},
              {line,128}]},
 {erlfmt_cli,with_parsed,2,
             [{file,"/Users/marcelino/Developer/erlfmt_bug/_build/default/plugins/erlfmt/src/erlfmt_cli.erl"},
              {line,104}]},
 {rebar3_fmt_prv,do,1,
                 [{file,"/Users/marcelino/Developer/erlfmt_bug/_build/default/plugins/erlfmt/src/rebar3_fmt_prv.erl"},
                  {line,43}]},
 {rebar_core,do,2,
             [{file,"/home/runner/work/rebar3/rebar3/src/rebar_core.erl"},
              {line,155}]},
 {rebar_hooks,run_provider_hooks_,6,
              [{file,"/home/runner/work/rebar3/rebar3/src/rebar_hooks.erl"},
               {line,70}]},
 {rebar_hooks,run_all_hooks,6,
              [{file,"/home/runner/work/rebar3/rebar3/src/rebar_hooks.erl"},
               {line,18}]},
 {rebar_prv_compile,'-compile/4-lc$^0/1-0-',3,
                    [{file,"/home/runner/work/rebar3/rebar3/src/rebar_prv_compile.erl"},
                     {line,151}]}]

Alberdi avatar Dec 30 '21 12:12 Alberdi