Skip to content

Commit c0b82e4

Browse files
committed
Fix false positive for Specs
Refs #1123
1 parent f6d31e1 commit c0b82e4

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

lib/credo/check/readability/specs.ex

+4
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ defmodule Credo.Check.Readability.Specs do
7979
{ast, issues}
8080
end
8181

82+
defp traverse({:quote, _, _}, issues, _specs, _issue_meta) do
83+
{nil, issues}
84+
end
85+
8286
defp traverse(
8387
{keyword, meta, [{:when, _, def_ast} | _]},
8488
issues,

test/credo/check/readability/specs_test.exs

+16
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,22 @@ defmodule Credo.Check.Readability.SpecsTest do
125125
|> refute_issues()
126126
end
127127

128+
test "it should NOT report functions inside `quote`" do
129+
"""
130+
@spec to_def(t(), atom()) :: Macro.t()
131+
def to_def(%__MODULE__{vars: vars, code: code}, name) do
132+
quote generated: true do
133+
def unquote(name)(unquote_splicing(vars)) do
134+
unquote(code)
135+
end
136+
end
137+
end
138+
"""
139+
|> to_source_file()
140+
|> run_check(@described_check)
141+
|> refute_issues()
142+
end
143+
128144
#
129145
# cases raising issues
130146
#

0 commit comments

Comments
 (0)