Skip to content

Commit 43fb85e

Browse files
committed
Fix handling generated clauses without a line
1 parent 4c4ac7e commit 43fb85e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

lib/gradient/ast_specifier.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ defmodule Gradient.AstSpecifier do
145145

146146
def mapper({:function, anno, name, arity, clauses}, tokens, opts) do
147147
# anno has line
148+
opts = Keyword.put(opts, :line, :erl_anno.line(anno))
148149
{clauses, tokens} = context_mapper_fold(clauses, tokens, opts)
149150

150151
{:function, anno, name, arity, clauses}

test/gradient/ast_specifier_test.exs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,6 +1362,19 @@ defmodule Gradient.AstSpecifierTest do
13621362
]}} = missing_type
13631363
end
13641364

1365+
test "clauses without a line" do
1366+
forms = [
1367+
{:function, 8, :__impl__, 1,
1368+
[
1369+
{:clause, [generated: true, location: 0],
1370+
[{:atom, [generated: true, location: 0], :for}], [],
1371+
[{:atom, [generated: true, location: 0], TypedSchemaTest}]}
1372+
]}
1373+
]
1374+
1375+
assert [_] = AstSpecifier.run_mappers(forms, [])
1376+
end
1377+
13651378
# Helpers
13661379

13671380
def filter_specs(ast) do

0 commit comments

Comments
 (0)