diff --git a/lib/credo/check/consistency/unused_variable_names/collector.ex b/lib/credo/check/consistency/unused_variable_names/collector.ex index 919b48084..5378dd8a6 100644 --- a/lib/credo/check/consistency/unused_variable_names/collector.ex +++ b/lib/credo/check/consistency/unused_variable_names/collector.ex @@ -43,8 +43,12 @@ defmodule Credo.Check.Consistency.UnusedVariableNames.Collector do {left, right}, param_acc -> reduce_unused_variables([left, right], callback, param_acc) + list_ast, param_acc when is_list(list_ast) -> + reduce_unused_variables(list_ast, callback, param_acc) + param_ast, param_acc -> if unused_variable_ast?(param_ast) do + IO.inspect(param_ast, label: :param_ast) callback.(param_ast, param_acc) else param_acc diff --git a/test/credo/check/consistency/unused_variable_names_test.exs b/test/credo/check/consistency/unused_variable_names_test.exs index 60f6edb8b..9af2d4cbe 100644 --- a/test/credo/check/consistency/unused_variable_names_test.exs +++ b/test/credo/check/consistency/unused_variable_names_test.exs @@ -221,7 +221,7 @@ defmodule Credo.Check.Consistency.UnusedVariableNamesTest do end) end - test "it should report a violation for different naming schemes with two elem tuple match (expects meaningful)" do + test "it should report a violation for different naming schemes in a two elem tuple match (expects meaningful)" do [ """ defmodule Credo.SampleOne do @@ -254,6 +254,38 @@ defmodule Credo.Check.Consistency.UnusedVariableNamesTest do end) end + test "it should report a violation for different naming schemes with a list (expects meaningful)" do + [ + """ + defmodule Credo.SampleOne do + defmodule Foo do + def bar(list) do + case list do + [] -> :empty + [head | _] -> head + end + end + end + end + """, + """ + defmodule Credo.SampleTwo do + defmodule Foo do + def bar([_a, _b | rest]) do + rest + end + end + end + """ + ] + |> to_source_files() + |> run_check(@described_check) + |> assert_issue(fn issue -> + assert "_" == issue.trigger + assert 6 == issue.line_no + end) + end + test "it should report a violation for naming schemes other than the forced one" do [ """