Skip to content

Commit ae78bd8

Browse files
committed
Fix false positive in MultiAliasImportRequireUseTest
Refs #1117
1 parent a095c30 commit ae78bd8

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

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

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ defmodule Credo.Check.Consistency.MultiAliasImportRequireUse.Collector do
3333
{ast, {Map.put(acc, mod_name, []), mod_name}}
3434
end
3535

36+
defp traverse({op, _, _}, acc) when op in [:def, :defp] do
37+
{nil, acc}
38+
end
39+
3640
defp traverse({directive, meta, arguments} = ast, {acc, current_module})
3741
when directive in @directives and not is_nil(current_module) do
3842
aliases =

test/credo/check/consistency/multi_alias_import_require_use_test.exs

+31
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,35 @@ defmodule Credo.Check.Consistency.MultiAliasImportRequireUseTest do
110110
assert issue.trigger == ""
111111
end)
112112
end
113+
114+
test "it should not report errors when #1117" do
115+
[
116+
~S'''
117+
defmodule A.B.Foo do
118+
alias A.{B, C}
119+
end
120+
''',
121+
~S'''
122+
defmodule SomeModule do
123+
@moduledoc false
124+
125+
alias A.B.Foo
126+
127+
case Application.compile_env(:app, SomeModule)[:use_bar] do
128+
"true" ->
129+
defp a do
130+
alias A.B.Bar
131+
Bar.f()
132+
end
133+
134+
_ ->
135+
defp a, do: nil
136+
end
137+
end
138+
'''
139+
]
140+
|> to_source_files
141+
|> run_check(@described_check)
142+
|> refute_issues()
143+
end
113144
end

0 commit comments

Comments
 (0)