You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For bugs, please do a quick search and make sure the bug has not yet been reported here
Environment
Credo version (mix credo -v): 1.7.3
Erlang/Elixir version (elixir -v): 1.16.2/OTP 26
Operating system: MacOS
What were you trying to do?
I'm running mix credo --strict and getting this warning:
warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.
This error happens when you have function calls without parentheses inside keywords. For example:
function(arg, one: nested_call a, b, c)
function(arg, one: if expr, do: :this, else: :that)
In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:
function(arg, one: if(expr, do: :this, else: :that))
function(arg, one: nested_call(a, b, c))
Ambiguity found at:
└─ nofilename:5
It happens because of this piece of code:
foodo: renametable(:bar),:baz,to: :qux
Expected outcome
I'd like credo to detect this ambiguity issue and add a suggestion about it to its output. That would be especially useful because the warning doesn't contain a correct path to the problematic code.
Actual outcome
This issue doesn't appear in the output.
The text was updated successfully, but these errors were encountered:
The fact that the filename is nofilename on this is definitely bad and we should fix that 👍 (this is completely Credo's fault, I believe). Could you provide an Elixir module that produces this warning?
I'd like credo to detect this ambiguity issue and add a suggestion about it to its output.
On this I am sorry, because we can not re-implement compiler checks/warnings as standard checks in Credo. Doubling the compiler's functionality would be like implementing our own formatter.
This of course does not say that this wouldn't be a great custom check or plugin, which we could also feature in the docs on how to implement custom checks 💯
Precheck
Environment
mix credo -v
): 1.7.3elixir -v
): 1.16.2/OTP 26What were you trying to do?
I'm running
mix credo --strict
and getting this warning:It happens because of this piece of code:
Expected outcome
I'd like
credo
to detect this ambiguity issue and add a suggestion about it to its output. That would be especially useful because the warning doesn't contain a correct path to the problematic code.Actual outcome
This issue doesn't appear in the output.
The text was updated successfully, but these errors were encountered: