Skip to content

Commit 68aaace

Browse files
committed
Check in maps
1 parent 264ce87 commit 68aaace

File tree

2 files changed

+37
-5
lines changed

2 files changed

+37
-5
lines changed

lib/credo/check/consistency/unused_variable_names/collector.ex

+2-4
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,14 @@ defmodule Credo.Check.Consistency.UnusedVariableNames.Collector do
3939
{_, _, params}, param_acc when is_list(params) ->
4040
reduce_unused_variables(params, callback, param_acc)
4141

42-
# two elements tuple
43-
{left, right}, param_acc ->
44-
reduce_unused_variables([left, right], callback, param_acc)
42+
tuple_ast, param_acc when tuple_size(tuple_ast) == 2 ->
43+
reduce_unused_variables(Tuple.to_list(tuple_ast), callback, param_acc)
4544

4645
list_ast, param_acc when is_list(list_ast) ->
4746
reduce_unused_variables(list_ast, callback, param_acc)
4847

4948
param_ast, param_acc ->
5049
if unused_variable_ast?(param_ast) do
51-
IO.inspect(param_ast, label: :param_ast)
5250
callback.(param_ast, param_acc)
5351
else
5452
param_acc

test/credo/check/consistency/unused_variable_names_test.exs

+35-1
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,41 @@ defmodule Credo.Check.Consistency.UnusedVariableNamesTest do
254254
end)
255255
end
256256

257-
test "it should report a violation for different naming schemes with a list (expects meaningful)" do
257+
test "it should report a violation for different naming schemes with a map match (expects meaningful)" do
258+
[
259+
"""
260+
defmodule Credo.SampleOne do
261+
defmodule Foo do
262+
def bar(%{a: _a, b: _b, c: _}) do
263+
:ok
264+
end
265+
end
266+
end
267+
""",
268+
"""
269+
defmodule Credo.SampleTwo do
270+
defmodule Foo do
271+
def bar(map) do
272+
case map do
273+
%{a: _} -> :ok
274+
_map -> :error
275+
end
276+
end
277+
end
278+
end
279+
"""
280+
]
281+
|> to_source_files()
282+
|> run_check(@described_check)
283+
|> assert_issues(fn issues ->
284+
assert length(issues) == 2
285+
286+
assert Enum.find(issues, &match?(%{trigger: "_", line_no: 3}, &1))
287+
assert Enum.find(issues, &match?(%{trigger: "_", line_no: 5}, &1))
288+
end)
289+
end
290+
291+
test "it should report a violation for different naming schemes with a list match (expects meaningful)" do
258292
[
259293
"""
260294
defmodule Credo.SampleOne do

0 commit comments

Comments
 (0)